Algorithm and Data Structure Resources
Courses
Courses with Video Lectures
http://cmlakhan.github.io/courses/videos.html
Stanford CS243: Program Analysis and Optimization
http://suif.stanford.edu/~courses/cs243/
CMU 15-814: Types and Programming Languages
http://www.cs.cmu.edu/~rwh/courses/typesys/
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
http://www.cs.princeton.edu/courses/archive/fall15/cos521/
MIT: 6.006 Introduction to Algorithms
https://stellar.mit.edu/S/course/6/sp16/6.006/materials.html
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
http://courses.csail.mit.edu/6.851/
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
http://suif.stanford.edu/~courses/cs243/
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.
https://www.edx.org/course/algorithms-iitbombayx-cs213-3x
(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
- course page: http://web.stanford.edu/class/cs97si/
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
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
http://ivanyu.me/blog/2013/10/15/z-algorithm/
Problem Solving with Algorithms and Data Structures (interactive Python online book)
http://interactivepython.org/courselib/static/pythonds/index.html
Visualizing Algorithms
http://bost.ocks.org/mike/algorithms/
The missing method: Deleting from Okasaki’s red-black trees
Fast Forward Labs: Probabilistic Data Structure Showdown: Cuckoo Filters vs. Bloom Filters
http://blog.fastforwardlabs.com/post/153566952648/probabilistic-data-structure-showdown-cuckoo
Data Structures Related to Machine Learning Algorithms
https://dzone.com/articles/data-structures-related-to-machine-learning-algori
Using Self-Organizing Maps to solve the Traveling Salesman Problem
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
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
http://www.cs.usfca.edu/~galles/visualization/flash.html
Red/Black Tree Demonstration
http://gauss.ececs.uc.edu/RedBlack/redblack.html
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?
- stackoverflow: http://stackoverflow.com/questions/500607/what-are-the-lesser-known-but-useful-data-structures