Skip to content

Instantly share code, notes, and snippets.

@ericqweinstein
Last active June 4, 2016 10:27
Show Gist options
  • Save ericqweinstein/380d6cc719b0a03cfef3 to your computer and use it in GitHub Desktop.
Save ericqweinstein/380d6cc719b0a03cfef3 to your computer and use it in GitHub Desktop.
Wednesday Workshops: Data Structures & Algorithms

Wednesday Workshops: Data Structures & Algorithms

About

Each workshop is ~45 minutes over lunch on Wednesdays. There will be a repo with sample code and additional resources so you can continue learning outside the workshop if you want to.

Curriculum

Intro

  • Why study data structures & algorithms? How do they apply to web development? (5 min)
  • Big O notation (20 min)
  • Strings and arrays (20 min)

Lists

  • Linked lists (single, double, circular) (15 min)
  • Stacks (15 min)
  • Queues (15 min)

Searching and sorting

  • Binary search (5 min)
  • Mergesort (20 min)
  • Quicksort (20 min)

Trees

  • Trees, binary trees, and b-trees (10 min)
  • Binary search trees (15 min)
  • Red/black trees (20 min)

Tree traversal algorithms

  • A quick digression on recursion (15 min)
  • Depth-first (10 min)
  • Pre-order, in-order, and post-order (10 min)
  • Breadth-first (10 min)

Graphs

  • What is a graph and what is it for? (5 min)
  • Graph types (directed vs. undirected, cyclic vs. acyclic) (10 min)
  • Adjacency matrices (15 min)
  • Adjacency lists (15 min)

Graph search algorithms

  • Depth-first search (15 min)
  • Breadth-first earch (15 min)
  • Dijkstra's algorithm (15 min)

Hash tables

  • You already know this! (JS objects are hash tables) (5 min)
  • Separate chaining (20 min)
  • Open addressing (20 min)

Overview of advanced data structures

  • Tries (10 min)
  • (Fibonacci) heaps (10 min)
  • Bloom filters (15 min)
  • More resources (10 min)

Overview of advanced algorithms

  • Dynamic programming (20 min)
  • Heuristics for NP-complete problems (20 min)
  • More resources (5 min)
@bingeboy
Copy link

bingeboy commented Nov 9, 2015

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment