uwloo

CO 353Computational Discrete Optimization

Units
0.50
Faculty
Mathematics
Subject
Combinatorics and Optimization

When it runs

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

  • Must have completed at least 1 of the following:
    • CO250 - Introduction to Optimization (0.50)
    • CO255 - Introduction to Optimization (Advanced Level) (0.50)

Antirequisites

None listed.

Leads to

No course lists it as a requisite.

Winter 2027 sections

Enrolment from UW Open Data, which can trail Quest by up to two days. Instructors and rooms: Schedule of Classes.
SectionClassEnrolledMeets
LEC 00158590 / 80TTh 16:00–17:20
LEC 701229745 / 9999Online 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.”

View on RedditRemove this

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

View on RedditRemove this

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

View on RedditRemove this

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”

View on RedditRemove this

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

View on RedditRemove this

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

View on RedditRemove this

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

View on RedditRemove this

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

View on RedditRemove this

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

View on RedditRemove this

Spring 2023

Check it elsewhere for Fall 2026

Calendar versions

Undergraduate Calendar