Courses / Computer Science / 5 units / CS 161: Design and Analysis of Algorithms

Design and Analysis of Algorithms

CS 161
5 units
June 26 - August 19, 2017
Section 1   T, TH  9:30AM - 11:20AM

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, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching.


CS 103; CS 109 or STATS 116 (or equivalents)


  • Matriculated Stanford graduate students may enroll for 3, 4 or 5 units; everyone else must take the course for 5 units. All students do 5 units worth of work, including Stanford graduate students enrolled for 3 or 4 units.
  • The 5 unit version of this┬ácourse is offered as part of the Summer Intensive in Computer Science, and qualifies toward the Certificate of Completion in Computer Science. 3 or 4 unit enrollments will not qualify toward the Certificate. Enrolled units can be adjusted in Axess through the Final Study List deadline.


CS 161 Syllabus - 2017