CS 349 Fall 2023

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 | MW 1:00PM - 2:20PM | MC 2035
CS349-002 | MW 11:30AM - 12:50PM | RCH 211


Instructional Support Coordinator (ISC)

Teaching Assistants

  • Nabil Bin Hannan (IA)
  • Xuye Liu
  • Anchit Mishra
  • Marvin Pafla
  • Jheng-Hong Yang
  • Futuan Zhang

Course Communication and Support

  • Piazza forums: 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). After hours posts may not receive responses until the next weekday.

  • Office hours: We have weekday office hours where you can chat with us on Microsoft Teams. Office hours will begin the week of Sep 11. You should be a member of the CS 349 Fall 2023 team. During office hours, post a message in the Office Hours channel asking for help. When they are available, the person holding office hours will call you.

9 amNabilXuyeJheng-Hong
10 amMarvin
11 amProf. VogelFutian
12 noon
1 pm
2 pm
3 pmAnchit
4 pm
5 pm
6 pm


The 5 assignments, midterm exam, and final exam contribute to your final grade as follows:

Made with ❤ using spacebook with Eleventy, Tailwind, and Alpine.js