CSCC73 -- Algorithm design and analysis

Fall 2026


Index of this document


Contact information and meeting times

Instructor:  Vassos Hadzilacos
Office hours:  Mon and Wed 3:30-4:30, or by appointment
Office:  IA 4024 (Scarborough campus);  SF 2304B (St. George campus)
Telephone:  416-287-7256 (Scarborough campus);  416-978-6028 (St. George campus)
Email:  vassos@cs.toronto.edu
TAs:  TBA

Office hours:  Held at the times and locations indicated in the table below.  Vassos's office hours start on Week 1; TAs' office hours start on Week 2.

Day Time Place Person
TBA
TBA TBA TBA
TBA
TBA TBA TBA
TBA
TBA TBA TBA

Course web page:  http://www.cs.toronto.edu/~vassos/teaching/c73/

Course forum page: https://piazza.com/utoronto.ca/fall2026/cscc73h3flec01/home

Lecture times and locations:  LEC01 Mon 11-12 (SW 319) and Wed 9-11am (IA 2150)

Tutorial times and locations:  TUT01 Fri 1-2 (HW 214), TUT02 Fri 2-3 (HW 214).

Back to the index


Course content

Course goals:   To introduce the basic algorithm design techniques (greedy, divide-and-conquer, dynamic programming) and algorithms for some fundamental problems (shortest paths, maximum flow, linear programming).  Emphasis on algorithmic thinking and problem-solving, not on programming.

Prerequisites:  CSCB63, STAB52, and enrollment in a computer science subject POSt (or CGPA of 3.5 or higher).

Textbooks: 

Primary resource: Additional resources (optional):

Tentative weekly schedule (check regularly as it may change): 

Speak, then, and tell everything.  For, it comforts those in pain
To know before hand all the agony they still must bear.
–Aeschylus, Prometheus Bound

Week
Lecture topics
Study materials Tutorials
Assignments & tests
1 (Sep 6)
 

Greedy algorithms

Mon:  Labour Day (no class)
Wed:  Course overview and logistics.  Interval scheduling



Course Notes §1.1
No tutorial this week Wed:  A1 posted; advice on presenting algorithms and proofs
2 (Sep 13) Greedy algorithms, cont'd

Mon:  Minimum lateness scheduling
Wed:  Fractional knapsack; Huffman codes


Course Notes §1.2
Course Notes §1.3-1.4
Practice with greedy algorithms
3 (Sep 20)
Divide & conquer (D&C) algorithms

Mon:  The ``master theorem'', Karatsuba's integer multiplication; Strassen's matrix multiplication
Wed:  Order statistics


Course Notes §2.1-2.4

Course Notes §2.6
Practice with D&C algorithms Wed:  A1 due, A2 posted

4 (Sep 27)
D&C, cont'd; dynamic programming (DP)

Mon:  Closest pair of points
Optional material:  Fast Fourier Transform
Wed:  Longest increasing subsequence; weighted interval scheduling


Course Notes §2.5
Course Notes §2.7
Course Notes §3.1-3.2

Practice with DP algorithms Wed:  A2 due, A3 posted
5 (Oct 4)
DP, cont'd

Mon:  Edit distance
Wed:  0/1 knapsack; optimal binary search trees; DP & recursion, memoisation


Course Notes §3.3
Course Notes §3.4-3.6
Practice with DP algorithms
6 (Oct 11)
Shortest paths algorithms

Mon:  Thanksgiving (no class)
Wed:  Dijkstra's algorithm (single-source shortest paths)



Course Notes §4.1-4.2
TBA Wed: A3 due, A4 posted


7 (Oct 18)
Shortest paths algorithms, cont'd

Mon:  Bellman-Ford algorithm (single-source shortest paths)
Wed:  Floyd-Warshall and Johnson's algorithms (all-pairs shortest paths)


Course Notes §4.3

Course Notes §4.4-4.5
Practice with shortest paths algorithms
(Oct 25) Reading Week (no classes, tutorials, or office hours)
8 (Nov 1)
Maximum flow & applications

Mon: Max flow problem,  Ford-Fulkerson algorithm
Wed: Running time and correctness of Ford-Fulkerson algorithm, max-flow min-cut theorem


Course Notes §5.1-5.2

Course Notes §5.3
TBA Wed:  A4 due, A5 posted
9 (Nov 8)
Maximum flow & applications, cont'd

Mon:  Bipartite graph matching
Wed:  Bipartite graph vertex cover; Hall's theorem; disjoint paths in directed and undirected graphs


Course Notes §5.4
Course Notes §5.5-5.7

TBA
10 (Nov 15)
Linear Programming (LP)

Mon:  Motivation, examples, the geometry of LP
Wed:  LP algorithms, reductions to LP; integer LP (ILP), reductions to ILP


Course Notes §6.1-6.2
Course Notes §6.3-6.5
TBA Wed:  A5 due, A6 posted
11 (Nov 22)
Approximation algorithms

