Design and Analysis of Algorithms

Video Lectures

Displaying all 34 video lectures.
Lecture 1
Course Overview, Interval Scheduling
Play Video
Course Overview, Interval Scheduling
In this lecture, Professor Devadas gives an overview of the course and introduces an algorithm for optimal interval scheduling.
Lecture 2
Divide & Conquer: Convex Hull, Median Finding
Play Video
Divide & Conquer: Convex Hull, Median Finding
In this lecture, Professor Devadas introduces divide-and-conquer algorithms and problems that can be solved using divide-and-conquer approaches.
Lecture 3
Recitation 1: Matrix Multiplication and the Master Theorem
Play Video
Recitation 1: Matrix Multiplication and the Master Theorem
Instructor: Ling Ren

In this recitation, problems related to matrix multiplication and weighted interval scheduling are discussed.
Lecture 4
Divide & Conquer: FFT
Play Video
Divide & Conquer: FFT
Instructor: Erik Demaine

In this lecture, Professor Demaine continues with divide and conquer algorithms, introducing the fast fourier transform.
Lecture 5
Recitation 2: 2-3 Trees and B-Trees
Play Video
Recitation 2: 2-3 Trees and B-Trees
Instructor: Amartya Shankha Biswas

In this recitation, problems related to 2-3 Trees and B-Trees are discussed.
Lecture 6
Divide & Conquer: van Emde Boas Trees
Play Video
Divide & Conquer: van Emde Boas Trees
Instructor: Erik Demaine

In this lecture, Professor Demaine introduces the van Emde Boas Tree data structure and its uses.
Lecture 7
Amortization: Amortized Analysis
Play Video
Amortization: Amortized Analysis
Instructor: Erik Demaine

In this lecture, Professor Demaine introduces analysis techniques for data structures, and the implementation of algorithms based on this analysis.
Lecture 8
Randomization: Matrix Multiply, Quicksort
Play Video
Randomization: Matrix Multiply, Quicksort
In this lecture, Professor Devadas introduces randomized algorithms, looking at solving sorting problems with this new tool.
Lecture 9
Recitation 4: Randomized Select and Randomized Quicksort
Play Video
Recitation 4: Randomized Select and Randomized Quicksort
Instructor: Ling Ren

In this recitation, problems related to Randomized Select and Randomized Quicksort are discussed.
Lecture 10
Randomization: Skip Lists
Play Video
Randomization: Skip Lists
In this lecture, Professor Devadas continues with randomization, introducing skip lists as a randomized data structure.
Lecture 11
Randomization: Universal & Perfect Hashing
Play Video
Randomization: Universal & Perfect Hashing
Instructor: Erik Demaine

In this lecture, Professor Demaine reviews hashing in the context of randomized algorithms.
Lecture 12
Recitation 5: Dynamic Programming
Play Video
Recitation 5: Dynamic Programming
Instructor: Ling Ren

In this recitation, problems related to dynamic programming are discussed.
Lecture 13
Augmentation: Range Trees
Play Video
Augmentation: Range Trees
Instructor: Erik Demaine

In this lecture, Professor Demaine covers the augmentation of data structures, updating common structures to store additional information.
Lecture 14
Dynamic Programming: Advanced DP
Play Video
Dynamic Programming: Advanced DP
In this lecture, Professor Devadas introduces the concept of dynamic programming.
Lecture 15
Dynamic Programming: All-Pairs Shortest Paths
Play Video
Dynamic Programming: All-Pairs Shortest Paths
Instructor: Erik Demaine

In this lecture, Professor Demaine covers different algorithmic solutions for the All-Pairs Shortest Paths problem.
Lecture 16
Greedy Algorithms: Minimum Spanning Tree
Play Video
Greedy Algorithms: Minimum Spanning Tree
Instructor: Erik Demaine

