Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

Core Computer Science

Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

Level 1 · Core Computer Science

Core Computer Science

Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics. Follow the core path in order — it moves from complexity and data structures to graph algorithms. The advanced track below is optional: it targets competitive programming and expert-level interviews, and is safe to skip for most systems engineering work.

0/34 completed 34 available

Core Foundations

The essential path — complexity analysis, fundamental data structures, sorting and searching, algorithmic paradigms, and graph foundations. Work through these in order.

Algorithms & Data Structures

Available

A comprehensive interactive exploration of 36 algorithms — 10 sorting, 6 searching, 9 graph, 4 DP, 2 greedy, 2 backtracking, and 3 string matching — with step-by-step animation, Big-O analysis, and practical comparisons.

Difficulty:
2/5 · Elementary
Sorting Big-O Notation Divide & Conquer Comparison Sorts +1
varies per algorithm
Start Learning

Arrays and Strings

Available

Master the most fundamental data structures: contiguous memory arrays and immutable string manipulation. Covers traversal, two-pointer techniques, and common string algorithms.

Difficulty:
1/5 · Beginner
Contiguous Memory Indexing Two-Pointer Technique String Building +1
2-3 hours
Start Learning

Linked Lists

Available

Understand singly and doubly linked lists, their traversal patterns, and trade-offs against arrays. Covers reversal, cycle detection, and merge operations.

Difficulty:
1/5 · Beginner
Node-based structure Singly vs Doubly Linked Lists Pointer manipulation Cycle detection +1
2-3 hours
Requires: Arrays and Strings
Start Learning

Big-O Notation & Complexity Analysis

Available

Master asymptotic notation for algorithm analysis. Covers O, Ω, Θ notations, common complexity classes, and how to analyze iterative and recursive algorithms.

Difficulty:
1/5 · Beginner
Asymptotic notation (O, Ω, Θ) Time vs space complexity Worst-case, average-case, best-case Complexity class hierarchy +1
2-3 hours
Requires: Arrays and Strings
Start Learning

Recursion

Available

Understand recursive problem-solving: base cases, recursive cases, the call stack, and common recursive patterns like divide-and-conquer and backtracking.

Difficulty:
2/5 · Elementary
Base case and recursive case Call stack and stack frames Tail recursion Divide and conquer +1
2-3 hours
Requires: Big-O Notation & Complexity Analysis
Start Learning

Recurrences & Solving Recurrence Relations

Available

Learn to model recursive algorithms with recurrence relations and solve them using substitution, recursion trees, and the Master Theorem.

Difficulty:
3/5 · Intermediate
Recurrence relations Substitution method Recursion tree method Master Theorem +1
2-3 hours
Requires: Recursion, Big-O Notation & Complexity Analysis
Start Learning

Divide and Conquer

Available

Master Divide and Conquer — breaking problems into independent subproblems, solving them recursively, and combining results. The engine behind Merge Sort, Quick Sort, and Binary Search.

Difficulty:
2/5 · Elementary
Divide / conquer / combine Independent subproblems Recurrences & the Master Theorem Comparison with dynamic programming
2 hours
Requires: Recursion, Recurrences
Start Learning

Stacks

Available

Explore the LIFO (Last-In-First-Out) stack data structure — operations, array vs linked-list implementations, and common applications like expression evaluation and undo systems.

Difficulty:
1/5 · Beginner
LIFO principle Push, pop, peek operations Array-backed stack Linked-list-backed stack +1
1-2 hours
Requires: Linked Lists, Arrays and Strings
Start Learning

Queues

Available

Explore the FIFO (First-In-First-Out) queue data structure — enqueue, dequeue, front, circular buffers, and applications like BFS and task scheduling.

Difficulty:
1/5 · Beginner
FIFO principle Enqueue and dequeue Circular buffer Priority queue concept +1
1-2 hours
Requires: Linked Lists, Arrays and Strings
Start Learning

Hash Tables

Available

Understand hash tables and hash maps — hash functions, collision handling (chaining vs open addressing), load factor, resizing, and real-world applications.

Difficulty:
2/5 · Elementary
Hash function Load factor Collision resolution (chaining, open addressing) Resizing / rehashing +1
2-3 hours
Requires: Arrays and Strings, Big-O Notation & Complexity Analysis
Start Learning

Heaps & Priority Queues

Available

Understand binary heaps (min-heap, max-heap), heap operations, heapify, heap sort, and priority queue implementations.

Difficulty:
2/5 · Elementary
Min-heap and max-heap property Complete binary tree Heapify (sift-up, sift-down) Heap sort +1
2-3 hours
Requires: Binary Trees, Big-O Notation & Complexity Analysis
Start Learning

Two Pointers & Sliding Window

Available

Master the two-pointer technique and the sliding-window pattern — two of the most reusable tricks for turning O(n²) substring problems into O(n) algorithms.

