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. This course provides students with a programmer's view of processors, memory, and operating systems. Programming assignments use the C programming language. SSD5 may be taken concurrently. This course introduces students to database concepts including database design.