MPCS 51230 User Interface and User Experience Design (Winter 2023)

Section 1
Instructor(s) Marques, Andre (andremar)
Location JCL 298
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Elective Specialization - Software Engineering (SE-2) Specialization - Application Development (APP-2)




  • Instructor: André Marques (he/him/his)
  • Email:
  • Prerequisites: Core Programming
  • Course Website: Google Classroom
  • Office Hours: TBD
  • TA: TBD
  • TA email: TBD
  • Grader: TBD
  • Email: TBD




Whether you’re ordering a burrito, boarding a plane, chatting with friends, booking your next workout, or reading this sentence—you’re likely using software with a user interface.


This course will teach you how to create useful and engaging user interfaces.


We will cover different methods of approaching design problems, how to conduct research to understand users, create prototypes, discuss, present, and assess design.


Learning Objectives


At the end of this class you will be able to:


  • Implement design processes within various contexts: personal projects, startups, and structured software development teams.


  • Understand the needs of users and identify meaningful problems to address in order to create positive experiences.


  • Create prototypes of any fidelity using contemporary design tools for web, mobile, and design systems.


  • Articulate design decisions and provide constructive feedback.


Course Components


In-Person Class

Tuesdays 5:30PM - 8:30PM central.


Lectures & Demos

Lectures and democs will cover topics and techniques that will prepare you for each week’s assignment.


Student Interviews

You will interview your classmates for a variety of design activities.



We will collaborate as a class and in small groups to assess design decisions made on assignments. You will be asked to informally present your designs to peers. I will provide you with structure and guidance throughout this process.



This course will be offered in person; lectures will not be recorded. The expectation is that students will attend class in-person each week. Due to the nature of this course, attendance is essential and required. Failure to attend class on a regular basis could result in a failing grade in the course. If the class schedule doesn’t work for you, you should not take this class. If you miss more than two class sessions during the Autumn quarter, please reach out to to discuss options for a leave of absence or withdrawal from the course.







  • 25% Participation
  • 75% Assignments



Late Assignments


You can submit up to 2 late assignments, however you must contact me within 24hrs of the original deadline to coordinate an extension. Failure to submit assignments on time could result in a failing grade in the course. If you miss more than two deadlines during the Autumn quarter, please reach out to to discuss options for a leave of absence or withdrawal from the course.


Academic Honesty






Approaching a design problem. Knowing where and how to start will set you in the right direction on design projects.


  • Design Process
  • Creative Problem Solving



Finding the right problem to solve. Understanding people and their experiences will give you insight into the prototypes you should create and test.


  • Need Finding
  • Human-centered Design       
  • Research Methods    
  • Personas
  • User Testing
  • User Journeys
  • Metrics
  • Research Synthesis




Creating useful prototypes. Design principles will guide you through the creation of visual interface and user workflow decisions to address the needs of your users successfully.


  • Accessibility
  • Principles, Patterns, & Techniques
  • User Goals & User Flows
  • Information Architecture
  • Visual Design (layout, typography, icons)
  • Paper Prototypes
  • Low Fidelity Prototypes
  • High Fidelity Prototypes
  • Iterative Design
  • Design Management



Communicating design decisions and providing feedback. Design is often a team effort, so we will learn how to successfully work in a design environment with others.


  • Presentations
  • Critiques




  • Notebook: Observations and low fidelity paper prototypes. Not required for assignment deliverables but useful for exploring ideas.


  • Figma: Medium & high fidelity prototypes.


○      Figma is an online user interface design tool that is free for educational use. We will create and share user interfaces with this tool.


  • InVision: Interactive prototypes.


○      InVision is an online product design tool that is free for educational use. We will create interactive prototypes with this tool.




  • This class has no textbook.
  • Readings may be assigned weekly and will either be available as links or PDFs on our class website. Readings will support topics covered in class.

Course Prerequisites

Core Programming required.

Other Prerequisites

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here:

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 51042-1 -- Python Programming
  • MPCS 51300-1 -- Compilers
  • MPCS 56511-2 -- Introduction to Computer Security

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)