CS 365Models of Computation
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 2 of the last 7 terms. Winter 2027: scheduled, 2 lecture sections. Spring 2027: schedule not out yet.
Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and undecidability. Time and space complexity. Diagonalization and hierarchies. CS 365 covers the material in CS 360 at an accelerated pace plus additional topics in computational complexity.
Prerequisites
- Complete all of the following
- Must have completed at least 1 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
- Not completed nor concurrently enrolled in any of the following:
- CS360 - Introduction to the Theory of Computing (0.50)
Leads to
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5690 | 0 / 60 | MW 10:00–11:20 |
| LEC 701 | 2190 | 33 / 9999 | Online or by arrangement |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 365.
- Redirection for CS 365 (W20) Course website · Winter 2020 · student.cs.uwaterloo.ca Remove
- CS 365 | SCS Course website · cs.uwaterloo.ca · from Jonathan Buss’s site Remove
- Models of Computation Other · cs.uwaterloo.ca · from Eric Blais’s site Remove
1 page from this site
- CS 365 (archived copy)
Reviewed on UW Flow
71% liked it48% easy56% useful
From 56 ratings and 15 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
"WTF, man I just wanted to learn how to program video games..."
Nov 2012 · liked it · 5 found this helpfulOn UW FlowRemove this
The following response is generated by Mr. ChatGPTuring machine:
"This course is just fantastic if you're into barely scratching the surface. The professor openly admitted on day one that it's useless in real life—and he wasn't kidding. I signed up because I was curious, but instead, I got a mishmash of topics that never go into any real depth.
The assignments are just rehashing proofs from class, no creative work involved. And the tests? They're your typical CS exam with true/false, short answers, and long answers. The TAs grade like they're robots on autopilot.
This course is like a super-sized version of CS341: if you disliked CS341, you'll hate this one, and if you didn't, you'll…Mar 2025 · didn’t like it · 1 found this helpfulOn UW FlowRemove this
This course was reworked this semester with a lot of new material. Content was fun, assignments were interesting but took some time, exams were pretty straightforward. Would recommend
May 2024 · liked it · 1 found this helpfulOn UW FlowRemove this
was interesting at first but then got a lot more boring after the 6th week straight of talking about turing machines (the whole course was only on turing machines). the computational complexity stuff was interesting but i wish we talked more about its applications. i liked the TM part of cs245 and the P/NP part of cs341 but i didn't like this course.
Aug 2025 · didn’t like itOn UW FlowRemove this
The contents in this course are super interesting. I kinda didn't like the style of teaching of Eric Blais, though I think he is better than most of the CS profs. He stops and ask students to think about the proofs. This is nice but he does it too many times and for even the most trivial things in class. He also skips a lot of non-trivial steps in proofs, which are actually the important parts. He suggested that a this is confusing concept and you should try reading it multiple times from the notes so you can get it, instead of actually talking about the proof and why it makes sense. The midterm and final were disappointing for me. I can't believe that in an advance version of a…
May 2025 · liked itOn UW FlowRemove this
Discussed on r/uwaterloo
102 posts and comments in 76 threads mention CS 365, December 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
Bad CS student needing advice on doing math research and double majoring? 1 point, 2 comments
“I’m a 4B CS major not in coop who would normally graduate next term but I want to try adding a math major and adding years to my undergrad to do research. …”
u/amsyed10385: “… To do a double major CS and Math though, you need to switch to BMATH CS which requires CS 360/365 and CS 370/371 as well, keep that in mind. …”
Spring 2024
I just retired from UW after 34 years of teaching CS (and 40 years of teaching total). Ask me anything. 503 points, 282 comments
u/shallit: “… papers on these topics in journals and conference proceedings \ I taught courses including CS 360, 365, 341, and 462 \ I supervised undergraduate students, master's students, and Ph. D. …”
u/Regular_Maybe5937: “I’ve been told that UW’s CS has not always been separated into the BCS and BMATH streams. Seeing that you’ve taught a couple of the courses now only required by BMATH (but not by BCS), what are your …”
u/Regular_Maybe5937: “Cs 360/365”
u/shallit: “Oh, yeah, the decision to remove CS 360/365 from the CS core was, I think, unfortunate, but many universities are now moving away from this as core CS material. So UW is not alone.”
u/torvader: “Congrats! I took your 462 course and thoroughly enjoyed it. I also had a ton of fun working on your no-repetition challenge when I took CS365 with Blais, and I even stopped by your office once to talk about it.”
u/Gauss_given_order: “Whom do you regard as your most brilliant collaborator? What do you think sets them apart? Are you interested in the busy beaver problem? …”
u/shallit: “… The busy beaver problem is a fun one that I've talked about in CS 360/365/462 from time to time. It illustrates the kind of astonishingly complex behavior that even the simplest systems can produce. …”
Enumeration-like courses 4 points, 4 comments
“I enjoyed the binary string part of math 239 and i’m wondering what future course (CO or other kind of theory courses) go more in depth into that or explore topics like that? …”
u/blkmage: “If it's the strings specifically that interests you, that's formal language theory: look at CS 360/365. Not much actual enumeration in those though.”
Winter 2024
Should I take CS 365 or CS 442? 3 points, 2 comments
u/EducatedImagination: “… However, based on my schedule, I have the option to take only one of the following two courses: CS 365 or CS 442. I am wondering which one is more interesting conceptually and which one is more useful practically. …”
u/2kofawsome: “… CS365 (https://outline.uwaterloo.ca/view/nny8zs) will cover undecidability from CS245 and greatly expand on the complexity topics from CS341 CS442 (https://outline.uwaterloo.ca/view/n8uwb9) is for those "who loved CS245" according to the prof this term in the first lecture”
Fall 2023
thoughts on this courseload 2 points, 1 comment
u/soros-bot4891: “… The 2 CS courses are what I've chosen to fill out my degree requirements so those probably won't change (was also looking at CS 488 Graphics and CS 365 Theory of Computing, though). I decided I wanted to pick up French again hence I have the two French courses there. …”
Exchange student in CS from switzerland 22 points, 31 comments
“Hello I am an undergrad CS student :), My university offers an exchange at Waterloo for my last year and I have questions about the academics, and about the student life. …”
u/asdfg_lkjh: “Cs365 is the one that focuses on theoretical CS the most”
Winter 2023
Should I drop out of UW CS? 55 points, 43 comments
“I started CS Fall 2018. To date, I have completed all 2B requirements except for CS 241. I have completed 21 credits in total, and have met all breath and depth requirements except for Communications …”
u/kronicmage: “Hey, if you're doing another attempt at CS 241 again anytime soon please feel free to hit me up, I'll help you free of charge. …”
u/kronicmage: “… If you can dedicate a few hours per week, I highly recommend working through the material of CS 365, which approaches these topics completely from the bottom up, starting from nothing (it may be controversial to recommend this course cause it normally comes after CS 241, but I …”
Spring 2022
CS course suggestions because advisors didn’t help 2 points, 9 comments
“Hi there! In 2B CS. For some particular reasons, I only have CS courses left as part of my degree requirements. I’ve taken CS 135, 136, 245, 246, and 251. …”
u/2kofawsome: “I think you can take CS 346, CS 348, CS 370, CS 457 But, I dont think its possible in 2B CS to have only CS courses left. …”
u/2kofawsome: “… After you take 240 and 241 this term it will open up CS 341, 349, 350, 360, 365, 442, 449, 487, 492 and taking 370 would open CS 475, 476, 479, 484 for next term, so after this term you will have tons of options. …”
How much free time do CS students get? 44 points, 24 comments
“I am an incoming freshman in the UW CS program and I already know the reputation of the course for being tough as balls but just wanted to ask how much free time can I expect in my first year. …”
u/StarIU: “… I took CS 371, which was a lot of math, CS365, which was enjoyably difficult by prof Eric Blais. I took another experimental CS course by Eric Blais. …”
u/fourier314: “Do you mean CS 365?”
Taking MATH 239 in 3A instead of 2B? 0 points, 2 comments
“Hey yall, I'm in 2B CS and I'm having a hard time balancing 4 core courses at once (CS 240, CS 241, CS 251, MATH 239) and I'm debating switching MATH 239 out for an elective and taking MATH 239 in 3A …”
u/thewarrior71: “Only required course it delays is CS 341. Also CS 360, 365, and some CO/CM courses. You can do CS 341 in 3B, if you don't mind that, you can switch it, and do something like CS 350, MATH 239, STAT 231 in 3A.”
Theoretical CS courses 4 points, 4 comments
u/yodnokzo: “Are there any other CS courses similar to CS 365 or CS 467? Basically, CS courses that are more theoretical rather than applied. I think I will like those courses but there doesn't seem to be that many of them.”
Winter 2022
Thoughts on cs360/cs365? 7 points, 3 comments
u/Djaofan: “I am considering taking CS360 next term, but I am not sure if it is worth it?”
u/robot777: “took cs365. amazing course”
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