Project in User Interaction Software

Course Overview

Welcome to INF 134: Project in User Interaction Software. Here you will find all learning materials for the course. Assignment descriptions, lecture notes, links to lecture videos, references, and other learning related information will be located here.

As we are virtual remote this quarter, we wanted to simplify access to learning materials for you. We are using the Jupyter Book format because it provides a rich format for sharing, viewing, and consuming technical information. In the upper right side of this website you will find a link that allows you to download the entire book in Markdown or PDF format. Feel free to use this feature if you need an offline copy of course materials. I will be updating this website frequently as we work our way through the class. So be sure to check back at least once a week. However, when major updates do occur, an announcement will be sent in the course discussion workspace.

Course Description

From the catalog:

Students complete an end-to-end user interface programming project based on an iterative design paradigm. Topics may include requirements brainstorming, paper prototyping, iterative development, cognitive walk-through, quantitative evaluation, and acceptance testing.

In practice, every instructor takes a slightly different bend to these topics. I focus on covering core concepts and practices that lead to well-designed, inclusive software user interfaces. We will develop and strengthen prototyping skills, build upon the mobile and web development programming experience gained in INF 133, and explore alternative forms of user interface design.

Learning Objectives

At the end of this course, students should be able to:

  • Identify, describe, and improve shortcomings in common user interfaces.

  • Learn how user interfaces work from the ground up.

  • Choose an appropriate prototyping tool to validate user interface designs.

  • Rapidly iterate on user interface designs using various prototyping techniques.

  • Evaluate user interactions with prototypes and functional user interfaces.

  • Implement and articulate best practices for successful and inclusive software user interfaces.

Required Text and Materials

Given the rapid changes in user interface development, any materials relying on a particular technology will quickly lose their value as a reference material. Articles online serve as a great resource, and all required materials will be made available. Check the resources section for some pointers, and feel free to send the course staff any resources you find useful as the course progresses.

There will be some required readings interspersed throughout the quarter that relate to the lecture topics. Links to select readings will be posted alongside weekly lecture notes.


Assignment details will be posted as the quarter progresses. When a new assignment is released in lecture it will be safe to assume the overview pages linked below are final. Until then all assignment pages are ‘prepublication’, or subject to change. Each assignment has a prepublication notice near the top, we will remove these once the assignment has started. In the meantime, feel free to explore each assignment so you have a sense of what we will be working on this quarter. Although we do not expect these assignments to change dramatically, it’s possible that they might, and we don’t want you to work on something unnecessarily.


For official breakdown of grade percentages and specific due dates please see the Canvas course page.

Team Assignments:

Individual Assignments:


There are no formal exams for this course.


Although we are a virtual class this quarter, our goal is to reproduce as much of the classroom experience as possible through synchronous live lectures and work sessions. However, since we offer asynchronous learning in this class and do not require live attendance, we will need to be a little more creative with how participation is evaluated. You will earn participation points through a variety of different activities throughout the quarter. To receive the full points for participation you will be required to complete any combination of the following activities (simply attending live classes will not award you any points):

  • Custom Toolkit Check-in (live or recorded)

  • Present Speculative Story (live or recorded)

  • Present on Functional Prototype(live or recorded)

  • Ask a question/answer a question in live class (voice only, no text)

  • Help a peer in Zulip

Each of the participation opportunities presented here are discussed in detail during the first lecture of the quarter which will be available in the week 1 notes page after it is recorded.

We will also have a course Zulip workspace where we can chat and learn from each other. Zulip will be our primary tool for communication. You will be expected to join the class workspace and participate in informal discussions, ask questions, and help others throughout the quarter.

Group Participation

Since a significant portion of this class will be group-based project work, you will also be given a group participation score. To receive the full points for group participation, you and your teammates will be required to complete a performance evaluation survey at the end of the quarter. The survey will ask you to evaluate the perceived effort of you and each of your teammates.

Late Assignment Policy

The late submission policy for this course will be tied to your participation score rather than your assignment score. Late assignments will be accepted until the last day of class. However, for each day late you will lose 1 pt on your participation score. Under this format it is possible to turn assignments in very late if you are an active contributor to the class as your participation score will make up for points lost to late submission.

Lecture Notes

As we move through each week, we will be adding weekly notes pages that include prerecorded lectures, live lectures, and discussions that we have with each other. New lecture note pages will be posted after the class on Tuesday. The topics we will be discussing each week are listed in the next section.