CS 341: Algorithms Fall 2026
Below is a schedule of lectures and accompanying notes.
When you need more details/examples, or if you like a text book format, we provide corresponding sections of the text, CLRS, together with our recommendations for alternative sources available online.
For descriptions of the books, see Resources.
| |
|
Date |
Topics |
Notes |
CLRS |
Other readings (* = highly recommended) |
| Week 1 |
L1 |
Sep 10 |
Introduction |
|
|
* [Skienna] 1, 2
|
| Week 2 |
L2 |
Sep 15 |
Divide-and-conquer, solving recurrences |
Lap Chi L02
|
4.1, 4.3, 4.4, 4.5; Optionally CLRS 2.3
|
|
| L3 |
Sep 17 |
Optimality of algorithms |
|
|
[DPV] 2
|
| Week 3 |
L4 |
Sep 22 |
More divide-and-conquer |
Lap Chi L03
|
9.3
|
|
| L5 |
Sep 24 |
Induction and graph algorithms: breadth first search |
Lap Chi L05
|
22.1, 22.2
|
* [Erickson] 5.1 - 5.4
|
| Week 4 |
L6 |
Sep 29 |
Induction and graph algorithms: breadth first search |
|
|
|
| L7 |
Oct 1 |
Graph algorithms II: depth first search |
Lap Chi L06
|
22.3
|
* [Erickson] 5.5, 6.1
|
| Week 5 |
Midterm 1: Monday, Oct 5, 6:00pm to 7:50pm |
| L8 |
Oct 6 |
Graph algorithms II: depth first search |
|
|
|
| L9 |
Oct 8 |
Directed graphs |
Lap Chi L07
|
|
[Erickson] 6
|
| Week 6 |
Reading week |
| Week 7 |
L10 |
Oct 20 |
Directed graphs / Greedy algorithms I: scheduling problems |
Lap Chi L08
|
22.4, 22.5
|
[DPV] 3.2
|
| L11 |
Oct 22 |
Greedy algorithms I / Greedy algorithms II: single-source shortest paths |
Lap Chi L09
|
16.1
16.2
|
[Erickson] 4
|
| Week 8 |
L12 |
Oct 27 |
Greedy algorithms II: single-source shortest paths |
|
24.1, 24.3
|
[Erickson] 8.6
|
| L13 |
Oct 29 |
Minimum spanning tree |
Lap Chi L10
|
23
|
[DPV] 5.1
[Erickson] 7.1, 7.2, 7.5
|
| Week 9 |
L14 |
Nov 3 |
Dynamic programming I: weighted interval scheduling and knapsack |
Lap Chi L11
|
intro of 15, 15.3; CLRS 15.1
|
Optional [Erickson] 3.1, 3.4
|
| L15 |
Nov 5 |
Dynamic programming II: longest increasing subsequence (LIS), longest common subsequence (LCS) |
Lap Chi L12
|
15.4
|
[DPV] 6.4
|
| Week 10 |
Midterm 2: Monday, Nov 9, 6:00pm to 7:50pm |
| L16 |
Nov 10 |
Dynamic programming II / Dynamic programming III: graphs |
Lap Chi L12
|
23
|
[DPV] 5.1
[Erickson] 7.1, 7.2, 7.5
|
| L17 |
Nov 12 |
Dynamic programmng III: graphs / Maximum flow |
Lap Chi L14
|
|
|
| Week 11 |
L18 |
Nov 17 |
Maximum flow |
Lap Chi L15
|
|
|
| L19 |
Nov 19 |
Some applications of maximum flow |
Lap Chi L16
|
|
|
| Week 12 |
L20 |
Nov 24 |
Polynomial time reductions |
Lap Chi L17
|
34.1
|
[DPV] 8
[Erickson] 12
* for reductions: [Erickson] 1.1
|
| L21 |
Nov 26 |
Polynomial time reductions |
|
34.2
|
|
| Week 13 |
L22 |
Dec 1 |
NP completeness |
Lap Chi L18
|
34.3
|
|
| L23 |
Dec 3 |
NP completeness II |
Lap Chi L19
|
34.4
|
|
| Week 14 |
L24 |
Dec 8 |
NP completeness III |
Lap Chi L20
|
34.5
|
|
Hand in a PDF file with your solutions via CrowdMark. We encourage you
to prepare your solutions using LaTeX but you can use other software or
submit handwritten assignments as long as they are legible.
We have the right to take marks off for illegible answers.
Assignments will appear in the following table, and will be due on the dates specified:
| Assignment Number |
Date Posted |
Due (11:59pm EDT/EST) |
Hand In Via |
Solutions |
| 1
| |
Sep 25 |
CrowdMark |
|
| 2
| |
Oct 30 |
CrowdMark |
|
| 3
| |
Nov 20 |
CrowdMark |
|
| 4
| |
Dec 4 |
CrowdMark |
|
See the
Course Outline
for assignment policies.
We will use Piazza
for all course announcements and as a forum for students to ask and
answer questions. So you should enroll yourself at your earliest
convenience. During Piazza discussions, please do not reveal
the solutions to the assignments by requesting or offering detailed
advice. We'll delete comments that reveal too much.
Violations can result in academic sanctions.
See the
Course Outline
for information about instructors, TAs/IAs, and other course staff,
including contact information.
Points of contact for common questions
Note: If you decide to e-mail the course staff, you
must use your uwaterloo Quest e-mail account
(WatIAM/Quest userID @uwaterloo.ca); otherwise we cannot verify who you
are and are limited on what we can accept and respond to.
| Help Topic |
Contact |
| Assignment, Missed Deadline: |
We do not accept emailed assignments.
The last files
submitted before the deadline will be marked.
If the deadline is missed due to illness or other valid,
verifiable reason, see Missed Work Due To Illness below. |
| Assignment Marking Error: |
Remark requests are due within one week of release of the remark request
form for the assignment, which is typically one or two business days after
the release of assignment grades.
Details
of how to make a request will be
posted on
Piazza.
|
| Assignment Recording Error: |
Grades will primarily be made available through CrowdMark.
If you notice an error in the recorded grade
(e.g., an incorrectly applied late penalty)
please contact
Sylvie Davies (CS 341 ISC).
|
| Course Website Error: |
Contact
Sylvie Davies (CS 341 ISC).
|
| Enrollment: |
If Quest won't let you enroll or switch LEC or TUT sections
without a permission/override number: Instructors and course staff
are unable to help you. You must see a CS academic advisor. |
| General Course Help: |
Office hours or
Piazza.
|
| Lecture Questions: |
Office hours or
Piazza.
|
| Missed Work Due To Illness/Valid, Verifiable Reason
(Assignments, Exams): |
Assignments, midterms, final exam: Contact
Sylvie Davies (CS 341 ISC).
|
| AccessAbility Services (AAS) exam accommodation forms (request
to write at AAS): |
Submit to AAS at least 3 weeks before exam. |
If you are person who likes a more detailed text book format, here are our recommendations for sources available online.
- [CLRS] Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (3rd ed.)
A standard reference. Thorough, but can be wordy and complicated.
https://ocul-wtl.primo.exlibrisgroup.com/permalink/01OCUL_WTL/5ob3ju/alma9932583523505162
- [DPV] Dasgupta, Papadimitriou, Vazirani, Algorithms
Very concise.
http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf
- [Erickson] Jeff Erickson, Algorithms
Good coverage, many exercises and problems.
available online
https://jeffe.cs.illinois.edu/teaching/algorithms/
- [Skienna] Steven Skienna, The Algorithm Design Manual
More practical, and with a catalogue of algorithms.
https://ocul-wtl.primo.exlibrisgroup.com/permalink/01OCUL_WTL/5ob3ju/alma9953151786305162
Textbook: [CLRS] Cormen, Leiserson, Rivest, and
Stein, Introduction to
Algorithms (3rd ed.), MIT Press, 2009 (QA76.6 .C662 2009).
This book is available electronically through the UW library catalog.
Additional reference: [DPV], Dasgupta, Papadimitriou, Vazirani, Algorithms,
available here.
Additional books:
- [KT] Kleinberg and Tardos, Algorithm Design (QA76.9.A43K54
2006)
- [BB] Brassard and Bratley, Fundamentals of Algorithmics
(QA9.58.B73 1996)
- [GJ] Garey and Johnson, Computers and Intractability: A Guide
to the Theory of NP-Completeness (QA76.6.G35 1979)
The following resource is also useful for the course but more
importantly for technical interviews you may have:
- Adnan Aziz and Amit Prakash, Algorithms for Interviews,
2010. Available here.
Nice small collection of problems and solutions