Schedule and Readings
- All lectures are: Thuesday and Thursdays, 3:05PM - 4:25PM Eastern Time, in GHC 4102.
- All labs are: Fridays, 3:35PM – 4:25PM – WEH 4623
- Videos of all lectures and labs, and slides for the labs, will be on Canvas in the Files area.
- CMU-only note: Access to some pdfs and the ACM Digital Library is restricted to only those on a CMU machine. Use VPN if you are at home. For VPN, here are the CMU instructions for VPN. In the Cisco AnyConnect dialog, you may need to use the "Library Resources VPN" in the "Group" drop-down (which is not the default).
Num | Date | Class Content | |||||
---|---|---|---|---|---|---|---|
1 |
Tuesday, 8/30/2022 |
Introduction to Course; What are "Software Structures for User Interfaces"; and Why are user interfaces hard to design and implement?Please fill out this questionnaire before the first class: https://forms.gle/xLUN2jGZDeYVEGKd6Slides for Lecture 1 and pdf
|
|||||
2 |
Thursday, 9/1/2022 |
Review of HTML and CSSSlides for Lecture 2 and pdfRequired Readings:
|
|||||
LAB 1 |
Friday 9/2/2022 |
Development setup, Git and GitHub, HTML/CSSSlides for all labs will be in this folder on Canvas |
|||||
3 |
Tuesday, 9/6/2022 |
Review of JavaScriptRequired Readings: See list with Lecture 2 Slides for Lecture 3 and pdf |
|||||
4 |
Thursday, 9/8/2022 |
Input 1: Conventional Input Models for Handling Input EventsSlides for Lecture 4 and pdfRequired Readings:
|
|||||
LAB 2 |
Friday 9/9/2022 |
JavaScript, DOM, and eventsCourse add Deadline is September 12, 2022. |
|||||
5 |
Tuesday, 9/13/2022 |
What is "User Interface Software", Overview of UI Software and ToolsSlides for Lecture 5 and pdfOptional Readings:
Turn in Homework 1.
|
|||||
6 |
Thursday, 9/15/2022 |
Output 1: Basic 2D Computer GraphicsSlides for Lectures 6 & 7 and pdfRequired Readings:
|
|||||
LAB 3 |
Friday 9/16/2022 |
Advanced Input Event Handling |
|||||
7 |
Tuesday, 9/20/2022 |
Output 1: Basic 2D Computer Graphics, continued |
|||||
8 |
Thursday, 9/22/2022 |
Input 2: Declarative input models; "Interactor" (Behavior) Objects in Garnet and Amulet
|
|||||
LAB 4 |
Friday 9/23/2022 |
Graphics 1 |
|||||
9 |
Tuesday, 9/27/2022 |
UI Software Models: Lexical-Syntax-Semantics, Seeheim Model, MVC, Design Patterns, State DiagramsSlides for Lecture 9 and pdfRecommended Readings:
Optional Readings:
Turn in Homework 2.
|
|||||
10 |
Thursday, 9/29/2022 |
UI Implementation Concepts: Callbacks, Resources, Widget Hierarchies, Geometry ManagementSlides for Lecture 10 and pdfOptional Readings:
|
|||||
LAB 5 |
Friday 9/30/2022 |
Graphics 2 |
|||||
11 |
Tuesday, 10/4/2022 |
React for JavaScript, 1Slides for Lectures 11 & 12 and pdfRequired Readings:
Optional Readings:
|
|||||
12 |
Thursday, 10/6/2022 |
React for JavaScript, 2Same slides as lecture 11, but reload for new content! |
|||||
LAB 6 |
Friday 10/7/2022 |
React 1 |
|||||
13 |
Tuesday, 10/11/2022 |
Evaluation of APIs and UI Tools, API Usability, Cognitive DimensionsSlides for Lecture 13 and pdfRecommended Readings:
Optional Readings:
Turn in Homework 3.
|
|||||
14 | Thursday, 10/13/2022 |
Command Objects & Support for UndoSlides for Lecture 14 and pdf versionRecommended Readings:
Optional Readings:
Take-home Midterm Exam released Wednesday and due Friday before class |
|||||
LAB 7 |
Friday 10/14/2022 |
React 2 |
|||||
X | Tuesday, 10/18/2022 |
CMU Mid-Semester Break - no classes |
|||||
X | Thursday, 10/20/2022 |
CMU Mid-Semester Break - no classes |
|||||
LAB X |
Friday 10/21/2022 |
CMU Mid-Semester Break - no labsMid Semester Grades due: October 24, 2022 |
|||||
15 | Tuesday, 10/25/2022 |
Connecting to the backend - Web Services and DatabasesSlides for Lecture 15 & 16 and pdf versionRequired Readings:
Please fill out the midterm survey: https://www.surveymonkey.com/r/ssui2022midterm
|
|||||
16 | Thursday, 10/27/2022 |
Connecting to the backend - Web Services and Databases, continuedSame slides as Lecture 15 and pdf |
|||||
LAB X |
Friday 10/28/2022 |
Tartan Community Day; No Classes |
|||||
17 | Tuesday, 11/1/2022 |
Brad away at DagstuhlSome Other Web Toolkits - jQuery, AngularJS, Vue, Bootstrap, Svelte, etc.
| |||||
18 | Thursday, 11/3/2022 |
Brad away at DagstuhlDesigning Large Web Applications
|
|||||
LAB 8 |
Friday 11/4/2022 |
Using web services & Remote DatabasesCourse Drop Deadline is November 7, 2022. |
|||||
19 | Tuesday, 11/8/2022 |
Toolkits for building speech/conversational/chatbot User Interfaces, and Visualizations
Slides for Lecture 20 and pdf versionRecommended Readings:
Optional Readings:
|
|||||
20 | Thursday, 11/10/2022 |
Toolkit support for Gestural Input TechniquesSlides for Lecture 20 and pdf versionRequired Readings:
Optional Readings:
|
|||||
LAB 9 |
Friday 11/11/2022 |
Data Visualization 1 |
|||||
21 | Tuesday, 11/15/2022 |
Software Engineering for UIs: How to create high-quality UIs in the context of Agile and other software development processesSlides for Lecture 21 and pdf versionRecommended Readings:
|
|||||
22 | Thursday, 11/17/2022 |
Simple User Interface Toolkits and End-User Programming for UIs; Low-Code / NoCode
Slides for Lecture 22 and pdf versionRecommended Readings:
Optional Readings:
Turn in Homework 6 (extended deadline) |
|||||
LAB 10 |
Friday 11/18/2022 |
Data Visualization 2 |
|||||
23 | Tuesday, 11/22/2022 |
Toolkit support for Assistive and Accessible Interfaces; Web AccessibilitySlides for Lecture 23 and pdf versionRecommended Readings:
Optional Readings:
Form final project groups |
|||||
X | Thursday, 11/24/2022 |
NO CLASS - THANKSGIVING |
|||||
LAB X |
Friday 11/25/2022 |
NO LAB - THANKSGIVING |
|||||
24 | Tuesday, 11/29/2022 |
Toolkits for 3D Programming and the UIs of GamesSlides for Lecture 24 and pdf versionOptional Readings:
One-page proposal for Projects due on Wednesday, 11/30/22 at 3:05pm on Canvas |
|||||
25 | Thursday, 12/1/2022 |
Interactive Tools: Prototypers (HyperCard, Director, Visual Basic, Balsamiq), Interface Builders, Sketching ToolsSlides for Lecture 25 and pdf versionRecommended Readings:
Optional Readings:
| |||||
LAB 11 |
Friday 12/2/2022 |
3D programmingThree.JS and basic 3D rendering in a browser |
|||||
26 | Tuesday, 12/6/2022 |
Constraints and Data BindingsSlides for Lecture 26 and pdf versionRecommended Readings:
Optional Readings:
Please fill out the class survey: https://www.surveymonkey.com/r/SSUI2022Fall-Final and the official CMU survey and the peer survey about your project (required): https://www.surveymonkey.com/r/SSUI2022peer-survey |
|||||
27 | Thursday, 12/8/2022 |
Presentation of Final ProjectsGroups:
| |||||
LAB 12 |
Friday 12/9/2022 |
Presentation of Final Projects
Semester & Mini-2 Last Day of Classes = Friday, December 9, 2022 |
|||||
X | Exam week |
Final Written Reports for Final Projects due Monday, 12/12/2022 at 11:59pm.Final Test: Start Tuesday, 12/13/2022 at 12:01am ET; Due Wednesday, 12/14/2022 at 11:59pm ET (all day Tuesday and Wednesday) Final Grades due: December 21, 2022 by 4 pm |
Other Topics Not Currently Covered:
- History of Software Structures for UIs
- Types of User Interfaces
- Toolkits specifically for Mobile Devices & SmartPhones
- UI Programming Considering Privacy and Security
- Animation in Toolkits
- Toolkit support for Ubiquitous Computing, Context Awareness and Multiple users
- Domain-Specific Languages (DSLs) for UI programming
- Component Technologies: Interfaces as part of service platforms, Service-Oriented Architecture, Micro-Services, Plugin architectures
- Model-based tools: Creating the UI Automatically