Difficulty:
2/5 · Elementary
Opposite-direction two pointers Same-direction (fast/slow) pointers Variable-length sliding window Fixed-length sliding window +1
3 hours
Requires: Arrays & Strings, Hash Tables
Start Learning

Greedy Algorithms

Available

Learn the greedy strategy — making the locally optimal choice at each step — and how to prove it produces a globally optimal solution.

Difficulty:
2/5 · Elementary
Greedy choice property Local vs global optimum Exchange argument Sorting as a preprocessing step +1
3 hours
Requires: Big-O Notation & Complexity Analysis, Divide and Conquer
Start Learning

Dynamic Programming

Available

Master Dynamic Programming — the art of breaking problems into overlapping subproblems, storing their answers, and reconstructing optimal solutions.

Difficulty:
3/5 · Intermediate
Optimal substructure Overlapping subproblems Memoization (top-down) Tabulation (bottom-up) +2
4 hours
Requires: Recursion, Big-O Notation & Complexity Analysis
Start Learning

Backtracking

Available

Master backtracking — systematically searching for solutions by building candidates incrementally and abandoning them the moment they violate constraints.

Difficulty:
3/5 · Intermediate
Constraint satisfaction problems Incremental candidate construction Pruning Depth-first search of the solution space +1
3 hours
Requires: Recursion, Dynamic Programming
Start Learning

String Matching

Available

Master the linear-time algorithms that locate a pattern inside a larger text — from naive scanning to KMP, Rabin-Karp, and the Z-algorithm.

Difficulty:
3/5 · Intermediate
Naive pattern scanning Precomputed failure/prefix tables Rolling hashing Linear-time matching invariants
4 hours
Requires: Big-O Notation & Complexity Analysis, Hash Tables
Start Learning

Union-Find (Disjoint Set Union)

Available

The Disjoint Set Union — find and union in effectively O(1), the engine behind Kruskal's algorithm, dynamic connectivity, and cycle detection.

Difficulty:
3/5 · Intermediate
Disjoint sets Union by rank Path compression Inverse Ackermann function O(α(n))
2 hours
Requires: Recursion, Minimum Spanning Tree
Start Learning

Graph Representation

Available

Understand how graphs are stored in memory using adjacency matrices and adjacency lists, and when to choose each representation.

Difficulty:
2/5 · Elementary
Adjacency matrix representation Adjacency list representation Directed vs undirected graphs Weighted vs unweighted graphs
1 hour
Start Learning

BFS & DFS Graph Traversals

Available

Master Breadth-First Search and Depth-First Search — the foundational graph traversal algorithms used in pathfinding, cycle detection, topological sorting, and more.

Difficulty:
2/5 · Elementary
Breadth-First Search (BFS) Depth-First Search (DFS) Graph traversal order Cycle detection
2 hours
Start Learning

Dijkstra's Shortest Path

Available

Learn Dijkstra's algorithm — the gold-standard greedy algorithm for finding shortest paths from a single source in graphs with non-negative edge weights.

Difficulty:
3/5 · Intermediate
Single-source shortest path Edge relaxation Priority queue Greedy algorithm correctness
2-3 hours
Start Learning

Minimum Spanning Trees (Prim & Kruskal)

Available

Explore Prim's and Kruskal's algorithms for finding Minimum Spanning Trees — the optimal network that connects all nodes with minimum total edge weight.

Difficulty:
3/5 · Intermediate
Minimum Spanning Tree Kruskal's algorithm Prim's algorithm Union-Find (Disjoint Set Union) +1
2-3 hours
Start Learning

Advanced & Optional

Expert Track

Advanced balanced trees, range-query structures, network flow, and complexity theory. Optional — explore these when preparing for competitive programming, expert interviews, or curiosity-driven depth.

Tries

Available

The trie — a character-keyed prefix tree where lookups and inserts cost O(word length), the data structure behind autocomplete, spell checkers, and IP routing.

Difficulty:
3/5 · Intermediate
Character-keyed nodes (not whole keys) Shared prefixes stored once End-of-word markers O(m) operations independent of dataset size
2 hours
Requires: Trees, Hash Tables
Start Learning

Fenwick Trees

Available

The Fenwick tree (Binary Indexed Tree) — prefix sums and point updates in O(log n) with a few lines of code, the lowbit trick behind counting inversions and order statistics.

Difficulty:
3/5 · Intermediate
lowbit(i) = i & −i Each bit[i] owns range (i − lowbit(i), i] O(log n) prefix and update walks Range sum via prefix(r) − prefix(l−1)
2 hours
Requires: Arrays and Strings, Segment Tree, Prefix Sums
Start Learning

A* Search

Available

A* — the informed search algorithm that combines Dijkstra's real costs with a heuristic, finding optimal paths on grids and graphs by expanding f = g + h.

