Algorithm and Data Structure Resources

Published: 01 Jul 2015 Category: algorithm_and_data_structure

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

MIT 6.851: Advanced Data Structures

http://courses.csail.mit.edu/6.851/

MIT 6.046J: Design and Analysis of Algorithms (Spring 2015)

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

Programming Contest

Stanford: CS 97SI: Introduction to Programming Contests

Stanford ACM-ICPC related materials

The Art of Programming Contest

The Hitchhiker’s Guide to the Programming Contest

Competitive Programmer’s Handbook

Blogs

Know Thy Complexities!

http://bigocheatsheet.com/

Visualizing Algorithms

Implementations of Algorithms & Datastructures from a Geek’s Viewpoint

http://www.geekviewpoint.com/

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

http://www.redblobgames.com/

Codes

Bloofi: A java implementation of multidimensional Bloom filters

PathFinding.js: A comprehensive path-finding library for grid based games

Tools

Algorithm Visualizer

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

Solutions to Introduction to Algorithms

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?