Computer science grew out of mathematics over the course of several centuries. It’s not overselling it to say that modern life is entirely dependent upon these entwined fields. More to the point, working at the intersection of math and code can be a whole lot of fun.

Each tutorial comprises a mixture of mathematical notation and computer code. The premise—drawn from constructionism—is that students learn more deeply by creating personally meaningful products. To that end, we’ll use the JavaScript programming language and p5.js, a software “sketchbook” for the web.

Math Sections

Math-heavy sections are marked with , the Greek letter lambda. Besides looking cool, they’re used all over the place.

Code Sections

Code-heavy sections are marked with , the angle brackets commonly found in markup languages like HTML.

Protip: You can view this page’s HTML in Chrome or Firefox by right-clicking and selecting “View Page Source” from the menu.

Review Sections

Review sections are marked with , a big ol’ pencil. Each tutorial prompts you to synthesize your learning by figuring out how to explain the topic to a beginner. The practice is based on a technique developed by physicist Richard Feynman.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.