Instructor Information


Name: Deepanshu Kush
Webpage: This Page
Email: csc373-2022-05@cs.toronto.edu (Please stick to using this email for all course-related discussion.)

Important Links


Course Page: This page!
Discussion Board: Piazza
Online Homework Submission: MarkUs

Course Delivery


All lectures will be conducted in-person. The lectures will be recorded (your participation may also be recorded), and the recording will be made available via the course web page.

Office hours for at least one hour per week will be conducted online. The Zoom link for it will be emailed to all registered students and will be available on Piazza.

All times are in Eastern time zone.

Meeting Time Delivery
Lectures Wed 6-9pm BA 1170
Tutorials Thu 6-7pm (in-person)
Thu 7-8pm (online)
BA 2165
Zoom Link
Office Hours Wed 1-2pm (in-person), Wed 2-3pm (online + in-person) BA 3201 and Zoom Link

Tutorial Format


A problem set will be released on the course web page prior to each tutorial. Students are encouraged to attempt the problems before coming to the tutorials. During the tutorials, the TAs will explain the problems and then go over key steps of the solutions.


Term Test Format


Term tests will be conducted in person (dates below).


Grading Scheme


Best 3/4 Assignments: 30% (10% each)
2 Term Tests: 40% (20% each)
Final Exam / End-of-Term Test: 30%

Due Dates


Assignment 1: June 2
Assignment 2: June 29
Assignment 3: July 21
Assignment 4: August 13
Midterm 1: June 23
Midterm 2: July 27
Final Exam: August 17

Course Learning Goals


By the end of this course, you will be familiar with standard algorithm design techniques (divide and conquer, greedy algorithms, dynamic programming, network flow, linear programming), and understand the importance of computational complexity. More specifically, you will be able to:
  • recognize algorithms and write new ones that employ each technique,
  • prove correctness of such algorithms and analyze their efficiency,
  • demonstrate membership in P and NP,
  • show NP-completeness.

Textbook


The primary reference for this course will be the slides uploaded by the instructors. In addition, you should refer to the following textbooks. Readings from these books will be posted along with each lecture.

  • Required: [CLRS] Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms.
  • Supplementary: [DPV] Dasgupta, Papadimitriou, Vazirani: Algorithms.
  • Supplementary: [KT] Kleinberg; Tardos: Algorithm Design.

For information about assignments, exams, grading, and policies, refer to the course information sheet.