CS349 Spring 2026
User Interfaces
An introduction to contemporary user interface implementation concepts, including event abstraction, graphical components, layout, feedback, testing, accessibility, and architectures to develop user interfaces. One or more types of interface toolkit paradigms are considered.
(full description in course calendar)
Learning Outcomes
- Explain architectural and algorithmic details underlying current user interfaces and user interface toolkits.
- Describe key aspects of user interfaces, such as user input, event-driven architecture, asynchronous events, etc.
- Implement user interfaces in a browser with Typescript: (1) using the HTML Canvas; (2) using HTML elements and DOM manipulation, and (3) using a modern UI web development framework.
Lecture Times and Locations
CS349-001 | MW 1:00 PM - 2:20 PM | MC 2035
Instructors
- Adrian Reetz (adrian.reetz@uwaterloo.ca)
Instructional Support Coordinator (ISC)
- Caroline Kierstead (ctkierst@uwaterloo.ca)
Teaching Assistants
- Thomas Driscoll (IA)
- Anchit Mishra (TA)
- Anthony Maocheia-Ricci (TA)
- Ashu Adhikari (TA)
Course Communication and Support
LEARN
Grades for assignments are released on LEARN, this course should be listed on your home screen.
Piazza
We maintain a Piazza forum to discuss course material. We'll try to reply within a few hours between 9 AM - 5 PM on weekdays. Posts made after hours, on weekends, or on holidays may not receive a response until after 9am on the next work day.
Office Hours
Beginning in the second week, we hold regular weekday office hours on Microsoft Teams (you should already be a member of a CS 349 team). At the beginning of the office hour, you'll see a post in the Office Hours channel. Just post a message to that thread and the person holding the office hour will call you when they're available.
Mon
Tue
Wed
Thu
Fri
Assessment
The 5 assignments, midterm exam, and final exam contribute to your final grade as follows:
| A0 | 1% |
| A1 | 13% |
| A2 | 13% |
| A3 | 13% |
| A4 | 13% |
| Midterm | 15% |
| Final | 32% |