teaching machines

Icosahedron, Part 2

Several hours later, I have now found the difference between an octahedron and an icosahedron. I had been stuck on generating the coordinates of the octahedron. A little reading and experimentation directed my attention to the cube circumscribing the icosahedron. The way I’ve set things up, its vertices are all [±u, ±u, ±u], where u […]

Icosahedron, Part 1

One of the important consequences of the internet is that we can now talk freely about icosahedrons. We’re not bound to the interests of those that are geographically near. We can love pretty much anything and find a community that shares our passions somewhere online. So, this morning, while I was trying to get other […]


Instrument #2 in my foray into Pure Data and Arduino is the tiangle (sic). We’ll use a potentiometer to slur the emitted pitch up and down. When musicians play notes with no break between, we call that a tie. Our instrument will tie together different angles or rotations of the potentiometer. Thus, tiangle. Technically, ties […]


On Christmas day, my 9-year-old handed me an envelope. In it was his gift for me: his two best hexaflexagons. What’s a hexaflexagon, you might ask? Vi Hart will tell you: She has more videos and patterns. My son and I wanted to make our own pattern like the fidget spinner one she provides, but […]

Generating Cool Circuits

A few years ago my mother gave us this Cool Circuits puzzle: If I chain together the individual links into a complete circuit, a small fanfare of lights and sounds is produced. That is, it used to work that way. Moths and rust have had their way with the internals. There are metal wires running […]


Random walks have fascinated me the past few months. As someone who plans weeks and months ahead of time, I suppose I’m compensating a little. They let me take a walk on the wild side. Doo doo doo doo doo doo doo doo doo. But pure wildness isn’t very interesting—at least not for long. It […]


This summer I’ll be helping high schoolers make musical instruments in a three-week long summer camp. This is how we’re describing the camp: Randomly pick a technology. Chances are that technology is either used to automate or to entertain. But computers are not just appliances for making our lives easier. Because they are programmable, we […]

CS 1: Final Exam

See the PDF.

A Selection of Commit Messages

It’s that time of year—that time when I read and share what my students have written throughout the semester for Git commit messages. There were 130 students and 7 homework assignments in the class, which makes for a lot of messages. I have pruned them considerably. The ones I have kept provide a reasonable snapshot […]

CS 1: Lecture 38 – Binary Search

Dear students, We close our semester today with a discussion of finding things quickly with the binary search. We will illustrate the algorithm and implement it in the context of a dictionary/spell-checker. Earlier in the semester we discussed the linear search. Let’s revisit that algorithm first by locating a spice in our spice rack. What […]

1 2 3 4