CS 3000 – Course Schedule (Fall 2026)

Topics and Agenda

This schedule is a tentative outline and will be updated regularly as the course progresses. Check back frequently. Lecture notes and/or slides will usually be posted after each lecture. Lectures meet Mon/Wed/Thu, 1:35–2:40pm, in Shillman Hall 105. Classes run from Wed, Sep 9 through Thu, Dec 10.

Part 1: Divide and Conquer and Analysis

Part 2: Dynamic Programming

Part 3: Greedy Algorithms

Part 4: Graph Algorithms

Part 5: Network Flow

Part 6: Intractability and Review

Final Exam (30%): date/time TBD – scheduled by the Registrar during the fall final exam period (Dec 14–20, 2026). The final is in person and cumulative.

Recitations

Recitations are held on Zoom, Wednesdays 6:00–7:00pm (tentative – the confirmed link and time will be on Canvas), led by our student instructors. Each session works through a problem to build problem-solving skills and gives you real-time feedback. You are expected to attend.

Sessions run 60 minutes, except the two midterm-review sessions (Oct 14 and Nov 18), which run 90 minutes. Every recitation is recorded and posted, so you can catch up if you cannot make it live. If you would rather ask your question in person, come to TA or instructor office hours – those are held in person.

Recitations are not graded and carry no quiz. Quizzes are given in lecture instead (see the markers above), so recitation is a place to practice and ask questions with nothing at stake. Each session does one of three things:

Acknowledgements

Special thanks to Prof. Rajmohan Rajaraman and Prof. Jonathan Ullman, whose lectures, slides, and problem sets from earlier offerings of CS 3000 this course draws on heavily. The course is much better for their work.

Course material is derived in part from standard algorithms texts and courses, including Kleinberg & Tardos, Algorithm Design, and CLRS, Introduction to Algorithms.