YoVDO

Introduction to Algorithms

Offered By: Massachusetts Institute of Technology via MIT OpenCourseWare

Tags

Algorithms and Data Structures Courses Algorithms Courses Data Structures Courses Sorting Algorithms Courses Hash Tables Courses Graph Algorithms Courses Computational Complexity Courses Dynamic programming Courses Algorithmic Thinking Courses

Course Description

Overview

This course provides an introduction to mathematical modeling of computational problems. 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.

Syllabus

1. Algorithmic Thinking, Peak Finding.
2. Models of Computation, Document Distance.
3. Insertion Sort, Merge Sort.
4. Heaps and Heap Sort.
5. Binary Search Trees, BST Sort.
6. AVL Trees, AVL Sort.
7. Counting Sort, Radix Sort, Lower Bounds for Sorting.
8. Hashing with Chaining.
9. Table Doubling, Karp-Rabin.
10. Open Addressing, Cryptographic Hashing.
11. Integer Arithmetic, Karatsuba Multiplication.
12. Square Roots, Newton's Method.
13. Breadth-First Search (BFS).
14. Depth-First Search (DFS), Topological Sort.
15. Single-Source Shortest Paths Problem.
16. Dijkstra.
17. Bellman-Ford.
18. Speeding up Dijkstra.
19. Dynamic Programming I: Fibonacci, Shortest Paths.
20. Dynamic Programming II: Text Justification, Blackjack.
21. DP III: Parenthesization, Edit Distance, Knapsack.
22. DP IV: Guitar Fingering, Tetris, Super Mario Bros..
23. Computational Complexity.
24. Topics in Algorithms Research.
R1. Asymptotic Complexity, Peak Finding.
R2. Python Cost Model, Document Distance.
R3. Document Distance, Insertion and Merge Sort.
R5. Recursion Trees, Binary Search Trees.
R6. AVL Trees.
R7. Comparison Sort, Counting and Radix Sort.
R8. Simulation Algorithms.
R9. Rolling Hashes, Amortized Analysis.
Recitation 9b: DNA Sequence Matching.
R10. Quiz 1 Review.
R11. Principles of Algorithm Design.
R12. Karatsuba Multiplication, Newton's Method.
R13. Breadth-First Search (BFS).
R14. Depth-First Search (DFS).
R15. Shortest Paths.
R16. Rubik's Cube, StarCraft Zero.
R18. Quiz 2 Review.
R19. Dynamic Programming: Crazy Eights, Shortest Path.
R20. Dynamic Programming: Blackjack.
R22. Dynamic Programming: Dance Dance Revolution.
R21. Dynamic Programming: Knapsack Problem.
R23. Computational Complexity.
R24. Final Exam Review.


Taught by

Prof. Erik Demaine and Prof. Srini Devadas

Tags

Related Courses

Information Theory
The Chinese University of Hong Kong via Coursera
Intro to Computer Science
University of Virginia via Udacity
Analytic Combinatorics, Part I
Princeton University via Coursera
Algorithms, Part I
Princeton University via Coursera
Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Stanford University via Coursera