The development of provably-correct algorithms to solve problems and their analyses. Topics include basic algorithm design techniques such as greedy, divide-and-conquer, and dynamic programming, and network flows. Intractability and NP-completeness.
See the course outline for more information.
Monday, 12:15pm–1:05pm; Wednesday, 11:15am–12:05pm; Thursday, 1:15pm–2:05pm
All lectures are held in Mulroney Hall, room 3022.
J. Kleinberg and É. Tardos, Algorithm Design. Pearson Addison-Wesley, 2005.
The textbook is available for sale at the campus bookstore. Course notes will also be provided for each lecture.
- Four assignments (12.5% each, total 50%)
- Midterm examination (25%)
- Final examination (25%)
You must write the final examination in order to pass the course, even if the weighted sum of your assignment and midterm examination grades is at least 50%.
- Apr. 18: The final exam will be written on Apr. 22. See the review document and the Exams section below for details.
- Apr. 13: Lecture slides for the twelfth week have been posted.
- Apr. 6: Lecture slides for the eleventh week have been posted.
- Apr. 4: Due to inclement weather, the lecture is cancelled today.
- Mar. 28: Lecture slides for the tenth week have been posted. The fourth assignment has also been posted. It is due by Apr. 14 at 1:15pm.
- Mar. 21: Lecture slides for the ninth week have been posted.
- Mar. 14: Lecture slides for the eighth week have been posted. The third assignment has also been posted. It is due by Mar. 31 at 1:15pm.
- Mar. 7: Lecture slides for the seventh week have been posted.
- Feb. 28: The midterm will be written this week during the Mar. 2 lecture. See the review document and the Exams section below for details.
- Feb. 16: The second assignment has been posted. It is due by Mar. 10 at 1:15pm.
- Feb. 14: Lecture slides for the fifth week have been posted.
- Feb. 7: Lecture slides for the fourth week have been posted.
- Jan. 31: Lecture slides for the third week have been posted.
- Jan. 24: Lecture slides for the second week have been posted. The first assignment has also been posted. It is due by Feb. 10 at 1:15pm.
- Jan. 17: Lecture slides for the first week have been posted.
- Jan. 3: Welcome to the course! Please see our Moodle page for details about the course this term.
|1||Introduction: stable matching, representative problems||Kleinberg & Tardos, 1.1–1.2|
|2||Algorithm analysis||Kleinberg & Tardos, 2.1–2.2, 2.4|
|3||Graphs||Kleinberg & Tardos, 3.1–3.2, 3.4–3.6|
|4||Greedy algorithms: coin changing, scheduling, partitioning||Kleinberg & Tardos, 4.1–4.2|
|5||Greedy algorithms (cont’d): Dijkstra, MSTs (Prim, Kruskal, Borůvka)||Kleinberg & Tardos, 4.4–4.6|
|—||Winter study break||—|
|6||Mid-course review, midterm examination||—|
|7||Divide and conquer: mergesort, quicksort, median/selection||Kleinberg & Tardos, 5.1–5.2, 5.4|
|8||Divide and conquer (cont’d): master theorem, integer and matrix multiplication||Kleinberg & Tardos, 5.5|
|9||Dynamic programming: scheduling, least squares, knapsack||Kleinberg & Tardos, 6.1–6.5|
|10||Network flow: bipartite matching, disjoint paths, other applications||Kleinberg & Tardos, 7.1–7.2, 7.5–7.10|
|11||Intractability: polynomial-time reductions||Kleinberg & Tardos, 8.1–8.2, 8.5–8.8|
|12||Intractability (cont’d): P vs. NP, NP-completeness||Kleinberg & Tardos, 8.3–8.4|
Credit. Lecture slide sources courtesy of Kevin Wayne.
- Assignment 1, due Feb. 10
- Assignment 2, due Mar. 10
- Assignment 3, due Mar. 31
- Assignment 4, due Apr. 14
Assignments are due at the beginning of class on the due date. Late assignments will be accepted up to the beginning of the first class following the due date. Late assignments are subject to a penalty of 10% deducted from the earned mark.
Date: Mar. 2, 2022
Place: Mulroney Hall, room 3022
Content: All material from Weeks 1 to 5
Date: Apr. 22, 2022
Place: Mulroney Hall, room 3034
Content: Primarily material from Weeks 6 to 12, some earlier material
Taylor J. Smith
Email: tjsmith [at] stfx [dot] ca
Office: Annex, Room 9A
Student hours: Tuesday, 9:15am–11:15am