This course is designed to:
This course is intended for those with advanced programming skills (CS background) who want to do serious development of graphical 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.
This course includes: an introduction to task analysis and functional design of the user interface; basic principles of computer graphics used in UI implementation; event handling and event dispatching models; screen update algorithms and multi-view architectures; input syntax formalisms and their transformation into programs; interactive geometry; architectures for advanced features such as cut/copy/paste, macros and groupware.
The course also includes an intensive programming lab on mobile interfaces (Android).
No textbook; various research readings (changing on a year by year basis)