Difficulty:
3/5 · Intermediate
f(n) = g(n) + h(n) Admissible heuristics guarantee optimality Open / closed sets Manhattan distance for grids
3 hours
Requires: BFS & DFS Graph Traversals, Dijkstra's Shortest Path, Graph Representation
Start Learning

Bit Manipulation

Available

Bit manipulation — the fundamental toolkit of low-level and competitive programming: bitwise operators, masks, lowbit tricks, and the classic bit-trick algorithm families.

Difficulty:
3/5 · Intermediate
Bitwise operators: &, |, ^, ~, <<, >> lowbit(x) = x & −x Setting, clearing, toggling, and testing bits Subset enumeration with masks
2 hours
Requires: Big-O Notation & Complexity Analysis, Recursion
Start Learning

Segment Tree

Available

The Segment Tree — O(log n) range queries and point updates over an array, the workhorse of dynamic range-statistics problems.

Difficulty:
4/5 · Advanced
Recursive segment partition Range queries in O(log n) Point updates in O(log n) Lazy propagation
4 hours
Requires: Recursion, Trees, Divide and Conquer
Start Learning

AVL Trees

Available

The AVL tree — the first self-balancing BST, keeping height O(log n) with balance factors and rotations, the strictest height guarantee of all balanced trees.

Difficulty:
4/5 · Advanced
Balance factor (left height minus right height) Height bound 1.44 · log₂(n+2) Rotations: left, right, left-right, right-left Rebalancing after every insert and delete
3 hours
Requires: Trees, Binary Search Tree, Recursion
Start Learning

Red-Black Trees

Available

The Red-Black tree — the self-balancing BST behind every standard library ordered map, balancing with colors, recoloring, and rotations in O(log n).

Difficulty:
4/5 · Advanced
Four color invariants Black-height (equal black count on every path) Recolor vs. rotate fix-up cases Height bound at most 2 · log₂(n+1)
3 hours
Requires: Binary Search Tree, AVL Trees
Start Learning

B-Trees

Available

The B-Tree — the self-balancing multi-key search tree engineered for disk blocks and database indexes, keeping billions of keys just a few levels deep.

Difficulty:
4/5 · Advanced
Multi-key nodes (up to m-1 keys, m children) All leaves at the same depth Split full nodes on the way down Height ≈ log_m n for a million-key tree
3 hours
Requires: Binary Search Tree, AVL Trees, Segment Tree
Start Learning

Sparse Tables

Available

The sparse table — precomputed power-of-two intervals that answer static range minimum/maximum/GCD queries in O(1) after O(n log n) preprocessing.

Difficulty:
4/5 · Advanced
st[k][i] = aggregate of [i, i + 2^k − 1] O(n log n) preprocessing O(1) queries via two overlapping intervals Only works for idempotent operations (min, max, gcd)
2 hours
Requires: Arrays and Strings, Prefix Sums, Segment Tree
Start Learning

Lowest Common Ancestor (Binary Lifting)

Available

LCA with binary lifting — precompute 2^k-th ancestors in O(n log n), then answer any LCA, k-th-ancestor, or tree-distance query in O(log n).

Difficulty:
4/5 · Advanced
up[k][v] = 2^k-th ancestor of v Depth equalization by binary lifting Simultaneous climbing for LCA O(n log n) preprocess, O(log n) per query
3 hours
Requires: Recursion, Trees, Graph Representation
Start Learning

Mathematical Algorithms

Available

Mathematical algorithms — modular arithmetic, exponentiation, gcd/euclid, sieve, primality, and combinatorics — the number-theoretic toolkit behind hashing, cryptography, and competitive programming.

Difficulty:
4/5 · Advanced
Modular arithmetic and inverses Fast exponentiation and Euclidean algorithm Sieve of Eratosthenes and primality tests Modular combinatorics (nCk, nPk)
3 hours
Requires: Recursion, Divide and Conquer
Start Learning

Network Flow

Available

Maximum flow with Edmonds-Karp — BFS augmenting paths in the residual graph, the max-flow/min-cut theorem, and applications from bipartite matching to image segmentation.

Difficulty:
5/5 · Expert
Residual graph (forward c−f, backward f) Augmenting paths and bottleneck Max-flow = min-cut theorem Edmonds-Karp O(V·E²)
4 hours
Requires: BFS & DFS Graph Traversals, Graph Representation, Union-Find (Disjoint Set Union)
Start Learning

Computational Complexity: P vs NP

Available

Computational complexity theory — P, NP, reductions, NP-hardness, and NP-completeness — the theory that classifies problems by intrinsic difficulty and frames the biggest open question in computer science.

Difficulty:
5/5 · Expert
Complexity classes P and NP Polynomial-time reductions NP-hard and NP-complete problems Decision vs optimization problems
4 hours
Requires: Big-O Notation & Complexity Analysis, Divide and Conquer, Backtracking
Start Learning