Foundations: Motivation; Contexts for HCI; Process for user-centered development; early focus on users, empirical testing, iterative design; Different measures for evaluation; utility, efficiency, learnability, user satisfaction; Models that inform human-computer interaction (HCI) design; attention, perception and recognition, movement, and cognition; Social issues influencing HCI design and use; culture, communication, and organizations; Accommodating human diversity, including universal design and accessibility and designing for multiple cultural and linguistic contexts; User interface standards. Building GUI Interfaces: Principles of graphical user interfaces (GUIs); Action-object versus object-action; User interface events; User-interface for a native system vs. the web. User Centered Software Evaluation:  Evaluation without typical users; walkthroughs, KLM, expert-based analysis, heuristics, guidelines, and standards; Evaluation with typical users; observation, think-aloud, interview, survey, experiment; Challenges to effective evaluation; sampling, generalization; Reporting the results of evaluations. User Centered Software Development. GUI Design: Choosing interaction styles and interaction techniques; Choosing the right widget for users and tasks; HCI aspects of screen design; layout, color, fonts, labeling; Handling human/system failure; Beyond simple screen design; visualization, representation, metaphor; Multi-modal interaction; graphics, sound, and haptics; 3D interaction and virtual reality; Designing for small devices; Multi-cultural interaction and communication. GUI Programming:UIMS, dialogue independence and levels of analysis, Seeheim model; Widget classes and libraries;  Event management and user interaction; Web design vs. native application design; Geometry management;  GUI builders and UI programming environments;  Cross-platform design; Design for small, mobile devices