CS 161

Welcome to CS 161!

Design and Analysis of Algorithms, Stanford University, Fall 2017.

Course Overview

Instructor: Mary Wootters

When and where? M/W 1:30 - 2:50pm, Building 370, Room 370.

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

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

What do I need to do? Seven homework assignments, a midterm, and a final. See the Course Policies for more details.


Announcements will be posted on Piazza.

Quick Links

  • Gradescope: Click here. Access code 92RP5N.
  • Piazza: Click here.
  • Feedback: Please give us feedback via this anonymous feedback form. We welcome any comments, suggestions or complaints about the class, and will use your feedback to improve!