teaching machines

Grandma Radially

My Stella homework never saw the light of day this semester. Students were to implement a kaleidoscopic drawing application. Pixels plotted in one wedge were mirrored around the radial axes of the image. I felt that I would have had to provide too much scaffolding code for students to feel ownership over the project, so […]

Spec Adventure

The last few weeks of our introductory program class focus on objects. For a lab exercise, students design a Room class to support a text adventure game. Each Room has a description, four Room neighbors, and whatever other state the students need to support their interaction. One of the students designed an adventure that featured […]

College Humor

Office hours was just about over, and the line that normally piles up outside my door had evaporated bit by bit till there was nothing left but a peaceful hallway. But then—footsteps. A student appeared at my door, said she had a joke to share, and then launched a crumpled up piece of paper at […]

== true

When I was a junior in college, I lost a point on an exam because I had code like this: if (isTall == true) { … } Dr. Wallingford showed me with his red pen that == true is completely unnecessary. This is quite clear when you consider the truth table: isTall isTall == true […]

The Before Loop

My students last week invented the “before” loop. We won’t talk about loops in class for a while yet, but they waste no time in accidentally spawning them in unexpected ways. See their latest cleverness:

Checking Slack Participation with Ruby and OAuth2

A couple of years ago, a student asked me if I thought MOOCs were going to make universities obsolete. I said no, because in my experience of taking MOOCs, one thing that didn’t scale was the number of people answering questions in the forums. No matter the class size, there seemed to be about 5-10 […]

Job-shadowing Mr. Kurt

Today I job-shadowed Mr. Kurt, a 4th and 5th grade teacher at the Chippewa Valley Montessori School. I am not looking to become an elementary school teacher. I just wanted to see how someone spends the entire day with such undeveloped brains and bodies. As a university professor, teachers of this age group instantly have […]

Rule #37 for Teaching Computer Science

Never use placeholders. For example, never tell students to change directories with a command like this: cd /home/USERNAME Students will report back that the directory /home/USERNAME did not exist, and they were therefore not able to do their homework. Do not describe an image file format to students like this: P1 WIDTH HEIGHT … Students […]

Code Scrambler

Some of the most engaging learning I’ve ever experienced was in high school Spanish class. What magic did Mrs. Lee possess that made instruction so enjoyable? She had us play countless games. I try to emulate her foreign language classroom when I teach folks a new programming language and am therefore always on the hunt […]

Blocks as a Gateway

Since starting work on Madeup, I’ve been trying to read everything I can on procedural design. My most recent discovery is John Maeda’s Design by Numbers. The author makes it his mission to teach programming principles by drawing on a 100×100-pixel canvas with a very simple language called DBN. In chapter 6 of his book, which discusses […]