Resource Collection
Algorithms & Data Structures Resources
Curated resources for learning algorithms and data structures from university courses, videos, references, and practice platforms.
Core University DSA Courses (Most Important)
-
Algorithms Part I - Princeton
Site: Coursera (audit)
Robert Sedgewick: stacks, queues, trees, sorting, searching, union-find. -
Algorithms Part II - Princeton
Site: Coursera (audit)
Graphs, strings, shortest paths, minimum spanning trees, advanced algorithms. -
MIT 6.006 Intro to Algorithms
Site: MIT OCW
Complete undergraduate algorithms course covering sorting, graphs, dynamic programming, and greedy algorithms. -
Data Structures - UCSD
Site: Coursera (audit)
Dynamic arrays, hash tables, binary search trees, AVL trees, and priority queues. -
Berkeley CS61B Data Structures
Site: UC Berkeley
Java-based data structures including trees, hash tables, graphs, and complexity analysis. -
Stanford CS161 Design & Analysis of Algorithms
Lecture notes and assignments covering greedy algorithms, divide & conquer, and dynamic programming.
Complete DSA Video Courses
-
Data Structures Easy to Advanced - freeCodeCamp
9-hour visual course covering major data structures and Big-O analysis. -
Abdul Bari Algorithms Course
Complete algorithms series covering recursion, dynamic programming, graphs, trees, and sorting. -
Data Structures & Algorithms Mega Course
49-hour comprehensive course covering the full range of data structures and algorithms.
Language-Specific DSA
JavaScript
- JavaScript Algorithms & Data Structures - freeCodeCamp
300+ coding challenges covering core algorithm topics in JavaScript.
Python
-
Data Structures and Algorithms in Python - Codecademy
Interactive course covering arrays, linked lists, trees, and graphs. -
Python Data Structures and Algorithms - GeeksforGeeks
Python implementations of common algorithms and data structures.
C
- Data Structures in C - GeeksforGeeks
Covers arrays, linked lists, stacks, queues, and tree implementations in C.
Algorithm Design Paradigms
-
Dynamic Programming - UCSD
Classical dynamic programming problems and optimization techniques. -
Graph Algorithms - Coursera
BFS, DFS, shortest paths, Dijkstra, Bellman-Ford, and network flow. -
Greedy Algorithms - Coursera
Algorithm design using greedy techniques and proofs. -
Divide and Conquer - Coursera
Algorithms such as merge sort, quicksort, closest pair, and FFT.
Advanced University Courses
-
MIT 6.046 Design & Analysis of Algorithms
Advanced algorithms including NP-completeness and approximation algorithms. -
Princeton Algorithms Specialization
Multi-course specialization covering comprehensive algorithms topics. -
Algorithms Part I - UCSD
Advanced data structures and algorithm design techniques.
Interactive Visualizations
-
VisuAlgo
Interactive visualizer supporting 70+ algorithms and data structures. -
Algorithm Visualizer
Visual algorithm animations to understand algorithm behavior. -
Interactive Python DSA (Runestone)
Interactive textbook with exercises and implementations. -
OpenDSA
Interactive learning modules and visualizations for data structures and algorithms.
Reference Textbooks & Articles
-
GeeksforGeeks DSA Articles
Large collection of algorithm explanations and implementations. -
CP-Algorithms
Competitive programming reference with proofs and implementations. -
Skiena’s Algorithm Design Manual Notes
Lecture notes and problem-solving techniques for algorithm design. -
Big-O Cheat Sheet
Quick reference for algorithm time and space complexity.
Interview Preparation
-
NeetCode 150
Curated list of common technical interview problems with explanations. -
Master the Coding Interview: DSA - freeCodeCamp
Course explaining common data structure and algorithm interview patterns. -
LeetCode Patterns Study Guide
Pattern-based approach to solving algorithm interview problems.
Competitive Programming
-
USACO Guide
Training resources and tutorials for competitive programming. -
Kattis Tutorials
Tutorials and practice problems for algorithmic problem solving.
Supporting Mathematics
-
Discrete Mathematics - MIT OCW
Logic, proofs, sets, combinatorics, and graph theory foundations. -
Mathematics for Computer Science (MIT)
Complete discrete mathematics textbook used in MIT CS courses.
Complete Alternative Paths
-
freeCodeCamp DSA Certification
Full curriculum covering algorithms and programming practice. -
edX Data Structures Courses
University-level courses from Microsoft, Linux Foundation, and others.
Graph Theory Foundations
- Graph Theory - Khan Academy
Foundational graph theory concepts for algorithms.
Specialized References
-
Introduction to Algorithms (CLRS) – Free Excerpts
Classic algorithms textbook available via university course pages. -
DP for Competitive Programming (Errichto)
Dynamic programming strategies used in competitive programming.