CS349 Spring 2024
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 using 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 | Mon, Wed from 10:00am - 11:20am | DC 1350
Instructor
- Kris Frasheri (kfrasher@uwaterloo.ca)
Instructional Support Coordinator (ISC)
- Caroline Kierstead (ctkierst@uwaterloo.ca)
Teaching Assistants
- Nabil Bin Hannan (IA)
- Anchit Mishra (IA)
- Marvin Pafla
- Yifan Yang
Course Communication and Support
Piazza
We maintain a Piazza forum to discuss course material. We try to reply within a couple of hours during normal hours on weekdays (M-F, 9am - 5pm). Posts made after hours may not receive responses until after 9am on the next weekday.
Office Hours - To Be Announced
Beginning in the second week, we have weekday office hours where you can chat with us on Microsoft Teams (you should already be a member of a CS 349 team). During an office hour, post a message in the Office Hours channel asking for help. When they're available, the person holding the office hour will call you.
-
Mon
-
Tue
-
Wed
-
Thu
-
Fri
Assessment
The 5 assignments, midterm exam, and final exam contribute to your final grade as follows:
A0 | 1% |
A1 | 12% |
A2 | 12% |
A3 | 12% |
A4 | 12% |
Midterm | 17% |
Final | 34% |
To pass the course, you must satisfy the following conditions:
- A weighted average of the midterm and final exam is at least 50%.
[(Midterm grade * 0.17 + Exam Grade * 0.34) / 51] * 100
- A final course grade of at least 50%