This course introduces students to problem solving by means of object-oriented design and implementation. Emphasis is on problem analysis and solution design, documentation and implementation. Students use commercial software libraries, and create software projects. Programming assignments are carried out in Java. This course focuses on human-computer interaction, providing training in the basic skills of task analysis, and interface evaluation and design.
Students learn to develop designs that are usable and useful for people.
Students learn how to empirically evaluate user interfaces, leading to better ones. Visual Basic is used in programming assignments. This course focuses on understanding the dependence of execution time, bandwidth and memory requirements on the data structures and algorithms chosen. Students learn to reason informally about algorithm and data structure correctness and complexity. Primary emphasis is given to intelligent selection of algorithms and representations.