Python Data Structures & Algorithm Notes
Mathematics https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/lecture-slides/
Software Engineering https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011/resource-index/
Programming for the Puzzled https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-s095-programming-for-the-puzzled-january-iap-2018/puzzle-1-you-will-all-conform/
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-notes/
Unit 1: Introduction
Unit 2: Sorting & Trees
Unit 3: Hashing
Unit 4: Numerics
Unit 5: Graphs
Unit 6: Shortest Paths
Unit 7: Dynamic Programming
Unit 8: Advanced Topics
- Computational complexity
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/
Youtube link https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
Python Basics https://www.youtube.com/playlist?list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA
https://www.youtube.com/channel/UCmJz2DV1a3yfgrR7GqRtUUA
https://www.youtube.com/watch?v=_ri3Qm5A4Dk&list=PLs8TmeZHJEeF2UMA8KCI6g0BMDrVUgB0r&ab_channel=SeshVenugopal
https://www.youtube.com/c/EasyEngineeringClasses/videos
https://www.youtube.com/playlist?list=PLE621E25B3BF8B9D1
https://www.youtube.com/playlist?list=PLpPXw4zFa0uKKhaSz87IowJnOTzh9tiBk
500 puzzles https://blog.usejournal.com/500-data-structures-and-algorithms-practice-problems-35afe8a1e222
Github repo for Python https://github.com/TheAlgorithms/Python
Lecture 1: Algorithmic Thinking, Peak Finding
Lecture 2: Models of Computation, Document Distance
Lecture 3: Insertion Sort, Merge Sort
Lecture 4: Heaps and Heap Sort
Lecture 5: Binary Search Trees, BST Sort
Lecture 6: AVL Trees, AVL Sort
Lecture 7: Counting Sort, Radix Sort, Lower Bounds for Sorting
Lecture 8: Hashing with Chaining
Lecture 9: Table Doubling, Karp-Rabin
Lecture 10: Open Addressing, Cryptographic Hashing
Lecture 11: Integer Arithmetic, Karatsuba Multiplication
Lecture 12: Square Roots, Newton's Method
Lecture 13: Breadth-First Search (BFS)
Lecture 14: Depth-First Search (DFS), Topological Sort
Lecture 15: Single-Source Shortest Paths Problem
Lecture 16: Dijkstra
Lecture 17: Bellman-Ford
Lecture 18: Speeding up Dijkstra
Lecture 19: Dynamic Programming I: Fibonacci, Shortest Paths
Lecture 20: Dynamic Programming II: Text Justification, Blackjack
Lecture 21: Dynamic Programming III: Parenthesization, Edit Distance, Knapsack
Lecture 22: Dynamic Programming IV: Guitar Fingering, Tetris, Super Mario Bros.
Lecture 23: Computational Complexity
Lecture 24: Topics in Algorithms Research
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-videos/
Lecture 1: Overview, Interval Scheduling
Lecture 2: Divide & Conquer: Convex Hull, Median Finding
Lecture 3: Divide & Conquer: FFT
Lecture 4: Divide & Conquer: van Emde Boas Trees
Lecture 5: Amortization: Amortized Analysis
Lecture 6: Randomization: Matrix Multiply, Quicksort
Lecture 7: Randomization: Skip Lists
Lecture 8: Randomization: Universal & Perfect Hashing
Lecture 9: 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 & Matrices
Lecture 24: Cache-Oblivious Algorithms: Searching & Sorting
Lecture Notes https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2008/lecture-notes/
Study Materials https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2008/study-materials/