uwloo

CS 360Introduction to the Theory of Computing

Units
0.50
Faculty
Mathematics
Subject
Computer Science

When it runs

  1. F24
  2. W25
  3. S25
  4. F25
  5. W26
  6. S26
  7. F26
  8. W27
  9. 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

Antirequisites

  • Not completed nor concurrently enrolled in any of the following:
    • CS365 - Models of Computation (0.50)

Leads to

Fall 2026 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 001642935 / 60MW 13:00–14:20

Resources

Around the web

Found by uwloo’s link finder, which checks that each page names CS 360.

Suggest a resource.

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

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. …”

View on RedditRemove this

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.”

View on RedditRemove this

Fall 2023

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.”

View on RedditRemove this

Spring 2023

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 …”

View on RedditRemove this

Winter 2023

Spring 2022

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?”

View on RedditRemove this

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. …”

View on RedditRemove this

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar