# teaching machines

## Hi, I'm Chris.

And I teach machines to do things. Also, I teach people how to teach machines at James Madison University. Collected here are my course materials, research notes, and students' work.

## Recent Posts

## CS 240

- Exam Preparation
- Review, Part 1
- Lecture 23 - Graph Traversals
- Lecture 22 - Graphs
- Lecture 21 - Huffman Encoding
- Lecture 20 - Heaps Continued
- Lecture 19 - Priority Queue
- Lecture 18 - Balanced Tree
- Lecture 16 - Binary Tree
- Lecture 15 - Hash Table
- Lecture 14 - Hashing
- Lecture 13 - Queue
- Lecture 12 - Stack
- Lecture 11 - Doubly-linked List
- Lecture 10 - Linked List
- Lecture 9 - List
- Lecture 8 - Pause
- Lecture 7 - Quick Sort
- Lecture 6 - Merge Sort
- Lecture 5 - Insertion Sort
- Lecture 4 - Selection Sort
- Lecture 3 - Searching
- Lecture 2 - The Cost of Computing

## Twoville

Twoville is a programming language for generating two-dimensional SVG images that can be fed into vinyl or laser cutters. It also supports animation at the syntactic level.

- Flashlight Penumbra
- Shaping with Code and Mouse
- Programming with Time and Direct Manipulation
- Heart Knot
- Day 5: Lasercut Design
- Day 4: Knots and Functions
- Day 3: Foldables and Loops
- Guide 2
- Day 2: Turtle Geometry and Curves
- Guide 1
- Day 1: Frankenshapes and Polygons
- Twoville at Bridges Math Art 2021
- Fabrication Summer Camp: Day 5
- Fabrication Summer Camp: Day 4
- Fabrication Summer Camp: Day 3
- Fabrication Summer Camp: Day 2
- Fabrication Summer Camp: Day 1
- Perseverence Logo
- Dittos in Array Literals
- Twoville Limerick
- Rotating Checkerboard
- See more...

## FML

FML is a utility that generates a sculpture of one's First, Middle and Last initials. Find the C, R, and J in the sculpture above. Make your own!

## Rainbox

Rainbox is a little puzzle game I wrote for my son's 8th birthday. A pixelated, rainbow-colored box has broken apart, and you must put it back together.

## Tangle

Tangle is a tool I wrote to help my eight-year-old son think about multiplying through a spatial lens.

## Plaidform

Plaidform is a design tool for making plaid patterns. I wrote an earlier version of it for an introductory programming course, but it proved to be not so introductory. This most recent version is a gift to my youngest son, who weaves our family together.

## SLAI 2021

The Summer Liberal Arts Institute for Computer Science at Carleton College introduces computer science and college life to high schoolers through three weeks of courses, research projects, and community activities. My course examines computer science through the lens of geometric modeling.

## Madeup

Madeup is a programming language for making things up—literally. Programmers trace out shapes algorithmically and then turn them into solids that can be printed on a 3D printer.

## Deltaphone

Deltaphone is a blocks-based programming language that extends the relative movement of turtle geometry into music. Composer-programmers express their tunes using intervals or chromatic or diatonic offsets.

## Earpiece

Earpiece is a tool for composing sound effects. You shape the frequency and amplitude of an effect using mathematical functions sequenced—or pieced—together. Go make WAVs.

## Trux Falsy

Trux Falsy is a game for practicing boolean logic. You should play it. The source code is freely available. A lot of it was hastily written in Peru.

## Flexercise

Flexercise is a game for gaining facility with the Flexbox system for layout in CSS. Play it. The source code is freely available.

## Unduo

Unduo is a two-player Snake game built by my sons at the keyboard and me by their side. But there's only one snake. Two heads are better than one, right?

## Crative

Crative is a game in which the player builds structures out of crates to solve certain mathematical and logical puzzles. My sons and I have been trying to build a game per year. This was our 2020 entry.

## Totally

Totally is a tool I wrote to help my five-year-old son think about adding through a spatial lens.

## Feeds

Want an RSS feed of these posts? You may want to subscribe only to non-lecture posts. Or maybe you want them all.