This course considers the basic and detailed concepts that go into building software to implement user interfaces. It considers factors of input, output, application interface, and related infrastructure as well as the typical patterns used to implement them. It will also consider how these components are organized and managed within a well-structured object oriented system. After considering these fundamental concepts in the first portion of the class, the later part will consider advanced topics related to emerging future concepts in user interface design. The course includes an intensive programming lab, either on the topic of mobile or web interfaces. This course is intended for HCII Master, BHCI dual majors and others who wish to understand the structures needed for professional development of interactive systems, and has a strong programming background.
PREREQUISITES: Proficiency in a programming language, program structure, algorithm analysis, and data abstraction.
WAITLIST LOGISTICS: Note that ALL students who register for this class will initially be placed on a waitlist. Your position on the waitlist is not an indication of whether you will be accepted into the class. Contacting the instructor will not move you off the waitlist. Priority for getting off the waitlist are MHCI students, BHCI students (more senior students first), and then others.