CS 360Introduction to the Theory of Computing
- Units
- 0.50
- Faculty
- Mathematics
- Subject
- Computer Science
When it runs
- F24
- W25
- S25
- F25
- W26
- S26
- F26
- W27
- S27
Ran in 5 of the last 7 terms. Winter 2027: not on the schedule. Spring 2027: schedule not out yet.
Models of computers including finite automata and Turing machines. Basics of formal languages with applications to the syntax of programming languages. Alternate characterizations of language classes. Proving unrecognizability. Unsolvable problems and their relevance to the semantics of programming.
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:
- CS365 - Models of Computation (0.50)
Leads to
Fall 2026 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 6429 | 35 / 60 | MW 13:00–14:20 |
Resources
Around the web
Found by uwloo’s link finder, which checks that each page names CS 360.
- CS 360: Introduction to the Theory of Computing (Spring 2026) Course website · Spring 2026 · student.cs.uwaterloo.ca Remove
- CS 360: Introduction to Theory of Computing Course website · Spring 2022 · cs.uwaterloo.ca · from Shalev Ben-David’s site Remove
- CS 360: Introduction to Theory of Computing (Spring 2021) Course website · Spring 2021 · cs.uwaterloo.ca · from Shalev Ben-David’s site Remove
- CS360 Course website · cs.uwaterloo.ca · from Ming Li’s site Remove
- Course Highlight (EPFL: CS-251) Course notes · david-duan.me · posted on r/uwaterloo Mar 2022 Remove
- Remove
Course notes, 2 PDFs cdn.shopify.com · posted on r/uwaterloo Mar 2014
- cs360-notes: Class notes for CS 360 in the Fall '11 term at the University of Waterloo. Course notes · github.com · by mvisser on GitHub Remove
- Watrous' CS 360 Other · cs.uwaterloo.ca · posted on r/uwaterloo Dec 2016 · gone now; archived copy from Aug 2019 Remove
Reviewed on UW Flow
76% liked it65% easy56% useful
From 71 ratings and 18 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
Everything is tough under Professor Waltrous. Although I do learn these things more solidly compare to others.
Aug 2017 · didn’t like it · 2 found this helpfulOn UW FlowRemove this
If you are not feeling challenging enough for your university life, take this course with Professor John Watrous. Assignments are hard and all proofs. Not like other terms, you don't have nice questions like drawing NFAs. Midterm questions are similar to assignment questions, and a little bit more manageable. Final exam is challenging and harder than assignments. He did reuse his previous term assignment questions as exam questions, so you can prepare for the exam by practicing those questions. I did enjoy solving these challenging questions, but I didn't do well on exams...
Aug 2017 · didn’t like it · 2 found this helpfulOn UW FlowRemove this
The course might have been easier had it been less boring.
Aug 2014 · didn’t like it · 1 found this helpfulOn UW FlowRemove this
One of my favourite courses. If you liked CS 241 and CS 245, you’ll probably like this one as well. Very proof-heavy course, but most problems were interesting and fun to solve.
Aug 2024 · liked itOn UW FlowRemove this
This course is a great course to take for interest. While not super practically applicable, it does go into detail about finite automata, CFGs, Turing machines, and undecidability. It's kind of like a history of CS course, which provides a nice roadmap for classic CS problems. I took it F23 with Dan Brown who is awesome, and it was a pretty reasonable amount of work. Great course for people who like math, and it is pretty proof heavy and abstract.
Dec 2023 · liked itOn UW FlowRemove this
Discussed on r/uwaterloo
231 posts and comments in 181 threads mention CS 360, January 2012 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/VK47: “Congratulations Professor, I was your student in CS360 back in Summer 2003 and I’ve always looked back at you and that course as being monumental in my understanding of computing and foundational in my career.”
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/wildgurularry: “I'm late to the game here, and unfortunately I never had you as a prof, but I had Prof Lubiw for CS360 back in the late 90s and it was the lynchpin course that made me really appreciate the field of computer science. Congrats on retirement!”
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. …”
u/OppositeRock6573: “… I took CS360 with you in Fall 21, and now that I've graduated I can confidently say it's in the top 3 courses of my degree. It showed me what purely theoretical computer science could look like. I also took CS341 with Prof. Lubiw that semester, and it was a great time! …”
u/mjnichol2: “… I came back again and again for your courses (CS 360, CS 646, CS 860) and they are the ones I enjoyed and remember the most. It's hard to believe it was almost 25 years ago. …”
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.”
Fall 2023
Any 3-4th year “textbook” CS courses that don’t need me to attend lectures to do well? 7 points, 6 comments
u/dave7364: “CS360 is pretty easy imo”
make up final for cs 246 cs 245 ? 3 points, 4 comments
“Hey does anyone know if I can do a make up final for CS 246, 245 ? because of some medical reasons I can only do 2 out of the 4 finals that I have, ie. I won't be able to do CS 245 and CS 246 final. …”
u/winniejy: “I think they will give you a mark of INC and you will have to take the exam the next term (but you don't necessarily have to take 4 months off).”
u/2kofawsome: “… All the previous ones + CS348, CS360, CS370, CS442, CS449, CS487, CS492 All in all, it won't be the end the world, but it will make things way harder to plan courses.”
Spring 2023
Cs346 vs cs349 vs cs348 vs cs 370 vs cs360 1 point, 11 comments
What is BMATH (CS)? 0 points, 11 comments
“Just got accepted to both math and cs, and am currently debating over which one to choose. I'm looking to attend grad school, and am not too interested in working a coding job, but still interested …”
u/ClarkeVice: “… It’s actually the original degree, before CS had their own less restrictive requirements- you have to take MATH 235 (linear algebra 2), MATH 237 (Calc 3), CS 360 (Theory of Computing) and CS 370 (Numerical Computation) or their respective advanced versions on top of the BCS …”
Winter 2023
Would anyone who uses Chegg (or any paid alternative) like to try a free alternative? 1 point, 1 comment
u/halfway-to-hell: “Holy shit, I just put some stat 333 and cs 360 assignment questions into chatgpt and it answered it (mostly) correctly. I wish I had this as an undergrad, damn. Your free alternative to chegg would be cool too. It would be a nice side project tbh.”
Spring 2022
Posted in CS348 piazza 292 points, 11 comments
“What even was that final?”
u/tendstofortytwo: “Someone unenrolled from CS348 since the last UW Flow update, which is approximately when people started to complain about CS348 final on Reddit lmfao”
u/2kofawsome: “That was me lol, I was deciding between CS348 and CS360”
u/LettuceSuspicious552: “I’d choose CS 360 over CS 348! CS 348 complete garbage”
3A CS Courses :( 4 points, 16 comments
“CS350 and CS341 sections are full, and I couldn't get in. :( (+ CS advisor told me that the override is not possible...) Are there any other 3rd-year recommended CS courses? …”
u/2kofawsome: “Looks like the CS courses you can take that have room are CS 348, CS 360, CS 370, CS 492. I guess chose from those, and then keep refreshing and hope for spots to open up in CS341/CS350 to swap into?”
Feeling kinda lost rn 33 points, 9 comments
u/Lost-Soul-69: “… The most fun I have had in my degree have been taking courses in MATH 235, MATH 239, CS 486, CS 360, STAT 331. …”
Courses Paired with Big 3 CS Courses 5 points, 11 comments
“Anyone who has taken one of the big 3 CS courses, what other courses did you take them with? How time-consuming was your schedule with one of the big 3?”
u/wings_faith_bian: “… I did 488 with a 300 and 400 level stats courses, CS 360, and CS 480 and I was honestly fine, less busy than during the 452 term. 444 I had a lighter schedule I believe. Well I had 6 courses but 2 were breadth, and I didn't take anything hard really. …”
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