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 collaborative software.
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 2010, Fall 2009, Fall 2008, Fall 2007, Fall 2006, and Spring 2006.
The course prerequisite is COMS W3137 (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 object-oriented programming.
Ketaki Kulkarni (knk2111 [AT] columbia.edu) is a second-year MS student in Computer Science in the Vision and Graphics track. She originally hails from Pune, India and has a Bachelor of Engineering degree from Pune University. Her work experience includes UI Automation development at Microsoft India R&D, and Apple Inc. She has worked at Edlab on the development of a social networking site for educators and students. She will hold office hours Tuesday 4–5pm and Thursday noon–1pm in Mudd 122A (the CS TA Room).
Astha Malik (am3550 [AT] columbia.edu) is a second-year MS student in Computer Science in the Vision and Graphics track. She is from New Delhi, India and has a Bachelor of Technology degree from Guru Gobind Singh Indraprastha University. She has worked as a software developer at Tata Consultancy Services Ltd. in LTE Technology, and was the TA for Data Structures last semester. Over the summer, she interned at VMTurbo (continuing part-time now) as a UI design engineer, working with Flex on the front-end of products they support. She will hold office hours Thursday 3:30–5:30pm in Mudd 122A (the CS TA Room).
Additional reading material will be announced in the syllabus and in class.
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 some of the Windows machines in the CLIC Lab, accessible with an MRL account: [list of machines soon to appear here].
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/.
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!