This course is intended for those with advanced programming skills who want to do serious development of graphical user interfaces. This course includes an: introduction to task anaylsis 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;im/nput syntax formalisms and their transformation into programs; interactive geometry; architectures for advanced features such as cut/copy/past, macros, and groupware. Prerequisites: undergraduate degree in computer science or permission of the instructor. JAVA will be the programming platform used in this course.