MIT · on MIT OpenCourseWare

Introduction to Algorithms (6.006)

4.9(8,000) on MIT OpenCourseWare·2M enrolled
Intermediate 45 hours EnglishFREE
SkillsAlgorithmsData structuresComplexity analysisSortingGraphsDynamic programming

Is this course right for you?

Our take
Yes, if you already program and want to genuinely understand algorithms rather than grind interview problems. It is free from MIT, with real mathematical depth.

Good for: programmers who want a rigorous, university-level grounding in algorithms.

Skip if: you are new to programming, you want interview drilling, or you need a certificate.

The value is the rigour: it teaches why algorithms are correct and how to analyse their complexity, not just patterns to memorise. That is the CS-fundamentals gap most self-taught developers feel, and closing it makes you a sharper engineer. It moves at MIT's pace and expects you to work the problem sets.

It is not interview prep and not for beginners: if you want LeetCode-style drilling a dedicated interview course fits better, and if you are new to coding, start with an intro course first. There is no certificate and no graded feedback from the free materials. The recordings are a few years old, but the algorithms remain relevant.

Comparison · LBS

Compare alternatives for Introduction to Algorithms (6.006)

Same topic, different options. We surface the trade-offs others hide so you can pick the course that actually fits your time, budget, and goals.
MIT OpenCourseWare4.9(8,000)
Introduction to Algorithms (6.006)
Price
Free
Completely free, openly licensed — no certificate
Duration
45 hrs
Level
Intermediate
Certificate
freeCodeCamp4.8(15,000)
JavaScript Algorithms and Data Structures Certification
Price
Free
Completely free, forever
Duration
300 hrs
Level
Intermediate
Certificate
Course Certificate
Stanford Online4.8(4,500)
CS107: Programming Paradigms
Price
Free
Free lecture materials available online
Duration
45 hrs
Level
Intermediate
Certificate
freeCodeCamp4.7(3,900)
Relational Database Certification
Price
Free
Completely free, forever
Duration
300 hrs
Level
Intermediate
Certificate
Course Certificate
Prices & availability can change — confirm on the provider's site. We're not affiliated with any single provider.

About this course

6.006 is the undergraduate algorithms course at MIT — the same material, at the same pace, with the same problem sets and exams that MIT students take for credit. Taught by Erik Demaine and Jason Ku, it covers the algorithms and data structures foundational to computer science and software engineering interviews: sequence data structures, sorting algorithms, binary search trees, graphs, BFS and DFS, Dijkstra's and Bellman-Ford, dynamic programming, and complexity analysis.

Instructor

ED
Erik Demaine / Jason Ku
MIT OpenCourseWare instructor
2M+ learners12 courses4.9 instructor rating

Taught by Erik Demaine and Jason Ku, MIT faculty in theoretical computer science. Demaine is known for recreational mathematics and origami-inspired algorithms research.

Frequently asked questions

OpenCourseWare has both a Fall 2011 and a Spring 2020 version. The 2020 one is the current, reorganised course and the better default; the 2011 lectures still hold up but the 2020 set reflects how MIT teaches the material now.

Two things, and both matter: comfortable programming in Python (MIT's 6.0001 level) and a grounding in discrete maths (their 6.042J). MIT explicitly warns against starting without both. This isn't a first programming course — it's an algorithms course that assumes you can already code and reason mathematically.

MIT 6.006 is more theoretical and maths-forward — correctness, complexity, the why — while Princeton's course (Sedgewick) is more implementation-focused and codes the data structures in Java. Choose MIT for rigour and understanding, Princeton if you'd rather build the structures yourself.
Free
to audit
Enroll now