Skip to content
Read
Menu Toggle
Chapter 0: Ancient Greek Math and the Foundations of Computational Thinking
Menu Toggle
Introduction: Two 2,300 Year Old Problems
Algorithms and Greatest Common Divisors
A Painless Intro to Pseudocode and Control Flow
Loops and the Trivial GCD Algorithm
Euclid’s Insight Leads to the World’s First Nontrivial Algorithm
Eratosthenes, Primes, and the World’s Second Nontrivial Algorithm
Chapter 1: Hunting for Hidden Messages in Bacterial Genomes
Menu Toggle
Introduction: The Most Beautiful Experiment in Biology
Two Problems Related to Bacterial Replication
Hidden Messages in the Replication Origin
An Explosion of Hidden Messages
A Surprising Insight Leads Us to the Replication Origin
Some Hidden Messages are More Elusive than Others
Chapter 2: Forecasting a Presidential Election
Menu Toggle
Introduction: Polls and the 2016 US Presidential Election
Computing the House Edge of Craps Using Monte Carlo Simulation
Pitfalls of (Pseudo)Random Number Generation
Rolling Dice and Completing our Craps Simulator
Simulating a Presidential Election
Epilogue: A Reflection on the Nature of Election Forecasting
Chapter 3: Discovering a Self-Replicating Automaton
Menu Toggle
Introduction: Self-Replicating Machines and the Fermi Paradox
The Game of Life
A Reintroduction to Top-Down Programming
Implementing the Game of Life with Top-Down Programming
Building a Self-Replicating Cellular Automaton
Even more soon!
Code
Menu Toggle
Chapter 0
Menu Toggle
Installing Go and Writing Our First Program
Types and Numeric Variables
Functions
Conditionals
While Loops
For Loops
Implementing GCD Algorithms
Arrays and Slices
Implementing Prime Finding Algorithms
Chapter 1
Menu Toggle
An Introduction to Strings
Substrings and Subslices
Maps
Finding Frequent Words
Finding Clumps
Building a Skew Array
Chapter 2
Menu Toggle
Generating “Random” Numbers and Rolling Dice
Simulating Craps with Monte Carlo Simulation
Parsing Election Polling Data from Files
Simulating an Election from Polling Data
Chapter 3
Menu Toggle
Introduction to Two-Dimensional Arrays
Introduction to Graphics
Drawing a Game of Life Board
Implementing the Game of Life
An Infinitude of Cellular Automata, including the Self-Replicating Langton Loops
Practice
Menu Toggle
Chapter 0: Integer Fun and Unsolved Math Questions
Chapter 1: Quantifying Microbial Diversity
Chapter 2: PRNGs and Monte Carlo Simulation
Chapter 3: Turing Patterns
About
Donate
Search for:
Search
Search
Main Menu
Read
Menu Toggle
Chapter 0: Ancient Greek Math and the Foundations of Computational Thinking
Menu Toggle
Introduction: Two 2,300 Year Old Problems
Algorithms and Greatest Common Divisors
A Painless Intro to Pseudocode and Control Flow
Loops and the Trivial GCD Algorithm
Euclid’s Insight Leads to the World’s First Nontrivial Algorithm
Eratosthenes, Primes, and the World’s Second Nontrivial Algorithm
Chapter 1: Hunting for Hidden Messages in Bacterial Genomes
Menu Toggle
Introduction: The Most Beautiful Experiment in Biology
Two Problems Related to Bacterial Replication
Hidden Messages in the Replication Origin
An Explosion of Hidden Messages
A Surprising Insight Leads Us to the Replication Origin
Some Hidden Messages are More Elusive than Others
Chapter 2: Forecasting a Presidential Election
Menu Toggle
Introduction: Polls and the 2016 US Presidential Election
Computing the House Edge of Craps Using Monte Carlo Simulation
Pitfalls of (Pseudo)Random Number Generation
Rolling Dice and Completing our Craps Simulator
Simulating a Presidential Election
Epilogue: A Reflection on the Nature of Election Forecasting
Chapter 3: Discovering a Self-Replicating Automaton
Menu Toggle
Introduction: Self-Replicating Machines and the Fermi Paradox
The Game of Life
A Reintroduction to Top-Down Programming
Implementing the Game of Life with Top-Down Programming
Building a Self-Replicating Cellular Automaton
Even more soon!
Code
Menu Toggle
Chapter 0
Menu Toggle
Installing Go and Writing Our First Program
Types and Numeric Variables
Functions
Conditionals
While Loops
For Loops
Implementing GCD Algorithms
Arrays and Slices
Implementing Prime Finding Algorithms
Chapter 1
Menu Toggle
An Introduction to Strings
Substrings and Subslices
Maps
Finding Frequent Words
Finding Clumps
Building a Skew Array
Chapter 2
Menu Toggle
Generating “Random” Numbers and Rolling Dice
Simulating Craps with Monte Carlo Simulation
Parsing Election Polling Data from Files
Simulating an Election from Polling Data
Chapter 3
Menu Toggle
Introduction to Two-Dimensional Arrays
Introduction to Graphics
Drawing a Game of Life Board
Implementing the Game of Life
An Infinitude of Cellular Automata, including the Self-Replicating Langton Loops
Practice
Menu Toggle
Chapter 0: Integer Fun and Unsolved Math Questions
Chapter 1: Quantifying Microbial Diversity
Chapter 2: PRNGs and Monte Carlo Simulation
Chapter 3: Turing Patterns
About
Donate
Chapter 4 Python Code Alongs
Scroll to Top