Mon:  Approximate vertex cover
Wed:  Approximate set cover; minimum makespan


Course Notes §7.1-7.2
Course Notes §7.3-7.4
TBA
12 (Nov 29)
Approximation algorithms, cont'd

Mon:  Approximate k-centre
Wed:  PTAS for 0/1 knapsack; maximum cut (local search); approximate metric traveling salesman problem


Course Notes §7.5
Course Notes §7.6-7.7
No tutorial this week
Wed:  A6 due
12+ (Dec 6)
Mon (makeup for Labour Day):  Additional or overflow material
Tue (makeup for Thanksgiving):  Additional or overflow material

No tutorial this week

* KT = Kleinberg & Tardos
† DPV = Dasgupta, Papadimitriou, & Vazirani

Back to the index


Course policies

Academic integrity:   Academic integrity is essential to the University of Toronto and so the University treats cases of cheating and plagiarism very seriously.  Academic offences relevant to this course include using someone else's ideas or words without appropriate attribution; obtaining or providing unauthorized assistance on any assignment, test, or exam; misrepresenting your identity; and falsifying or altering documentation.

Accessiblity:   If you have a disability or health condition that may require accommodation, please consult with AccessAbility Services (IA5105, 416-287-7560, ability.utsc@utoronto.ca) as soon as possible.  Enquiries to AccessAbility Services are confidential.  Their staff will help assess needs and, if appropriate, will provide referrals and arrange accommodations.

Evaluation:   There will be up to six equally-weighted homework assignments worth in total 30% of the course mark, a midterm test worth 25% of the course mark, and a final exam worth 45% of the course mark.  A mark of at least 40% on the final exam is required to pass the course.

Homework grading:  For each homework assignment we may grade only a selected (but not pre-announced) proper subset of the questions or parts thereof.  In that event, the homework assignment will be graded out of the total weight of the graded part of the assignment.

Late homework policy:  No late homeworks will be accepted.  If you miss a homework deadline because of a medical or personal exigency, you must fill out, in plain text, and email the course instructor the Special Consideration Form as soon as possible.  If the reason for missing the deadline is acceptable, the weight of the missed homework will be shifted to other components of your grade.

Homework collaboration policy:   In each homework assignment you may collaborate with at most one other student who is currently taking CSCC73.   If you collaborate with another student on an assignment, you and your partner must submit a single of your solution, as a group.  The solution will be graded in the usual way and both partners will receive the same grade.  Collaboration involving more than two students is not allowed.  For help with your homework you may consult only the instructor, TAs, your homework assignment partner (if you have one), the CSCC73 Course Notes, and your personal class notes.  You may not consult any other source, including AI-based tools (see AI policy below).

Regrading policy:   To submit a regrading request for an assignment or the midterm test you must fill out, in plain text, this form and email it to the course instructor no later than one week from the date the graded assignment or test was made available to the class.  (This period may be shorter for the last assignment, to ensure timely delivery of course grades.)  Regrading requests made after the deadline will not be accepted.  As a result of a regrading request your grade in the assignment may increase, remain unchanged, or decrease.

Regrading requests consume a large amount of the instructor's and TAs' time, both of which are in short supply.  Before making  a  regrading request, you must read and understand the provided solutions and think carefully about your own solution.  To discourage frivolous regrading requests we will apply the following rule:  A regrading request that does not result in increasing the grade of the  submitted assignment causes a "demerit'' to each of the student(s) who submitted the assignment in question.  We will not consider regrading requests for an assignment submitted by a student who has accumulated two such demerits.

Missed midterm test policy:    If you miss the midterm test due to a medical or personal exigency, get in touch with your instructor immediately, and fill out the Special Consideration Form.  There will be no make-up test, but if the reason for missing the test is acceptable, the weight of the missed midterm test will be shifted to the final examination.

AI policy:  You may use AI tools in this course in any way you wish, with the following two exceptions:
  1. Any aspect of the homework, including (but not limited to): seeking complete or partial solutions; seeking clarifications or hints (use office hours and the course forum for these); seeking confirmation of proposed solutions; and seeking improvements to proposed solutions, including grammar and phrasing.  You may use AI tools to produce drawings that you include in your answer or for advice on text-formatting tools such as latex.
    Keep in mind that there are tools that can help identify violations of this policy.  These range from technology-based mechanisms to old-fashioned ones such as being asked to explain your answers.
  2. E-mail and course-forum posts: AI-generated emails and posts sound fake and are an automatic turn-off for the recipient.  Be genuine!
Following are examples of legitimate uses of AI in this course:

Back to the index


Course documents

In this space we will make available course documents in PDF.

Back to the index


Course forum

We will use Piazza as the platform for class announcements and discussions.  Here are the guidelines for posting on Piazza:

Document maintained by Vassos Hadzilacos