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 https://www.cs.cmu.edu/~bam/
Prerequisites
17514 or 17437 or 15214 or 14513 or 15213 or 18213 of 15513 or 17214
Semester Offered and Units
Semester:
Fall
Undergraduate:
12
units
Graduate:
12
units
Enrollment Requirements
Students should have proficiency in a programming language, program structure, algorithm analysis, and data abstraction.