CS W4170x: User Interface Design

Fall 2001, T Th 2:40-3:55pm, 702 Hamilton Hall

Prof. Steven Feiner 

Important Links

Syllabus and assignments
TA web site


CS W4170 will provide a general introduction to the theory and practice of computer user interface design. The fundamental question that we will try to answer is, ``How can we create high-quality user interfaces?'' In our quest, we will take a hard look at what is behind some often glib buzzwords: user-friendly, ergonomic, WYSIWYG, direct manipulation, constraint-based, window systems, toolkits, menus, icons, UIMS, end user programming, programming by example, visual programming, hypertext, navigation aids, groupware, virtual worlds.

Our emphasis will be on the software design of 2D graphical user interfaces for current workstations and personal computers. We will survey the basic interaction devices available and the techniques that have been developed for (or have given rise to) them, and will study several important paradigms for how these techniques can be woven into a coherent dialogue. This will provide a framework within which we can analyze existing user interfaces and design new ones.

Grading will be based on written assignments (30%), midterm and final exams (25% each), and a final project (20%). Although this is not primarily a ``programming class,'' programming will be required, with an accent on design and analysis.

The course prerequisite is CS W3156 (Software Engineering) and knowledge of the Java programming language. No previous experience with either user interface design or graphics is assumed. However, students are expected to be very comfortable with computers and programming at the level of the undergraduate software engineering course, CS W3156 or equivalent. Note that CS W3156 itself has prerequisites of introductory courses in programming, and data structures and algorithms.


Steve Feiner (feiner@cs.columbia.edu) is a Professor of Computer Science and director of the Computer Graphics and User Interfaces Lab. He is interested in most aspects of computer graphics and user interfaces, with special emphasis on knowledge-based graphics and multimedia, highly interactive 3D user interfaces, virtual environments, augmented reality, wearable computing, information visualization, visual languages, and hypermedia. His office is 609 Schapiro CEPSR (212-939-7083), where he will hold office hours Monday and Wednesday 1-2pm (other hours by appointment).

Teaching assistants

Hrvoje Benko (benko@cs.columbia.edu) is a first-year Ph.D. student in CS. He has recently completed his undergraduate studies in Computer Engineering at Lehigh University and has joined the Columbia University Computer Graphics and User Interfaces Lab. He hopes to concentrate his research in developing more intuitive and interactive user interfaces in both virtual and augmented reality. He enjoys skiing, hiking, rollerblading and soccer. He also plays the violin. He will hold office hours on Wednesday from 2:00pm-4:00pm in Schapiro CEPSR 603 (212-939-7077).

Gábor Blaskó (gblasko@cs.columbia.edu) is a first-year PhD student who has joined the Computer Graphics and User Interfaces Lab with a M.Sc. in Electrical Engineering. His past and current research interests include: user interfaces, input devices, and computer vision and tracking technologies for augmented reality systems. When he is not coding, he plays basketball and runs in marathons. His office hours (until further notice) will be Friday 10:00am-noon in Schapiro CEPSR 603 (212-939-7077).


Ben Shneiderman. Designing the User Interface: Strategies for Effective Human-Computer Interaction, Third Edition. Reading, MA: Addison-Wesley, 1997, ISBN 0-201-69497-2. (Required. Available at CU Bookstore.)

Kathy Walrath and Mary Campione. The JFC Swing Tutorial: A Guide to Constructing GUIs. Reading, MA: Addison-Wesley, 1999, ISBN: 0-201-43321-4. (Required. Online at http://java.sun.com/docs/books/tutorial/uiswing or optionally available at the CU bookstore as a physical book and CD.)

Additional reading material will be announced in class.

Other useful links:

Computing Environment

Programming assignments will be carried out using Java and the Java Foundation Classes, including Swing, which provide a programming environment for creating graphical user interfaces. These tools will be available on AcIS machines, including those in 251 Engineering Terrace, although you may prefer running them on your own machine. To avoid the ``But it works fine on my Windows machine!'' effect, we will expect that you will use Java2 SE 1.3.1 (the newest is 1.3.1_01).

The Forte 3.0 CE interactive development environment will be available on the Sun workstations in 251 Engineering Terrace in /opt/forte3 (to run, type "forte"). You can also download Forte 3.0 CE for your Windows machine from http://www.sun.com/forte/ffj/.

The main site for Java documentation is http://java.sun.com/docs.

Rules of the Game

You are responsible for all material covered in class and all the assigned reading, including any changes or additions announced in class. If you miss a class, please talk to someone who didn't.

Course material will be found on the web at http://www.cs.columbia.edu/graphics/courses/csw4170/ and http://www.columbia.edu/~cs4170/.

Messages will be posted to the course news group on AcIS machines (TO BE ANNOUNCED).

Submission Policy

All programming homeworks are to be submitted electronically, following the procedure to be announced in this file. Everything has to be submitted before the beginning of the class (2:40pm) on the day the homework is due. If you don't submit a homework on time the following lateness policy applies.

Lateness Policy

All assignments are due at 2:40pm on the scheduled due date-before, not during or after, class. To make the deadlines more manageable, each student will be allowed four ``late days'' during the semester for which lateness will not be penalized. Late days may not be applied to the final project. Only one late day may be applied to the first assignment. Otherwise, your four late days may be used as you see fit.

Anything turned in past the start of class until midnight the next day is one day late. Every day thereafter that an assignment is late, including weekends and holidays, counts as an additional late day.

Absolutely no late work will be accepted beyond that accounted for by your late days. If you're not done on time you must turn in what you have to receive partial credit. Now, go back and read this section over again!


Collaboration on any assignment is, as in all Columbia courses, strictly prohibited. Infractions will be referred to the Deans.

Syllabus and assignments