In this lecture, Professor Demaine introduces greedy algorithms, which make locally-best choices without regards to the future.
Lecture 17
Recitation 6: Greedy Algorithms
Play Video
Recitation 6: Greedy Algorithms
Instructor: Amartya Shankha Biswas

In this recitation, problems related to greedy algorithms are discussed.
Lecture 18
Incremental Improvement: Max Flow, Min Cut
Play Video
Incremental Improvement: Max Flow, Min Cut
In this lecture, Professor Devadas introduces network flow, and the Max Flow, Min Cut algorithm.
Lecture 19
Incremental Improvement: Matching
Play Video
Incremental Improvement: Matching
In this lecture, Professor Devadas continues with the topic of network flow.
Lecture 20
Recitation 7: Network Flow and Matching
Play Video
Recitation 7: Network Flow and Matching
Instructor: Ling Ren

In this recitation, problems related to Network Flow and Matching are discussed.
Lecture 21
Linear Programming: LP, reductions, Simplex
Play Video
Linear Programming: LP, reductions, Simplex
In this lecture, Professor Devadas introduces linear programming.
Lecture 22
Complexity: P, NP, NP-completeness, Reductions
Play Video
Complexity: P, NP, NP-completeness, Reductions
Instructor: Erik Demaine

In this lecture, Professor Demaine introduces NP-completeness.
Lecture 23
Recitation 8: NP-Complete Problems
Play Video
Recitation 8: NP-Complete Problems
Instructor: Amartya Shankha Biswas

In this recitation, problems related to NP-Completeness are discussed.
Lecture 24
Complexity: Approximation Algorithms
Play Video
Complexity: Approximation Algorithms
In this lecture, Professor Devadas introduces approximation algorithms in the context of NP-hard problems.
Lecture 25
Complexity: Fixed-Parameter Algorithms
Play Video
Complexity: Fixed-Parameter Algorithms
Instructor: Erik Demaine

In this lecture, Professor Demaine tackles NP-hard problems using fixed-parameter algorithms.
Lecture 26
Recitation 9: Approximation Algorithms: Traveling Salesman Problem
Play Video
Recitation 9: Approximation Algorithms: Traveling Salesman Problem
Instructor: Amartya Shankha Biswas

In this recitation, problems related to approximation algorithms are discussed, namely the traveling salesman problem.
Lecture 27
Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees
Play Video
Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees
Instructor: Nancy Ann Lynch

In this lecture, Professor Lynch introduces synchronous distributed algorithms.
Lecture 28
Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees
Play Video
Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees
Instructor: Nancy Ann Lynch

In this lecture, Professor Lynch introduces asynchronous distributed algorithms.
Lecture 29
Recitation 10: Distributed Algorithms
Play Video
Recitation 10: Distributed Algorithms
Instructor: Ling Ren

In this recitation, problems related to distributed algorithms are discussed.
Lecture 30
Cryptography: Hash Functions
Play Video
Cryptography: Hash Functions
In this lecture, Professor Devadas covers the basics of cryptography, including desirable properties of cryptographic functions, and their applications to security.
Lecture 31
Cryptography: Encryption
Play Video
Cryptography: Encryption
In this lecture, Professor Devadas continues with cryptography, introducing encryption methods.
Lecture 32
Recitation 11: Cryptography: More Primitives
Play Video
Recitation 11: Cryptography: More Primitives
Instructor: Ling Ren

In this recitation, problems related to cryptography are discussed.
Lecture 33
Cache-Oblivious Algorithms: Medians & Matrices
Play Video
Cache-Oblivious Algorithms: Medians & Matrices
Instructor: Erik Demaine

In this lecture, Professor Demaine introduces cache-oblivious algorithms.
Lecture 34
Cache-Oblivious Algorithms: Searching & Sorting
Play Video
Cache-Oblivious Algorithms: Searching & Sorting
Instructor: Erik Demaine

In this lecture, Professor Demaine continues with cache-oblivious algorithms, including their applications in searching and sorting.