CO 353Computational Discrete Optimization
- Units
- 0.50
- Faculty
- Mathematics
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.
Formulations of combinatorial optimization problems, greedy algorithms, dynamic programming, branch-and-bound, cutting plane algorithms, decomposition techniques in integer programming, approximation algorithms.
Prerequisites
Antirequisites
None listed.
Leads to
No course lists it as a requisite.
Winter 2027 sections
| Section | Class | Enrolled | Meets |
|---|---|---|---|
| LEC 001 | 5859 | 0 / 80 | TTh 16:00–17:20 |
| LEC 701 | 2297 | 45 / 9999 | Online or by arrangement |
Reviewed on UW Flow
55% liked it21% easy70% useful
From 29 ratings and 15 comments on UW Flow. The most helpful comments, quoted as written, without names. Read them all on UW Flow.
This course is interesting; it's an intersection of graph theory, algorithms and linear programming. Don't take it if you want Leetcode prep; take it if you want to learn more about discrete optimization rigorously, understand the intuition behind graph optimization problems and improve your problem solving techniques.
The midterm was fair if you had a good grasp of the intuition behind the questions; they gave you most marks if that was the case, but most of the class didn't do well (including me). The assignments are decently difficult and time consuming but also fair; the assignment with a median of 28% on it had some of the harder problems treated as bonuses, and it was only worth…Apr 2023 · liked it · 1 found this helpfulOn UW FlowRemove this
I thought I could use it to prepare for coding interviews, since math students cannot attend cs341. However, only 20% of the grade are coding assignments. The rest are written assignments and exams filled with almost purely proofs, which does not help your CS career at all. The written assignments were long and difficult. One of them had a class average of 26%, and i think that's excluding the people who didn't submit their assignment. Overall, if you enjoy long and difficult proofs/theories, then you might like this course. Otherwise I'd rather spend my time on leet code than on useless proofs and theories.
Apr 2023 · didn’t like it · 1 found this helpfulOn UW FlowRemove this
Taken with prof Kanstantsin Pashkovich. It was proof-heavy. The proofs in class were already hard, but the final exam(all are proof questions) was even harder. Midterm median was like 50-60%. Not sure if there was a curve on final cuz I don't think I got above 50% in it but I barely passed. It is hard, even the prof said he didn't have good news for us on the final's difficulty level ;(
May 2026 · didn’t like itOn UW FlowRemove this
In my offering we had 3 group programming projects (10%), a midterm (40%), and a final (50%). There was also 4 optional assignments for practice. The final was difficult but the rest of the course was not too difficult.
Apr 2026 · liked itOn UW FlowRemove this
Probably one of the most intellectually stimulating courses of my undergrad. Really enjoyed this one.
Apr 2025 · liked itOn UW FlowRemove this
Discussed on r/uwaterloo
91 posts and comments in 74 threads mention CO 353, July 2015 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
Any CO course recommendations 4 points, 2 comments
“I’m in cs and pursuing a CO minor (pause) I took CO250 this term and I enjoyed the content, I looked at CO372 and it looks pretty interesting. …”
u/startover0: “CO 353 was pretty interesting and I think it’s offered this winter. It’s an algorithm based course but the algorithms are for questions on graphs.”
CO course comparison 3 points, 7 comments
u/amsyed10385: “… Options for me are: CO 444 Algebraic Graph Theory CO 481 Quantum Info CO 463 Convex Optimization CO 353 Discrete Optimization Anyone who has taken one or more of these? Preferably if you can compare two courses difficulty and how time consuming it is. …”
u/batson2002: “… Can't comment on CO353. …”
Workload for W25 HELPPP! 6 points, 3 comments
u/NoActivity436: “Do you guys think taking CO331, 353, 487 and AMATH342 in one semester is doable? I heard that most of the CO courses have a relatively heavy workload and am unsure about if I get to handle all these at the same time ;)”
u/SpiritedTie9025: “CO331 and CO487 should be okay, CO353 is super hard, I remember the top 5 students' score last year are 97, 93, 8x, 7x, 56. Which means most of the students can't get 60+. So consider more bro.”
Spring 2024
CO or CM (not able to transfer CS) 7 points, 5 comments
“Hi, I am a Farm student just finished 1b, and I found that I am very interested in Computer, Coding, so I decide to transfer to CS by the end of 1a. …”
u/promiscuous_reddit: “select the common courses first and decide later. e.g. co351 co353 co487”
u/GooonSam: “okay! I plan to take CO250 and MATH239 in my 2a, and then take CO353 in my 2b. After that I think I can get the answer”
Winter 2024
Is the CS degree even worth it? 5 points, 11 comments
“Just finished my 1B in CS, and I'm not too sure if I want to continue in this program. Back when I was applying to universities I applied for mostly math programs, and CS at Waterloo was the only CS …”
u/positivity_nerd: “… I would recommend taking CO 367, 353 and 466. For stats, take 341,441,440,444, 331 and 333. Also 430 if you are into experimental design but only take it if Prof Nathaniel Stevens is teaching it. …”
Fall 2023
CO courses help! 1 point, 1 comment
u/Successful_Jacket504: “I'm planning to take CO 353, CO 487, CO 351, CO 367. Does anyone have materials on these courses? I kinda really don't have a choice if I want to meet all my requirements and graduate so I HAVE to take these courses. …”
Good CO Courses 11 points, 12 comments
“Which CO courses are very good to take and are worth it (even if they are hard)?”
u/Accomplished_Emu8895: “CO 353 if you like discrete optimization (this course is typically offered only in winters)”
u/moistgoolash: “I heard CO 353 is close to CS 341 is that right?”
u/Accomplished_Emu8895: “Not quite - they're both about designing algorithms but not many of the topics overlap (only MST, Dijkstra's algorithm, which are the first 2 weeks of 353). CO 353 is much more optimization focused; there is a sample syllabi on the CO web page that says what topics are covered”
u/Koume142: “Hi, May I ask a little bit more about CO 353? So far I have taken Co 250 351 342 370. I heard some people said that CO 353 is more difficult and has more workload than any of them. Would you say that's true?”
Course Workload: CS476, CS487, CO353, STAT441, ACTSC446 2 points, 1 comment
u/slavic_salve: “Opinions on this course load for next semester? It seems pretty brutal to me, but I'd be able to get a CS Minor.”
Help with when to take a certain course! 1 point, 1 comment
u/moist_2: “… I noticed that CO 353 is a course that only requires CO 250 as a pre-req and seems like something I can take to potentially fast track. However, I'm worried that it might be too difficult alongside stat 231 and math 239. …”
u/jadedwolf12: “CO 353 is pretty tough. It seems to assume a decent background in graph theory, so I'd recommend taking MATH 239 beforehand. …”
I don’t know what to do with my degree 1 point, 14 comments
“I'm in my 2A term as a math student and my initial plans were to get into data science, but due to my average being lower than the cutoff that did not happen. …”
u/Organic_Midnight1999: “Bro a Math degree is underrated. As the world advances the problems we face just get harder and harder. We move towards more high level, abstract, and data driven problems - guess what? …”
u/jadedwolf12: “… CO 353 - covers P vs NP, a lot of the classic graph algorithms, and some approximation algorithms. …”
Spring 2023
What's a course that you think everyone should take? 50 points, 41 comments
“Just curious about people's experiences, and why they think everyone should take it. also i'm looking for first year electives and open to any ideas lol”
u/sherpy_: “CO 353”
Most Recommended CO Courses? 22 points, 21 comments
“What are your most recommended CO courses regardless of hardness? :D Thank you\”
u/sherpy_: “CO 353 :) it's a good combo.of theoretical knowledge and practice with implementing algos in code.”
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