Link Search Menu Expand Document

Design and Analysis of Algorithms

Stanford University, Winter 2026

Instructors: Moses Charikar and Ellen Vitercik

Time: Mon & Wed 1:30 pm - 2:50 pm

Location: STLC 111

Course Description: This course will cover the basic approaches and mindsets for analyzing and designing algorithms and data structures. Topics include the following: Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, and randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow and string searching.

Prerequisites: CS 106B or CS 106X; CS 103 or CS 103B; CS 109 or STATS 116.

Course Grade: The course grade will be based on the following components.

  • 8 Homework assignments: 40% (that is 5.714% per homework, see below)
    • The lowest homework score will be dropped, so each of your 7 graded homework assignments comprises of 5.714% of the course grade.
  • Midterm exam: 25%
  • Final exam: 35%

Staff Contact

  • The best way to reach the staff is by making a private post on Ed.
  • You may also reach us by email at cs161-staff-win2526@cs.stanford.edu (the Student Liaison monitors this mailing list) with any questions or concerns that you do not wish to post on Ed.