COMP 6901 -- Applied Algorithms, Fall 2025

The course information below is tentative! .

Lectures: 12:00pm-12:50pm on Monday, Wednesday, Friday in ED 2018A.

Instructor: Antonina Kolokolova
Instructor office hours: TBA.
Additionally, we will be using discussion boards on Brightspace.

We will be using Brightspace (formerly known as D2L) for submissions, grades, announcements, etc. All the course materials will also be posted here.

Textbook: There will be no official textbook for this course. We will mostly follow J. Kleinberg, E. Tardos. Algorithm Design, but you do not need to buy it.

Reference books:

We will also use other materials such as research papers.
See the lecture notes from the previous run of this course for more information.

Marking scheme: (tentative!): The course mark is determined by your performance on written tests and drills, with an optional drill-writing project, and an optional oral exam.

Description: The goal of this course is to study both classical and advanced algorithm design techniques with emphasis on real-world applications. We will cover greedy algorithms, dynamic programming, backtracking, network flows as well more advanced topics. Time permitting, we will consider randomized, parallel and distributed algorithms, and/or streaming algorithms.

Prerequisites: This course assumes proficiency in the core subjects of computer science: programming, discrete math, and basic data structures/algorithms. In particular, I will assume that you can read and write proofs, know basic probability theory and combinatorics, know basic data structures and algorithm complexity analysis, can read and write pseudocode, and can program fluently in some programming language such as Python. Check our undergraduate courses COMP 1001, COMP 1002 and COMP 2002, and make sure you are comfortable with the material covered there; this should take care of most of the skills you need to succeed in COMP 6901.

Policy on collaboration and plagiarism.
The main rule is: the work you submit must be your own. You are encouraged to work together on problems and ask questions about them on the discussion forum; however, you must work out all answers you submit on drills, exams, etc by yourself, without looking things up online or interacting with anybody except for the instructor (in particular, tests are pen-and-paper, no LLMs!) The goal is to learn to solve the problems and demonstrate that skill on the tests, and if you solve a practice problem with an LLM you just wasted a problem.

Plagiarism is a serious academic offence and will be dealt with accordingly. Posting any course content (drills, exams, practice problems) on the internet, with or without solutions, or using services such as Chegg is a serious academic misconduct which will be reported.