CMU logo
Expand Menu

Software Structures for User Interfaces (SSUI)

Course Information

Course Number

HCI Undergraduate: 05-431
HCI Graduate: 05-631

Course Description

Software Structures for User Interfaces (SSUI) covers the basic and detailed concepts and principles that go into building software to implement user interfaces. It considers factors of input, output, application interface, and related infrastructure as well as the typical patterns used to implement them, and how these aspects are organized and managed within a well-structured object oriented system.

We will cover the libraries, design patterns, tools, and skills for a variety of “front-end” programming contexts, including conventional graphical user interface (GUI) programming for mobile apps (phones, watches and other wearables), web apps, and regular desktop applications, across a variety of programming languages and frameworks. We will briefly touch on programming for data-driven and conversational (AI) user interfaces (including speech and “chat bots”), front-end programming for visualizations, games, 3D, and virtual and artificial reality (VR and AR), along with interactive UI tools such as GUI builders, prototypers, and resource editors.

The homeworks and project in this course will involve extensive programming in JavaScript, so this course is only appropriate for students with a strong programming background. This content will be important for people with roles such as front end or full-stack developers, user experience engineers, design technologists, creative technologists, and HCI technical researchers. Please see for full information.

Semester Offered and Units

Semester: Fall
Undergraduate: 15 units
Graduate: 15 units

Enrollment Requirements

Students should have proficiency in a programming language, program structure, algorithm analysis, and data abstraction.