Cognitive Science 121 is the second course in the HCI sequence. It focuses on interaction architectures, programming techniques, and cognitive and computational principles for designing effective systems. We begin by covering the fundamentals of user interface design for web-based systems and quickly move to larger scale design and implementation activities. A major component of the class is completion of a substantial programming project in which students work together in small teams.


Jim Hollan (hollan at
CSB 159, Office Hour: Wed 9:00-10:00 and by appointment.

Graduate Teaching Assistant

Gaston Cangiano (gaston at
Lab Sections: Mon 10-11 and Wed 11-12 in the DCOG-HCI Lab (SSRB 100)


There is no required textbook for the course. There is no single book that covers what one needs to know to build modern web-based applications. This situation is further complicated by the fact that the web environment and development tools are rapidly changing. One of the important skills programmers and designers increasingly need today is to be able to quickly locate relevant current material on the web. Selected links to the topics we cover each week will be provided but everyone is encouraged to share links to other useful resources they discover. We will use a wiki to communicate this and other course related information. Each student will also maintain a blog or wiki to document course related activities.

I have found the following books to be useful:

All schedule, readings, and handouts are available on the class wiki.