CSCC73 -- Algorithm design and analysis

Fall 2023


Index of this document


Contact information and meeting times

Instructor:  Vassos Hadzilacos
Office hours:  Mon and Wed 1:30-2:30, or by appointment
Office:  IC 486 (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:  Lingfei Cai, Aaron D'mello, Malhar Pandya, and Zhenyuan Xiang

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
Mon
1:30-2:30 IC486 Vassos
5-6 IC402 - Table 1
Malhar
Tue
1-2 IC402 - Table 1 Aaron
4-5 IC402 - Table 1 Zhenyuan
Wed
1:30-2:30 IC486
Vassos
5-6 IC402 - Table 1 Malhar

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

Course forum page:   https://piazza.com/utoronto.ca/fall2023/cscc73/home
Lecture times and locations:  Mon 11-12 (IC 220) and Wed 9-11am (SW 143). Tutorial time and locations:  Fri 10-11 (TUT 01, HW 215), Fri 1-2 (TUT 02, AA 112 )

Back to the index


Course content

Course goals:   To introduce the main algorithmic paradigms (greedy, divide-and-conquer, dynamic programming, linear programming) through concrete examples. Emphasis on abstract 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:  Kleinberg and Tardos. Algorithm Design. Addison Wesley 2006.
Dasgupta, Papadimitriou, and Vazirani. Algorithms. McGraw-Hill 2006.
Both of these textbooks are excellent resources with complementary strengths.  You do not need to own both.

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 3)
 
Mon:  Labour Day
Greedy algorithms

Wed:  Course goals and logistics.  Interval scheduling


KT* 4.1, notes
No tutorial this week Wed: A1 posted
2 (Sep 10) Greedy algorithms, cont'd

Mon:  Minimum lateness scheduling
Wed:  Dijkstra's single-source shortest paths algorithm; fractional knapsack


KT 4.2, notes
KT 4.4, DPV
4.3-4.4, notes (Dijkstra); notes (fractional knapsack)
Practice with greedy algorithms --- Slides Wed: A1 due, A2 posted
3 (Sep 17)
Greedy algorithms, cont'd; Divide & conquer (D&C) algorithms

Mon: Huffman codes
Wed:  D&C recurrences; Karatsuba's integer multiplication; Strassen's matrix multiplication



KT 4.8, DPV 5.2, notes (Huffman), slides (Huffman)
KT 5.1-5.2, DPV 2.2, notes ("Master Theorem"), slides (Karatsuba); KT 5.5, DPV 2.1; DPV 2.5
Practice with greedy algorithms --- Slides Wed: A2 due, A3 posted

4 (Sep 24)
D&C algorithms, cont'd

Mon: Closest pair of points
Wed: Order statistics

Optional material:  Fast Fourier Transform


KT 5.4, pseudocode
KT 13.5, DPV 2.4, notes

Complex numbers review,
video (on Quercus), DPV 2.6, KT 5.6
Practice with D&C algorithms --- Slides Wed: A3 due, A4 posted
5 (Oct 1)
Dynamic programming (DP)

Mon: Longest increasing subsequence
Wed: Weighted interval scheduling; optimal sequence alignment


DPV 6.2, notes
KT 6.1; KT 6.6, DPV 6.3, slides
Practice with DP algorithms --- Slides Wed: A4 due, A5 posted
(Oct 8) Thanksgiving and Reading Week (no classes, tutorials, or office hours)
6 (Oct 15)
DP algorithms, cont'd

Mon: Optimal binary search trees
Wed: Knapsack & susbset sum; optimal fingering of music scores; DP and recursion, memoisation


notes
KT 6.4, DPV 6.4
No tutorial this week Sat: Midterm test

7 (Oct 22)
DP algorithms, cont'd

Mon: Bellman-Ford single-source shortest paths
Wed: Discovering negative-weight cycles; all-pairs shortest paths: Floyd-Warshall and  Johnson's algorithms


KT 6.8; notes (negative weight egdes)
KT 6.8; DPV 6.6; notes (Johnson's algorithm)
Practice with DP algorithms --- Slides Wed: A5 due, A6 posted
8 (Oct 29)
Maximum flow & applications

Mon: Max flow problem,  Ford-Fulkerson algorithm
Wed: Analysis of Ford-Fulkerson algorithm, max-flow min-cut theorem


KT 7.1-7.2, DPV 7.2, slides
KT 7.2-7.3, DPV 7.2, slides notes (augmenting path choice), notes (flow theorem)
No tutorial this week
9 (Nov 5)
Maximum flow & applications, cont'd

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

Optional material:  Menger's theorem


KT 7.5, DPV 7.3, slides
KT 7.6, notes


notes (Menger's theorem)
Practice with max flow and applications --- Slides Wed: A6 due, A7 posted
10 (Nov 12)
Linear Programming (LP)

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


DPV 7.1, slides
DPV 7.6, notes (LPs for shortest paths)
No tutorial this week
11 (Nov 19)
Approximation algorithms

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


KT 11.6, DPV 9.2.1
KT 11.3, DPV 5.4; KT 11.1, slides
Practice with max flow applications and reductions to LP --- Slides
Wed: A7 due, A8 posted

12 (Nov 26)
Approximation algorithms, cont'd

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


KT 11.2, DPV 9.2.2, slides
KT 11.8, DPV 9.2.4; KT 12.4, slides
No tutorial this week

12+ (Dec 3)
Mon:  No class

No tutorial this week Mon: A8 due
(attention, unusual due day)

* 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 (AA142, 416-287-7560, ability.utsc@utoronto.ca) as soon as possible.  Enquiries to AccessAbility Services are confidential.  Its staff will help assess needs and, if appropriate, will provide referrals and arrange accommodations.

Evaluation:   There will be roughly eight homework assignments (not necessarily of equal weight) worth in total 40% of the course mark, a midterm test worth 20% of the course mark, and a final exam worth 40% 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 only one copy of your solution, with both of your names.  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), your textbook, and your class notes. You may not consult any other source.

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.

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. 

The URL of the CSCC73 Piazza page is: https://piazza.com/utoronto.ca/fall2023/cscc73/home.

Guidelines for posting on Piazza:


Document maintained by Vassos Hadzilacos