COMS W4170: User Interface Design

Fall 2009, Tu/Th 1:10–2:25pm, 327 SW Mudd

Prof. Steven Feiner 
feiner [AT] cs [DOT] columbia [DOT] edu
212-939-7083


Syllabus and Assignments


Overview

COMS 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, Web 2.0, direct manipulation, constraint-based, prototyping, rich internet applications, end-user programming, programming by demonstration, visual programming, hypermedia, information visualization, and groupware.

Our emphasis will be on the design of 2D graphical user interfaces. 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 (33%), midterm (20%) and final (20%) exams, a final project (22%), and class participation (5%). Although this is not primarily a “programming class,” programming will be required, with emphasis on design and analysis. To get an idea of the kind of work that we will do, you can see representative screenshots and descriptions of the final projects for Fall 2008, Fall 2007, Fall 2006, and Spring 2006.

The course prerequisite is COMS W3137 or W3139 (Data Structures and Algorithms) or equivalent. You do not need to know Java, C, or C++, and no previous academic experience with either user interface design or graphics is assumed. However, you are expected to be comfortable with computers and programming.

Professor

Steve Feiner (feiner [AT] cs [DOT] columbia [DOT] 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 interactive 3D user interfaces, augmented reality and virtual environments, wearable and mobile computing, knowledge-based design of graphics and multimedia, computer games, and information visualization (i.e., "fun stuff"). His office is 609 Schapiro CEPSR (212-939-7083), where he will hold office hours Monday and Wednesday 1–2pm (other hours by appointment). If he's not in his office, try his lab across the hall (6LE3 Schapiro CEPSR), where you can find members designing experimental user interfaces for a variety of technologies, ranging from hand-held and head-worn to table-top and wall-sized. He will usually stay after class for as long as it takes to answer any questions you have.

Teaching Assistants

Nathan Murith (nam2140 [AT] columbia.edu) is a second-year MS student in Computer Science, in the Personalized track. He has been part of the Computer Graphics and User Interfaces Lab for the past two semesters, where he worked on an augmented reality system for building construction. His research interests include 2D and 3D user interfaces, augmented reality and computer science in medicine. His work experience includes being a team lead at Microsoft and writing software systems that perform blood-flow modeling in aneurysms using graphics processing units. Nathan has a Bachelor of Computer Science degree from the University of Geneva, Switzerland. He will hold office hours Tuesday and Thursday 11am–noon in 6LE3 Schapiro CEPSR.

Chung-Ying Wu (cw2516 [AT] columbia.edu) is a first-year MS student in Computer Science. He was a member of the Ubiquitous Computing Lab at National Taiwan University, where he worked on Geta sandals, an indoor location tracking system, and mProducer, a personal experience authoring and sharing tool for mobile devices. His research interests are indoor localization systems, personal experience computing, and HCI. His work experience at ASUSTek included developing GPS navigation software on Windows Mobile, exchange sync client applications, and an input method framework for the ASUSTek Android cell phone. He will hold office hours Monday and Wednesday 2pm–3pm in Mudd 122A (the CS TA Room).

Readings

Ben Shneiderman and Catherine Plaisant. Designing the User Interface: Strategies for Effective Human-Computer Interaction, Fifth Edition. Addison-Wesley, 2010, ISBN-10: 0-321-53735-1. (Required. Available at CU Bookstore.)

Additional reading material will be announced in the syllabus and in class.

Other interesting links:

Technology

Assignments will be carried out using a variety of tools, ranging from paper, pencils, scissors, and tape, to computer software. The software that we will be using includes CogTool (a user interface prototyping tool that uses a predictive human performance model to evaluate designs created with it), the Eclipse IDE (Interactive Development Environment), Adobe Flex Builder 3 Professional (which you should download free for educational use), and Flash. We will provide you with more information on these shortly.

For those of you who do not have your own computer, or who also wish to use our department's computers to do your work, the software needed for the course will be installed on five Windows machines in the CLIC Lab: northcarolina.mrl, massachusetts.mrl, missouri.mrl, california.mrl, alabama.mrl. (These are located in the second row on the left side of the lab, and you will need an MRL account to use them.)  To run Flex: Start menu → All Programs → Adobe → Adobe Flex Builder 3.

In case you've talked with folks who have taken the course previously, here's how things differ: In past years, we used Java with the NetBeans IDE and the Java Foundation Classes, including Swing. Last year, we added Flex and Flash, and switched to the Eclipse IDE. This year, we have jettisoned Java entirely.

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. (Copies of each class's slides will be linked to the syllabus.)

Course material will be found on the web through Courseworks, and the syllabus and assignments will be linked through http://www.cs.columbia.edu/graphics/courses/csw4170/.

Submission Policy

Each assignment should be submitted electronically through CourseWorks, before the beginning of the class (1:10pm) on the day the assignment is due. If you don't submit a homework assignment on time, the following lateness policy applies.

Lateness Policy

All assignments are due at 1:10pm 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. However, no late days may be applied to the final project, and 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 (partial) 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, please be sure to turn in whatever you have completed on time to receive partial credit. Now, please go back and read this section over again!

Academic Honesty

Please make sure that you've read the Department of Computer Science Policies and Procedures Regarding Academic Honesty. Collaboration on any assignment (except as an approved part of group projects) is, as in all Columbia courses, strictly prohibited. Infractions will be reported to the Department of Computer Science Academic Committee and referred to the Deans.

Syllabus and Assignments