• Length:
    6 Weeks
  • Effort:
    2–4 hours per week
  • Price:

    Add a Verified Certificate for $149 USD

  • Institution
  • Subject:
  • Level:
  • Language:
  • Video Transcript:
  • Course Type:
    Self-paced on your time


This course is aimed at learners with at least a little bit of programming experience who want to learn the essentials of algorithms. In a University computer science curriculum, this course is typically taken in the third year.

About this course

Skip About this course

Welcome to the self paced course, Algorithms: Design and Analysis, Part 2! Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth. This course is an introduction to algorithms for learners with at least a little programming experience. The course is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After completing this course, you will have a greater mastery of algorithms than almost anyone without a graduate degree in the subject.

Specific topics in Part 2 include: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes), dynamic programming (knapsack, sequence alignment, optimal search trees, shortest paths), NP-completeness and what it means for the algorithm designer, analysis of heuristics, local search.

Learners will practice and master the fundamentals of algorithms through several types of assessments. There are 6 multiple-choice problem sets to test your understanding of the most important concepts. There are also 6 programming assignments, where you implement one of the algorithms covered in lecture in a programming language of your choosing. The course concludes with a multiple-choice final.

There are no assignment due dates and you can work through the course materials and assignments at your own pace.

What you'll learn

Skip What you'll learn
  • greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes)
  • dynamic programming (knapsack, sequence alignment
  • optimal search trees, shortest paths)
  • NP-completeness and what it means for the algorithm designer
  • analysis of heuristics
  • local search

Meet your instructors

Tim Roughgarden
Professor of Computer Science
Stanford University

Pursue a Verified Certificate to highlight the knowledge and skills you gain
$149 USD

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    edX, a non-profit, relies on verified certificates to help fund free education for everyone globally

Frequently asked questions

Do I need to buy a textbook?

No. The instructor has released two books, which can provide one with a deeper understanding of the course material. The readings are suggested, but not required. The readings come from:

  • Algorithms Illuminated (Part 1): The Basics

A new book by the instructor, which is based on the first half of this course, "Algorithms: Design and Analysis, Part 1", can be found and purchased on Amazon at https://www.amazon.com/dp/0999282905.

  • Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures (Volume 2)

The next book in the series, which is based on the second half of this course, "Algorithms: Design and Analysis, Part 2", can be found and purchased on Amazon at https://www.amazon.com/dp/0999282921.