All courses
DSA 101FreeComputer Science

Data Structures & Algorithms 101: Algorithmic thinking

Data structures and algorithms for university students: searching, sorting, stacks, queues, recursion, hash tables, trees and graphs. Every chapter starts from a real problem; you watch, predict, make each move of the algorithm yourself, race them as n grows and write them in blocks. No programming needed.

  • Beginner
  • About 12 to 15 hours
  • 10 sections
  • 50 lessons
Start learning

Sign in with Google or GitHub and the course opens in the Academy with the same account.

Course outline

  1. Section 1

    Getting started

    • Where are you now?

      Check · 10 min

    • What this course trains, and how

      Lesson · 8 min

  2. Section 2

    An algorithm is a way of thinking

    • Guess a number in seven questions

      Lesson · 8 min

    • Halving: the algorithm behind it

      Lesson · 10 min

    • Count steps, not seconds

      Practice · 10 min

    • Out there, and naming the problem

      Lesson · 8 min

  3. Section 3

    Arrays and searching

    • One order in a million rows

      Lesson · 10 min

    • Write linear search

      Practice · 12 min

    • Binary search on a sorted array

      Lesson · 14 min

    • Write binary search

      Practice · 15 min

    • Race: n against log n

      Practice · 8 min

    • Out there: database indexes

      Lesson · 8 min

  4. Section 4

    Sorting

    • Sort by class, then by score

      Lesson · 8 min

    • Be the algorithm: bubble and selection

      Practice · 12 min

    • Insertion sort

      Lesson · 12 min

    • Write selection sort

      Practice · 15 min

    • Divide and conquer: merge sort

      Lesson · 14 min

    • Quick sort

      Lesson · 14 min

    • Race: n² against n log n

      Practice · 10 min

    • Out there: Timsort

      Lesson · 8 min

  5. Section 5

    Stacks and queues

    • Undo and waiting lines

      Lesson · 10 min

    • You are the stack, you are the queue

      Practice · 10 min

    • Are the brackets balanced?

      Lesson · 12 min

    • A queue inside an array

      Practice · 12 min

    • Out there: stacks and queues

      Lesson · 8 min

  6. Section 6

    Recursion

    • How big is a folder?

      Lesson · 10 min

    • The Tower of Hanoi

      Lesson · 14 min

    • Fibonacci: the same work again and again

      Lesson · 14 min

    • Race: with and without a memo

      Practice · 6 min

    • Out there: recursion

      Lesson · 8 min

  7. Section 7

    Hash tables

    • The supermarket lockers

      Lesson · 10 min

    • You are the hash function

      Practice · 8 min

    • Load and doubling

      Lesson · 8 min

    • Race: a list or a hash table?

      Practice · 6 min

    • Out there: hash tables

      Lesson · 8 min

  8. Section 8

    Trees

    • The page you are reading is a tree

      Lesson · 10 min

    • You build and search the tree

      Practice · 12 min

    • Four ways to walk a tree

      Lesson · 16 min

    • Race: a balanced tree or a list

      Practice · 8 min

    • Out there: trees

      Lesson · 8 min

  9. Section 9

    Graphs

    • Friends, streets, packages

      Lesson · 12 min

    • Friend suggestions: breadth-first search

      Lesson · 14 min

    • Go deep, then come back

      Lesson · 16 min

    • Karel in the dark

      Practice · 20 min

    • Install order: topological sort

      Lesson · 12 min

    • The shortest way through the Old Quarter

      Lesson · 22 min

    • Connect every corner with the least cable

      Lesson · 16 min

    • Challenge: Micromouse

      Practice · 45 min

    • Out there: graphs

      Lesson · 10 min

  10. Section 10

    Wrap-up

    • Looking back

      Lesson · 8 min

    • How far have you come?

      Check · 10 min

    • Final reflection

      Lesson · 5 min