Learn computer science, visually
Watch the animation, operate the panel, then solve the problem.
Data Representation
Bits and Binary
Flip bits on and off to build a byte and learn how the number changes.
Number Base Conversion
Group bits to move between binary, octal, decimal, and hexadecimal.
Negative Numbers and Two’s Complement
Flip the bits, add one, and watch a negative integer emerge.
Storing Fractions with Limited Bits
Use a simplified fixed-step model to see why fractions are rounded.
Bitwise Logic
Apply AND, OR, XOR, and NOT one column at a time.
Text Encoding
Follow a character from Unicode code point to UTF-8 bytes.
Digital Images
Connect pixels, resolution, color depth, and file size.
Digital Audio
Measure and quantize a sine wave at discrete moments.
Compression
Replace repeated data with shorter run-length instructions.
Algorithms
Representing Algorithms
Compare the same procedure written as natural language, a flowchart, and pseudocode.
Linear Search
Compare an array from the start, one element at a time, to find a target.
Binary Search
Narrow the search range in half, in a sorted array.
Complexity
Compare how operation count grows with input size n across four complexity classes.
Bubble Sort
Compare and swap neighboring values to sort an array.
Merge Sort
Merge sorted sub-lists two at a time to sort an array.
Recursion
Use factorial(4) to see the call stack build up and unwind.
Greedy Algorithms
Compare greedy and optimal coin choices for making change.
Dynamic Programming
Fill in a table to find the optimal answer to the fewest-coins problem.