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.