0. Algorithmic Thinking

Readings

Big O Notation Data Structures Logarithms

1. Array and string manipulation

Readings

Array Array Slicing In-Place Algorithms Dynamic Array

2. Hashing and Hash table

Readings

Hashing and Hash Functions Hash Table

3. Greedy Algorithms

Readings

Greedy Algorithms

4. Sorting, searching and logarithms

Readings

Binary Search Algorithm

5. Trees and Graphs

Readings

Binary Tree Graph Breadth-First Search (BFS) Depth-First Search (DFS)

6. Dynamic programming and recursion

Readings

Overlapping Subproblems Memoization Bottom-Up Algorithms

7. Queues and stacks

Readings

Queue Data Structure Stack Data Structure

8. Linked lists

Readings

Linked List Data Structure

9. General programming

Readings

Short Circuit Evaluation Garbage Collection Closures Mutable vs Immutable Objects

10. Bit manipulation

Readings

Binary Numbers Bitwise AND Bitwise OR Bitwise XOR Bitwise NOT Bit Shifting Integer Overflow

11. Combinatorics, probability and other math

Readings

Triangular Series

12. JavaScript

Readings

Closures In-Place Algorithms