Computer Science 160 — User Interface Design and Development (4 Units)

Course Overview


CS160 is an introduction to human-computer interaction and user interface design. The course teaches you how to prototype, evaluate, and design user interfaces. Students work in groups of 4-5 students in this project-based course. Unlike most other CS classes, CS160 does not focus on specific algorithms, techniques, or technologies. Instead, it is about developing a broad set of skills relevant to user-focused design and implementation, which include ideation, assessment, communication, rapid prototyping, implementation, and evaluation. The course culminates in a large final group project that is proposed by your group and is an opportunity to apply the broad set of skills you acquire throughout the semester to a real project for real users.

The implementation domain varies from semester to semester and from professor to professor. In recent history, Android is usually the chosen platform.


  • CS 61B
  • Comfortable coding large projects in Java

Topics Covered

  • Design cycle
  • Storyboarding, scenarios, personas
  • Task analysis
  • Contextual inquiry
  • Conceptual models
  • Heuristic evaluation
  • Graphic design and typography
  • Usability testing
  • Data analysis
  • Interactive prototyping


Course Work

  • ~2 programming projects
  • ~7 design assignments
  • 1 discussion section per week
  • 1 midterm
  • 1 final project and final project showcase

Time Commitment

This course has a relatively large time commitment, with 3 hours of lecture, 1 hour of discussion, and an ongoing assignment at all times. The ongoing assignment could be a programming project or an involved design assignment. The former teaches you the necessary design-to-implementation skills while the latter teaches you the broad set of human-centered skills in prototyping, design, and evaluation.

Choosing the Course

When to take

You can take CS160 as soon as you’ve taken CS61B, if it interests you. It may benefit to take other project-based courses so that you are more comfortable working in a group, as the group work in CS160 is much more involved.

What's next?

After taking this course, students can take other design-related courses from the Jacobs Institute for Design Innovation, such as DES INV 190. Other courses include Critical Making (NWMEDIA C203 / MEC ENG C205) and Interactive Device Design (CS294-84).

Usefulness for Research or Internships

If you are interested in research or internship opportunities in user interface design or human-computer interaction, it is useful to have taken this course so that you can talk about your final project and things you’ve learned.

Additional Comments/Tips

It is often the case that you will be assigned project groups in this class, based on your preferences and background, since it is important that each project group has the required broad set of skills in order to properly design, prototype, and evaluate a completely new idea. Think of your project group as a small and fast-moving team that includes roles such as UI designer, back-end programmer, and product manager.

Last edited: Summer 2020