COMS W4170: User Interface Design

Fall 2018, Tu/Th 1:10–2:25pm, 413 Kent

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


Syllabus and Assignments

Overview

COMS W4170 provides a general introduction to the theory and practice of user interface design. The fundamental question that we will try to answer is, “How can we create high-quality user interfaces?” Our emphasis will be on the design of 2D graphical user interfaces. We will survey the basic technologies 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 (12%, 15%, 15%), a final exam (24%), a final project (30%), and class participation (4%). Although this is not primarily a “programming class,” programming will be required, with an emphasis on design and analysis.

The course prerequisite is COMS W313X (Data Structures [and Algorithms]) or equivalent. 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, and able to learn a new language and programming environment relatively quickly.

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 many aspects of human–computer interaction and computer graphics, with an emphasis on 3D user interfaces, augmented reality and virtual reality, wearable and mobile computing, automated design of graphics and multimedia, games, health applications, 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—please don't hesitate to email/call). If he's not in his office, he'll probably be in his lab directly 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.

Instructional Assistants

Yilan He (yh2961 [AT] columbia [DOT] edu) is currently an MS student in CS. She has experience in web design and development and is interested in human–computer interaction. She will hold office hours Thursday 10:00am–12:00pm in the TA/CA Help Room.

Daniel Li (daniel.li [AT] columbia [DOT] edu) has a BSc and MSc in EE & CS from UC Berkeley and is currently a PhD student in CS. His research area is in machine learning and computational biology. He will hold office hours Wednesday 5–7pm in 506 CSB.

Sam Siu (ss4313 [AT] columbia [DOT] edu) has a BA in CS from Columbia and is currently an MS student in CS. Her interests include augmented reality, virtual reality, machine learning, and the intersection of theatre and computer science. She will hold office hours Wednesday10:30am–12:30pm in 6LE3 Schapiro CEPSR (212-939-7101).

Readings

Ben Shneiderman, Catherine Plaisant, Maxine Cohen, Steven Jacobs, Niklas Elmqvist, and Nicholas Diakopoulos. Designing the User Interface: Strategies for Effective Human–Computer Interaction, Sixth Edition. Addison-Wesley, 2017, ISBN-13: 9780134380384. (Recommended.)

William Buxton. Sketching User Experiences: Getting the Design Right and the Right Design. Elsevier/Morgan Kaufman, 2007. Electronic copy available free to Columbia IP addresses: https://clio.columbia.edu/catalog/12607387. (Recommended.)

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

Technology

Assignments will be carried out with a variety of tools, ranging from paper, pencils, scissors, and tape, to computer software. The software that we will be using includes a collaborative prototyping environment (we will provide you with free access later in the course), and an Interactive Development Environment (IDE) or editor of your choice for HTML, CSS, and JavaScript. Free IDEs and editors that you may wish to consider include: the evaluation version of Sublime Text 3; the open-source Visual Studio Code editor; the open-source NetBeans IDE; the open-source Adobe Brackets code editor; Microsoft Visual Studio Enterprise 2017 (available free to Columbia CS students through Microsoft Imagine, formerly known as Dreamspark) or Visual Studio Community 2017 (free for anyone); and the free unlicensed functionality of the freemium Macintosh-only editor, BBEdit.

Here are some places to learn about the software we will be using:

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.

For example, this means that if you use GitHub (or any similar facility) to maintain material for an individual or team assignment, you must use a private repository whose access is appropriately restricted. (Note that the GitHub Student Developer Pack is free for registered students and includes a "Personal" GitHub plan that allows the creation of unlimited private repositories.)

Syllabus and Assignments