CS 349User Interfaces
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 7 of the last 7 terms. Winter 2027: scheduled, 3 lecture sections. Spring 2027: schedule not out yet.
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.
Prerequisites
- Complete all of the following
- Must have completed at least 1 of the following:
- Must have completed at least 1 of the following:
- Enrolled in H-BBA & BCS Double Degree, H-Computer Science (BCS), H-Computer Science (BMath), JH-Computer Science (BCS), JH-Computer Science (BMath), H-Computing & Financial Management, H-Data Science (BCS), or H-Software Engineering
Antirequisites
None listed.
Leads to
No course lists it as a requisite.
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 6240 | 51 / 70 | MW 14:30–15:50 |
| TST 101 | 6621 | 51 / 70 | Oct 28 19:00–20:50 |
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5703 | 0 / 90 | MW 16:00–17:20 |
| LEC 002 | 5856 | 0 / 90 | MW 13:00–14:20 |
| LEC 701 | 2188 | 123 / 9999 | Online or by arrangement |
| TST 101 | 6232 | 0 / 180 | Feb 24 19:00–20:50 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 349.
- CS349 Fall 2026 : About Course website · Fall 2026 · student.cs.uwaterloo.ca Remove
- CS349 | Anthony Zhang Course notes · anthony-zhang.me · posted on r/uwaterloo Jul 2020 Remove
- Color Palettes & Themes Other · color.adobe.com · from UWaterloo Links (SE) Remove
- Human Interface Guidelines Other · developer.apple.com · from UWaterloo Links (SE) Remove
- JavaFX 8 Other · docs.oracle.com · from UWaterloo Links (SE) Remove
- lawsofux.com Other · lawsofux.com · from UWaterloo Links (SE) Remove
- Remove
Other, 2 pages developer.android.com · from UWaterloo Links (SE)
- Visualising Fitts's Law Other · simonwallner.at · from UWaterloo Links (SE) Remove
2 more links
- WAVE Web Accessibility Evaluation Tools Other · wave.webaim.org · from UWaterloo Links (SE) Remove
- CS 349 | SCS Other · cs.uwaterloo.ca · posted on r/uwaterloo Feb 2018 Remove
Reviewed on UW Flow
77% liked it74% easy70% useful
From 329 ratings and 98 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
DISREGARD ALL THE PREVIOUS COURSE REVIEWS. Daniel Vogel has completely changed the course delivery to use Modern UI Toolkits/Frameworks/Languages. This year, we used Node.j, Vite, TypeScript and HTML DOM to create web apps. The theories about UI are probably the same, but the actual implementations on assignments are now very relevant to the industry.
Course Difficulty:
Assignments: They are not easy on paper. Require you to follow the lectures. BUT, I did not find them hard because they were enjoyable. They were a breadth of fresh air compared to other CS coursework and assignments. It was fun making web-apps.
Exams: Straightforward. If you struggled to do well on assigments you won't…Oct 2023 · liked it · 4 found this helpfulOn UW FlowRemove this
Very fun course. Its not as much work as people say (unless you've never explored Java -- which you should do since almost every offering of the course usually has one assignment in).
Course content is kind of dry at times but I learned a lot about cognitive science and human computer interaction as well which was interesting.Aug 2014 · liked it · 2 found this helpfulOn UW FlowRemove this
Interesting deep dive into the low level of how websites work. This course is definitely more of a frontend development course than user interfaces course though.
Mar 2026 · liked it · 1 found this helpfulOn UW FlowRemove this
I took the second offering of the recently re-vamped course, which I hear is much better than the previous version of this course (so if you're looking at reviews for this course, pay attention to reviews starting from one semester prior to this one). We learned both UI design theory as well as modern UI technologies (TypeScript, HTML, CSS, Preact). To me, assignments were a pretty big time sink, but I also had no frontend experience before this class, so take my assessment of them with a grain of salt. For people taking this course shortly after me, keep in mind that it's a new course so there might be a few small growing pains as Dr. Vogel irons out exactly how he wants to teach the…
May 2024 · liked it · 1 found this helpfulOn UW FlowRemove this
Thankfully it's not outdated anymore, and has a good progression from Canvas API and TS to HTML/CSS to Preact. Some say it's for amateurs, but it's a good front-end warmup for students just starting regardless. Just prepare to analyze demo code over and over for completing the long assessments.
Apr 2024 · liked it · 1 found this helpfulOn UW FlowRemove this
Discussed on r/uwaterloo
490 posts and comments in 340 threads mention CS 349, October 2011 to December 2024. Quoted word for word, newest first; each reply sits under the post and the comment that started its branch. Search r/uwaterloo for newer posts.
Fall 2024
CS 349 vs 348 vs 370 vs 442 vs 365 2 points, 6 comments
u/Strange-Attitude719: “Which one should I take for the most useful course alongside other courses (one which adds the most value to my degree)? For context I already have experience with front-end (349) and databases (348) in coop.”
u/shrimpFriedRice49: “Cs349 is just an easy course. Very introductory level course. Content wise, not so useful, but I believe it has team project component, which you can use for your portfolio. Cs370 is good. Introductory course for computational data treatments. …”
Thoughts on Course Load 3 points, 11 comments
u/goose-ctrl: “CS 341 CS 348 CS 349 CS 350 ECON 424 Thoughts on the course load for these 5 courses ?”
u/_spooky_77: “from personal experience (so ymmv), cs349 is pretty free, cs348 is fine as long as david toman isn’t teaching it, cs341 and 350 might be a bit painful (341 was kinda tough for me cus I’m garbage with proofs and don’t grind leetcode), econ424 is easy according to uwflow, I’d say …”
Best and worst 4th year CS course? 10 points, 6 comments
“What are the best and worst 4th-year CS courses in terms of importance or difficulty? Which ones are worth taking, and which would you avoid?”
u/Jet711_: “Would strongly recommend CS349 - both a fairly easy course (although some assignments can be time consuming) and extremely useful if you're going into frontend development. To date I haven't encountered a course that has been as relevant as that one”
Spring 2024
Online CS Courses? 2 points, 4 comments
“Does anyone have recommendations for CS courses that can be mostly done online? I'm talking about skipping 100% of all lectures and just attending midterms and finals. …”
u/LordHylian95: “CS 231 and CS 234 are both fully online and have final assessments instead of an exam”
u/iamanaybaid555: “Is CS 346, 349 it?”
CS489: New Security Course 14 points, 2 comments
“Has anyone taken the new security courses? How is it? CS 489/698 Software and Systems Security and CS 489/689 Privacy, Cryptography, Network, and Data Security Which once is better and what is a good …”
u/Elibroftw: “I don't recommend Software and Systems Security. I've created a review here. The gist of my review is: assignments are just a go learn it yourself. …”
u/Elibroftw: “… Yeah CS 349 only just got revamped to use modern-tech stack. Web security isn't easy, but I've seen so many mistakes that even I've made myself. That's why I highlighted CSRF, because no one every talks about it. …”
Winter 2024
Cs 4A Course Load 8 points, 5 comments
u/snorawr: “… Cs349 user interfaces Cs449 human-computer interaction Cs456 computer networks Cs489 advanced topics: privacy, crypto, data security Stat231 I’m tryna knock out some credits before going on exchange so they err on the easier side but still wanted interesting courses.”
u/ivanivanchenchen: “… - CS 349 was fun, not very hard, but can be somewhat time consuming. If you have some Kotlin experience it will be a breeze but will still take a bit of time for assignments. …”
u/stereosteam: “cs 349 is typescript now (i took it when it was kotlin), still a fair bit of coding but light work nothing too difficult. 449 can be a decent amount of work but if you have a good group it's manageable and obviously can be a lot easier than a coding course. …”
u/_KareemCheese_: “CS349: can’t comment on its difficulty since they have reworked the course into typescript since I took it, but I’ve heard mixed feedback. …”
CS348 /CS349 Workload 4 points, 4 comments
u/Overall_Memory7519: “Cs349 ez but very long”
UW CS Courses over Co-op 1 point, 4 comments
u/Lost-Smile-6813: “I'll be on Co-op next term and I want to take a cs course over coop. I need to take CS 341, 348, 349, and 350. Which one is the easiest to take over co-op.”
CS 349 Assignments 3 points, 1 comment
u/ShapeBrave9547: “Is it just me or is this first assignment taking wayyy too long? Not even sure if I can finish it within a few days”
CS 349 Notes 3 points, 0 comments
u/ShortEar9087: “Hi I am taking CS349 while on coop. I am not able to attend lectures. Is there someone who can grace me with their notes. Feel free to dm.”
CS 349 Notes 3 points, 2 comments
u/ShapeBrave9547: “Anyone taking CS 349 this term? Would like to connect and share class notes, feel free to DM!”
CS348 vs CS349 advice 3 points, 1 comment
u/Serious_Horse_7792: “… I’m debating on taking this or CS349, but i don’t have that much javascript experience. …”
Check it elsewhere for Fall 2026
- Undergraduate Calendar, 2026–27The official entry
- Requirements for Fall 2026Waterloo’s requisite checker
- Schedule of Classes, Fall 2026Instructors, rooms, live seats
- Quest Class SearchWhere you enrol
- Course outlinesSyllabi from past terms (UW login)
- UW FlowStudent ratings and reviews
- WClassesPast sections back to 2004, and who taught them