Skip to content
SimpleScope

About Simple Scope

Simple Scope teaches classic algorithms (searching, sorting and graph search) and data structures such as stacks, queues, trees, lists and hash tables by letting you watch the real code run. It is free, needs no account and uses no AI.

Last updated

Why it exists

Pseudocode and diagrams show an algorithm at one moment. The hard part is what changes between moments: which values get compared, what moves, what is already settled. Simple Scope shows every one of those steps, and asks you to predict the next before it happens.

It is written for people who already code and want to understand algorithms, not memorize them. Each lesson has four layers: See, Understand, Predict and Practice. Every lesson is open from the start; the order on the path is a recommendation.

How the runs work

Each algorithm is a real JavaScript implementation. When it runs on an input, it records every step: what it compared, swapped, visited or wrote. The player replays that recording, so what you see is what the code did.

Predict questions and Practice exercises are checked against the same recording. There is no separate answer key that could disagree with the code, and no code you write is run. Counts such as comparisons and writes come from the recording too, which is how the comparison pages and the race can show real operation counts. For how complexity is stated, see Big-O notation explained.

There are no AI features. Nothing you do is sent to an AI service, and every answer is checked by the real code.

Sources

Each lesson follows the classic textbook version of its algorithm, not a shortened variant, and names its source. The two references are Donald E. Knuth, The Art of Computer Programming, vol. 3 (Sorting and Searching), and Cormen, Leiserson, Rivest and Stein, Introduction to Algorithms.

  • Linear searchKnuth, TAOCP vol. 3, section 6.1 (sequential search)
  • Binary searchKnuth, TAOCP vol. 3, section 6.2.1
  • Bubble sortKnuth, TAOCP vol. 3, section 5.2.2
  • Selection sortKnuth, TAOCP vol. 3, section 5.2.3
  • Insertion sortCormen et al., Introduction to Algorithms, chapter 2
  • Merge sortCormen et al., Introduction to Algorithms, chapter 2
  • Quick sortCormen et al., Introduction to Algorithms, chapter 7 (Lomuto partition)
  • Breadth-first searchCormen et al., Introduction to Algorithms, chapter 20
  • Depth-first searchCormen et al., Introduction to Algorithms, chapter 20
  • Dijkstra's algorithmCormen et al., Introduction to Algorithms, chapter 22
  • StackKnuth, TAOCP vol. 1, section 2.2.1 (stacks, queues and deques)
  • QueueKnuth, TAOCP vol. 1, section 2.2.1 (stacks, queues and deques)
  • Binary search treeCormen et al., Introduction to Algorithms, chapter 12; Knuth, TAOCP vol. 3, section 6.2.2
  • Binary heapCormen et al., Introduction to Algorithms, chapter 6
  • Linked listKnuth, TAOCP vol. 1, section 2.2.3 (linked allocation); Cormen et al., Introduction to Algorithms, section 10.2
  • Hash tableCormen et al., Introduction to Algorithms, sections 11.2 (chaining) and 11.3 (the division method)
  • Heap sortCormen et al., Introduction to Algorithms, section 6.4
  • Counting sortCormen et al., Introduction to Algorithms, section 8.2
  • Radix sortCormen et al., Introduction to Algorithms, section 8.3

Your data

Progress stays in your browser unless you choose to create an account to sync it. There is no advertising. The privacy page lists exactly what is stored and where.