# InfoCoBuild

## 6.046J Design and Analysis of Algorithms

6.046J Design and Analysis of Algorithms (Spring 2015, MIT OCW). Instructors: Prof. Erik Demaine, Prof. Srinivas Devadas, and Prof. Nancy Lynch. This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography. (from ocw.mit.edu)

 Lecture 01 - Overview, Interval Scheduling

Instructor: Srinivas Devadas. In this lecture, Professor Devadas gives an overview of the course and introduces an algorithm for optimal interval scheduling.

Go to the Course Home or watch other lectures:

 Lecture 01 - Overview, Interval Scheduling Lecture 02 - Divide and Conquer: Convex Hull, Median Finding Lecture 03 - Divide and Conquer: FFT Lecture 04 - Divide and Conquer: van Emde Boas Trees Lecture 05 - Amortization: Amortized Analysis Lecture 06 - Randomization: Matrix Multiply, Quicksort Lecture 07 - Randomization: Skip Lists Lecture 08 - Randomization: Universal and Perfect Hashing Lecture 09 - Augmentation: Range Trees Lecture 10 - Dynamic Programming: Advanced DP Lecture 11 - Dynamic Programming: All-Pairs Shortest Paths Lecture 12 - Greedy Algorithms: Minimum Spanning Tree Lecture 13 - Incremental Improvement: Max Flow, Min Cut Lecture 14 - Incremental Improvement: Matching Lecture 15 - Linear Programming: LP, Reductions, Simplex Lecture 16 - Complexity: P, NP, NP-completeness, Reductions Lecture 17 - Complexity: Approximation Algorithms Lecture 18 - Complexity: Fixed-Parameter Algorithms Lecture 19 - Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees Lecture 20 - Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees Lecture 21 - Cryptography: Hash Functions Lecture 22 - Cryptography: Encryption Lecture 23 - Cache-Oblivious Algorithms: Medians and Matrices Lecture 24 - Cache-Oblivious Algorithms: Searching and Sorting