This course provides an introduction to mathematical modeling of computational problems.

FREE
This course includes
Hours of videos

694 years, 4 months

Units & Quizzes

25

Unlimited Lifetime access
Access on mobile app
Certificate of Completion

It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems

Course Currilcum

    • Introduction and document distance Unlimited
    • More document distance, mergesort Unlimited
    • Airplane scheduling, binary search trees Unlimited
    • Balanced binary search trees Unlimited
    • Hashing I: chaining, hash functions Unlimited
    • Hashing II: table doubling, Karp-Rabin Unlimited
    • Hashing III: open addressing Unlimited
    • Sorting I: heaps Unlimited
    • Sorting II: heaps Unlimited
    • Sorting III: lower bounds, linear-time sorting Unlimited
    • Sorting IV: stable sorting, radix sort Unlimited
    • Searching I: graph search, representations, and applications Unlimited
    • Searching II: breadth-first search and depth-first search Unlimited
    • Searching III: topological sort and NP-completeness Unlimited
    • Shortest paths I: intro Unlimited
    • Shortest paths II: Bellman-Ford Unlimited
    • Shortest paths III: Dijkstra Unlimited
    • Shortest paths IV: Dijkstra speedups Unlimited
    • Dynamic programming I: memoization, Fibonacci, Crazy Eights, guessing Unlimited
    • Dynamic programming II: longest common subsequence, parent pointers Unlimited
    • Dynamic programming III: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training Unlimited
    • Dynamic programming IV: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond Unlimited
    • Numerics I Unlimited
    • Numerics II Unlimited
    • Beyond 6.006: follow-on classes, geometric folding algorithms Unlimited