Welcome to COGS120/CSE170!

  • Always check Piazza for all class announcements.
  • Don't use email; use Piazza to communicate with course staff
  • To chat with the staff in person, catch us after class or during our office hours. Otherwise please use Piazza!
  • If you can't get into Piazza, let us know in person ASAP.


The goal of this course is to give you hands-on practice with a modern human-centered design process while building a web application to serve a set of target users.

In this course, you will learn how to design technologies that bring people joy rather than frustration. To do this, you'll learn:

  • techniques for rapidly prototyping and evaluating multiple interface alternatives,
  • why rapid prototyping and comparative evaluation are essential to excellent interaction design,
  • how to conduct fieldwork with people to help generate design ideas,
  • how to make paper prototypes and low-fidelity mock-ups that are interactive,
  • how to use these designs to get feedback from teammates, clients, and users,
  • and principles of visual design, perception and cognition so that you can effectively organize and present information with your interfaces.

Through a series of weekly assignments, you will complete a quarter-long web programming project in teams. Each week, in small design studios, you'll present and discuss work with peers.


This course was originally created by Scott Klemmer. This current version was created by Philip Guo, incorporating content made by Michael Bernstein, Scott Klemmer, and numerous TAs.

Instructors: you are welcome to use these materials for your own class, and dozens of courses around the world do. We share all course materials through a CC-BY license. Please let us know if you use them, and also any suggestions you have. We thank the UCSD cogsci department for providing our studio space.