05-431/631 Software Structures for User Interfaces (SSUI) - Fall 2020Newly redesigned for Fall 2020!
|Time:||Tuesday / Thursday, 1:30-2:50|
|Instructor:||Brad Myers (he/him)|
|Location:||Fully remote (REO) (the course was formerly listed as hybrid (IPR) but it will actually be remote only)|
|TA:||Corey Emery, webpage, email|
We will be using Piazza for questions and answers, especially about homeworks
This is the class website:
Permanent link: http://www.cs.cmu.edu/~bam/uicourse/05631fall2020/
The schedule and readings and homeworks and policies are on different pages.
This course considers the basic and detailed concepts that go into building software to implement user interfaces (UIs). It considers factors of input, output, application interface, and related infrastructure as well as the typical patterns used to implement them.
Note that this is not an HCI Methods course -- we do not cover user-centered design or evaluation methods. This course is designed for students in the SCS HCI undergrad Major, but it also available to BHCI second majors or HCI minors, Masters of HCI and METALS students, or any undergrad or graduate students with an interest in the topic and solid prior programming experience, who wish to understand the structures needed for professional development of interactive systems. SSUI now covers different material than other HCII courses, so you can take it even if you have taken 05-430/05-630 PUI or 05-391/05-891 DHCS.
The graduate (05-631) and undergraduate (05-431) numbers are for the same course with the same work.
Key Topics and homework in this course
Using and designing User Interface (UI) Toolkits and Frameworks; Input, Output and Behaviors for User Interface Front-end Programming; the Software Structures for Tools such as React, Angular, Android, Apple Xcode, Windows SDK, Java Swing, Flutter, Unity, D3, etc.
Please see the schedule for the complete list of topics, and the homework descriptions, which includes the policies for homeworks and the class.
This course is expected to be taught entirely remotely (through Zoom). It will be possible to do all homeworks and any tests (midterm and any quizzes) remotely. Class lectures will be recorded, in case you are in a signifcantly different time zone, but we are mainly planning for synchronous delivery.
Since all of the lectures will be recorded and available online for playback later, it is possible to take this course even if you have another course that conflicts with the class time. You have my permission to do this.
Most software developers will be involved in programming the front-end of applications, and there are standard software structures that pervade all of the tools that are used to support this.
Students will learn the software structures that have stood the test of time, and are the foundation of user interface frameworks and libraries for various platforms, as well as newer structures for programming the user interfaces for AI, data-driven, game and AR/VR systems.
Students will use a variety of learning resources including documentation for existing user interface frameworks and tools, along with academic research articles (which are all accessible free on-line via University library resources).
Extra Time Commitments
Assignments, readings and the project for this course are done outside of class, but should fit within typical expectations based on the number of units of credit.