Algorithms: Design and Analysis, Part 1
- Free to audit
- Paid certificate
- Intermediate
- 6 weeks
Algorithms: Design and Analysis, Part 1 is Tim Roughgarden's StanfordOnline course on edX, the first half of a two-part introduction to algorithms. It covers big-oh notation, sorting and searching, divide and conquer with the master method and applications to integer and matrix multiplication and the closest-pair problem, randomised algorithms including QuickSort and the contraction algorithm for minimum cuts, data structures (heaps, balanced search trees, hash tables, bloom filters) and graph primitives built on breadth-first and depth-first search, connectivity and shortest paths. The page is clear that this is not an introduction to programming: it assumes basic skills in a language such as Python, Java or C and uses mathematical analysis to explain why algorithms work.
Readings from the instructor's Algorithms Illuminated books are suggested but not required. edX lists it as self-paced, intermediate level and six weeks at two to four hours a week. Auditing is free with time-limited access and no graded work or certificate; the verified track with an edX certificate costs $189.
What you’ll learn
- Analyse running time with big-oh notation
- Implement and compare sorting and searching algorithms
- Design divide-and-conquer algorithms and solve recurrences with the master method
- Use randomised algorithms such as QuickSort and contraction for minimum cuts
- Choose data structures including heaps, balanced search trees, hash tables and bloom filters
- Apply breadth-first and depth-first search to connectivity and shortest paths
Who it’s for
Programmers who can already write code and want the theory behind sorting, divide and conquer, hashing and graph search.
Instructor
- Tim Roughgarden Professor of Computer Science
Course details
- Skills covered
- Computer Science
- Algorithms
- Matrix Multiplication
- Master Theorem
- Divide And Conquer
- Mathematics
- Bloom Filter
- Data Structures
- Prerequisites
- This specialization is an introduction to algorithms for learners with at least a little programming experience. This course is not an introduction to programming, and it assumes that you have basic programming skills in a language such as Python, Java, or C. There are several outstanding free…
- Subtitles
- 1 language
On edx.org
Rated 4.7 out of 5 by 13 learners; 86,175 enrolled, as shown on the course page on 20 Oct 2026. These are edx.org’s own figures, not ours.
Source: Stanford Online (opens in a new tab) · Verified · Report a change
More free Stanford courses
Every Stanford course we have verified, with cost and certificate terms compared.
Computer ScienceAll free Computer Science courses
Free and free-to-audit Computer Science courses from every provider, ranked.