Algorithm and Data Structure Resources
Courses
Courses with Video Lectures
Stanford CS243: Program Analysis and Optimization
CMU 15-814: Types and Programming Languages
MIT: Introduction to Algorithms http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/index.htm
Princeton Computer Science 521: Advanced Algorithm Design
MIT: 6.006 Introduction to Algorithms
Datastructures and Algorithms (at Amsterdam University College) 2015-2016
- homepage: http://www.cs.vu.nl/~tcs/datalg/
- slides: http://www.cs.vu.nl/~tcs/datalg/datalg-slides.pdf
MIT 6.851: Advanced Data Structures
MIT 6.046J: Design and Analysis of Algorithms (Spring 2015)
- lecture videos: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-videos/
- lecture notes: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-notes/
Stanford CS243: Program Analysis and Optimization
MIT: Introduction to Algorithms http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/index.htm
(edX) Algorithms: Learn how to structure and use algorithms to solve real life problems.
(Coursera) Master Algorithmic Programming Techniques
- intro: Learn algorithms through programming and advance your software engineering or data science career
- intro: Algorithmic Toolbox, Data Structures, Algorithms on Graphs, Algorithms on Strings, Advanced Algorithms and Complexity, Genome Assembly Programming Challenge
- course-page: https://www.coursera.org/specializations/data-structures-algorithms
Papers
The JPS Pathfinding System
JPS+: Over 100x Faster than A
- paper: http://www.aaai.org/ocs/index.php/SOCS/SOCS12/paper/viewFile/5396/5212
- video: http://www.gdcvault.com/play/1022094/JPS-Over-100x-Faster-than
- mirror: http://pan.baidu.com/s/1sjNtIVz
Programming Contest
Stanford: CS 97SI: Introduction to Programming Contests
Stanford ACM-ICPC related materials
- intro: This is a repository for the Stanford ACM-ICPC teams. It currently hosts (a) the team notebook, and (b) complete lecture slides for CS 97SI.
- github: https://github.com/jaehyunp/stanfordacm
The Art of Programming Contest
- book: https://www.comp.nus.edu.sg/~stevenha/database/Art_of_Programming_Contest_SE_for_uva.pdf
- mirror: https://pan.baidu.com/s/1qYQyXqc
The Hitchhiker’s Guide to the Programming Contest
- book: http://comscigate.com/Books/contests/icpc.pdf
- mirror: https://pan.baidu.com/s/1i5I5M4H
Competitive Programmer’s Handbook
- homepage: https://cses.fi/book.html
- pdf: https://cses.fi/book.pdf
Blogs
Know Thy Complexities!

Visualizing Algorithms

- github: https://bost.ocks.org/mike/algorithms/
- video: http://vimeo.com/112319901
Implementations of Algorithms & Datastructures from a Geek’s Viewpoint
Z algorithm
Problem Solving with Algorithms and Data Structures (interactive Python online book)
Visualizing Algorithms
The missing method: Deleting from Okasaki’s red-black trees
Fast Forward Labs: Probabilistic Data Structure Showdown: Cuckoo Filters vs. Bloom Filters
Data Structures Related to Machine Learning Algorithms
Using Self-Organizing Maps to solve the Traveling Salesman Problem
- blog: https://diego.codes/post/som-tsp/
- github: https://github.com/DiegoVicen/som-tsp
Visualization
Visualisation of A* path-finding algorithm in a maze
Red Blob Games
Codes
Bloofi: A java implementation of multidimensional Bloom filters
- github: https://github.com/lemire/bloofi
PathFinding.js: A comprehensive path-finding library for grid based games
- github: https://github.com/qiao/PathFinding.js
- demo: http://qiao.github.io/PathFinding.js/visual/
Tools
Algorithm Visualizer
- homepage: http://jasonpark.me/AlgorithmVisualizer/
- github: https://github.com/parkjs814/AlgorithmVisualizer
Visualizing String Matching
- intro: Naive / KMP / Boyer-Moore
- homepage: http://whocouldthat.be/visualizing-string-matching/
Visualization of Sort Algorithms
Red/Black Tree Demonstration
Resources
The Algorithm Design Manual, 2nd Edition
- author: Steven Skiena
- homepage: http://www.algorist.com/#
Solutions to Introduction to Algorithms
- github: https://github.com/gzc/CLRS
Big-O Poster: Big-O Complexities / Poster of common algorithms used in Computer Science

Reading and Questions
What are the lesser known but useful data structures?