Courses

Data Structures & Algorithms

Arrays to graphs, sorting and searching, recursion, dynamic programming and Big-O: the foundation of every technical interview

  • 8 lessons
  • 5.5 hours
  • Beginner
  • Graded labs: 24

What you will learn

  • Analyse running time with Big-O for loops and recursion and compare two solutions on paper.
  • Choose between array, linked list, stack, queue, hash map and heap by the cost of the operations you need.
  • Implement binary search, merge sort and quicksort and explain their cost and stability.
  • Traverse trees and graphs with DFS and BFS and find shortest paths in unweighted graphs.
  • Find shortest paths in weighted graphs with Dijkstra and Bellman-Ford, and build minimum spanning trees with Union-Find and Kruskal.
  • Solve problems with recursion and memoization and convert them to iterative form.
  • Apply dynamic programming by defining the state, the transition and the base case.
  • Solve a medium interview problem in 30 minutes with tests and a stated complexity.

How you are assessed

Algorithms are learned by solving: nearly every lab is a problem graded against edge cases, quizzes check your complexity reasoning, and challenges add timed pressure.

To pass this track
  • Complete every Foundations lesson
  • Average on first-try quizzes: at least 70%
  • Graded lab exercises to pass: 3
  • Challenges to solve: 2
  • Lessons

    Learn the toolbox

    Complete every core lesson on complexity and fundamental data structures.

  • Quizzes

    State the complexity

    Average at least 70% on first-try quizzes asking you to pick the right structure or Big-O.

  • Lab exercises

    Solve with tests

    Pass at least 3 graded problems (visible edge cases included) in any language you prefer.

  • Challenges

    Beat hidden tests

    Solve at least 2 algorithm challenges graded by hidden tests.

Curriculum

Module 1 · 6 lessons

Core structures and algorithms

Big-O, arrays and hash maps, linked lists, stacks and queues, sorting and binary search, trees and graphs, recursion and dynamic programming.

0/6
  1. 1.Complexity & Big-O: Measuring How Work Grows

    How to measure an algorithm by how its work grows with the input, not by seconds on your laptop. Big-O notation, the common growth classes (constant, logarithmic, linear, n log n, quadratic, exponential) and how to read them off a loop.

    40 min 1 quiz Graded labs: 3
  2. 2.Arrays, Strings & Hash Maps: The Everyday Toolkit

    The two workhorse structures of everyday programming: contiguous arrays (and strings) and hash maps/sets for constant-time lookup. Learn the counting, two-pointer and prefix-sum patterns that turn many O(n²) brute-force ideas into O(n).

    40 min 1 quiz Graded labs: 3
  3. 3.Linked Lists, Stacks & Queues: Who Goes Next?

    Linked lists and the two classic access disciplines: stack (last in, first out) and queue (first in, first out). They power undo history, expression parsing, bracket matching, call stacks and breadth-first search.

    40 min 1 quiz Graded labs: 3
  4. 4.Sorting & Binary Search: Order Is a Superpower

    Why sorted data is powerful. Comparison sorts (insertion, merge, quick), what O(n log n) really means, when to use the built-in sort, and binary search, including searching for the first position where a condition becomes true and searching on the answer itself.

    40 min 1 quiz Graded labs: 3
  5. 5.Trees & Graphs: Walking Through Networks

    Trees (binary trees, binary search trees) and graphs as models of hierarchies, maps and networks. Representations (adjacency list vs matrix), depth-first and breadth-first traversal, grids as graphs, connected components and shortest paths in unweighted graphs.

    40 min 1 quiz Graded labs: 3
  6. 6.Recursion & Dynamic Programming: Solve It Once, Remember It

    Solve a big problem by solving smaller copies of itself. Base cases and the call stack, why naive recursion can explode exponentially, then memoization and bottom-up tables (Fibonacci, coin change, longest common subsequence, knapsack).

    40 min 1 quiz Graded labs: 3
Module 2 · 2 lessons

Heaps, weighted graphs and greedy choices

Priority queues, shortest paths, Union-Find and minimum spanning trees, then greedy and backtracking strategies.

0/2
  1. 7.Heaps & Priority Queues: The Most Urgent Item First

    A priority queue always hands you the smallest (or largest) item next, and a binary heap does it in O(log n). Learn heap order, push/pop, heapify, top-k problems and merging sorted streams.

    40 min 1 quiz Graded labs: 3
  2. 8.Shortest Paths & Union-Find: Weighted Roads and Cheap Networks

    Weighted graphs: Dijkstra's algorithm with a heap, why negative edges break it, and when Bellman-Ford is needed. Plus the Union-Find (disjoint set) structure for connectivity and minimum spanning trees with Kruskal.

    45 min 1 quiz Graded labs: 3

Run a real example

This is the kind of code you will write. Run it, then change it and run it again.

Python

Breadth-first search explores in rings, so the first time it reaches the exit is a shortest path. Add a wall to block the exit and watch it return -1.

Recommended challenges

Put the skills to work against a puzzle with a flag or a test suite.

See all challenges

Badges

Earned automatically from your progress on this device.

  • First Loop

    Locked

    Finish your first lesson.

    0 / 1

  • Toolbox Ready

    Locked

    Complete every core lesson.

    0 / 6

  • Problem Solver

    Locked

    Pass 3 graded lab exercises.

    0 / 3

  • Big-O Brain

    Locked

    Score 80% or more on the first try in 4 lesson quizzes.

    0 / 4

  • Algorithmist

    Locked

    Complete every lesson in the track.

    0 / 8

Certificate of completion

Lessons completed: 0 / 8

Complete every lesson to unlock your certificate.