Schedule and Readings
- All classes are: Thuesday and Thursdays, 1:30PM - 2:50PM Eastern Time, by Zoom.
- All classes will be done using Zoom, through the link published on Canvas (it is not listed here to try to avoid "Zoombombing").
- 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).
-
The videos will be saved in the "Files" section of Canvas, in the
"Lecture Videos"
folder.
Note that, except where noted,
recordings of course sessions are provided solely for educational use by students enrolled in the course
and may not be distributed to any other person or posted on the internet without the express written
permission of the course instructor.
- Therefore, links to the the class videos will only work for people in the class.
Num | Date | Class Content |
---|---|---|
1 |
Tuesday, 9/1/2020 |
Introduction to Course; What are "Software Structures for User Interfaces"; and Why are user interfaces hard to design and implement?Slides for Lecture 1
|
2 |
Thursday, 9/3/2020 |
Review of HTML and CSSSlides for Lecture 2
|
3 |
Tuesday, 9/8/2020 |
Review of JavaScriptSlides for Lecture 3
|
4 |
Thursday, 9/10/2020 |
Input 1: Conventional Input Models for Handling Input EventsSlides for Lecture 4
|
5 |
Tuesday, 9/15/2020 |
Input 2: Declarative input models; "Interactor" (Behavior) Objects in Garnet and AmuletSlides for Lecture 5
|
6 |
Thursday, 9/17/2020 |
Output 1: Basic 2D Computer GraphicsSlides for Lecture 6
|
7 |
Tuesday, 9/22/2020 |
Output 2: Graphics Models: Structured Graphics; Multiple Hierarchies; Object-Oriented TechniquesSlides for Lecture 7
|
8 |
Thursday, 9/24/2020 |
UI Implementation Concepts: Callbacks, Resources, Widget Hierarchies, Geometry ManagementSlides for Lecture 8
|
9 |
Tuesday, 9/29/2020 |
UI Software Models: Lexical-Syntax-Semantics, Seeheim Model, MVC, Design Patterns, State DiagramsSlides for Lecture 9
|
10 |
Thursday, 10/1/2020 |
What is "User Interface Software", Overview of UI Software and ToolsSlides for Lecture 10
|
11 |
Tuesday, 10/6/2020 |
React for JavaScriptSlides for Lecture 11
|
12 |
Thursday, 10/8/2020 |
Some Other Web Toolkits - jQuery, AngularJS, Vue, Bootstrap, etc.Slides for Lecture 12
|
13 |
Tuesday, 10/13/2020 |
Evaluation of APIs and UI Tools, API Usability, Cognitive DimensionsSlides for Lecture 13
|
14 |
Thursday, 10/15/2020 |
Command Objects & Support for UndoSlides for Lecture 14
|
15 |
Tuesday, 10/20/2020 |
Toolkit support for Gestural Input Techniques, Handwriting RecognitionSlides for Lecture 15
|
16 |
Thursday, 10/22/2020 |
Constraints and Data Bindings, 1Slides for Lecture 16
|
17 |
Tuesday, 10/27/2020 |
Constraints 2: ImplementationsSlides for Lecture 17
|
18 |
Thursday, 10/29/2020 |
Constraints 2: Implementations, cont.Slides for Lecture 18 (same slides as for lecture 17)
|
19 |
Tuesday, 11/3/2020 |
Connecting to the backend - Web Services and DatabasesSlides for Lecture 19
|
20 |
Thursday, 11/5/2020 |
Interactive Tools: Prototypers (HyperCard, Director, Visual Basic, Balsamiq), Interface Builders, Sketching ToolsSlides for Lecture 20
|
21 |
Tuesday, 11/10/2020 |
Software Engineering for UIs: How to create high-quality UIs in the context of Agile and other software development processesSlides for Lecture 21
|
22 |
Thursday, 11/12/2020 |
Simple User Interface Toolkits and End-User Programming for UIs; Low-Code / NoCode
Slides for Lecture 22
|
23 |
Tuesday, 11/17/2020 |
Toolkits for building speech/conversational/chatbot User Interfaces, and Visualizations
Slides for Lecture 23
|
24 |
Thursday, 11/19/2020 |
Toolkit support for Assistive and Accessible Interfaces; Web AccessibilitySlides for Lecture 24
|
25 |
Tuesday, 11/24/2020 |
Toolkit support for Ubiquitous Computing, Context Awareness and Multiple usersSlides for Lecture 25
|
X |
Thursday, 11/26/2020 |
NO CLASS - THANKSGIVINGAll classes afterwards online only |
26 |
Tuesday, 12/1/2020 |
Guest lecture: Jason Hong:
|
27 |
Thursday, 12/3/2020 |
Animation in ToolkitsSlides for Lecture 27
|
28 |
Tuesday, 12/8/2020 |
Toolkits for 3D Programming and the UIs of GamesSlides for Lecture 28
|
29 |
Thursday, 12/10/2020 |
Presentation of Final ProjectsMy intro slides for Lecture 29
|
Other Topics Not Currently Covered:
- History of Software Structures for UIs
- Types of User Interfaces
- Toolkits specifically for Mobile Devices & SmartPhones
- 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