Making first day fun
We kicked off a new semester of MATH 265 - Introduction to Programming in Mathematics with a bang! Or, more specifically, with peanut butter and jelly sandwiches. For a couple of years now, I have been trying to start my programming classes with a computer-free exercise which will, on the one hand, mitigate the anxiety the students have towards learning computer programming; On the other hand, it will introduce students to algorithmic thinking. I have experimented with an exercise where students were working in teams to write instructions, which will take a visitor to Boise from their hotel, through a few landmarks, to some destination. Then, the groups would switch the instructions and try to follow the path while analyzing the good and bad aspects of the instructions the other team provided. I provided a physical map of Boise to focus students’ attention away from screens and computers. The exercise worked well, but I wanted to make it even more fun, so have searched for different ideas.
Peanut butter jelly time!
I stumbled upon Exact Instruction Challenge and CS50 on youtube and decided to recreate the experience from Harvard’s Intro to computer science course at Boise State. I followed the CS50 video and asked two student volunteers to follow the instructions from the rest of the class on how to make a peanut butter and jelly sandwich. Our TA, Brian Kyanjo, was taking notes of the input data (bread, peanut butter, jelly, a knife, and a plate), desired outcomes, and steps the class instructed us to take (I was one of the PBJ-makers).
PBJ makers hard at work
The learning objective was to illustrate how imprecise instructions may lead to confusion. Since computers do not (yet) have the intelligence and cognitive abilities to interpret what we mean from context, it is crucial to be precise when giving instructions to a machine. I was also trying to get students into an algorithmic thinking mindset, where we must break a problem into small manageable tasks. Another goal was to relieve many students’ anxiety toward technology in a programming class (this is a mandatory course for all Math majors, so not all of them are technically minded). And boy, it worked well!
Happy faces
First, we had a lot of fun, as evidenced by the smiling student faces in the photos. I could feel the atmosphere change when I said we would do a hands-on experiment (in a college math class - outrageous!). The students initially did not know what to make of it, but once I pulled out bread and jars of PB and jelly, they looked intrigued, perhaps amused, yet still uncertain about what was happening. They tried to provide a few instructions, and we got a lot of giggles from me holding the knife on the wrong side or intentionally excruciatingly exact following their commands. The students quickly picked up on the rules of the game and figured out that they needed to be precise. The best was yet to come, however.
Anchor for the course
The best part of the exercise was the discussion and conclusions phase. The students organically developed some programming concepts like repetitions and functions. They noticed that we had repeated specific steps on our list for different inputs - we had to spread the peanut butter on one of the bread slices and similarly spread jelly on the other. They noticed we created an extensive list of steps that we could quickly improve by removing some points and clarifying the others. We have also discussed the need for precision and efficiency. Those observations, which likely will stay with them due to the lighthearted nature of the exercise, will allow me to anchor any future explanations of advanced concepts by referring to our PBJ shenanigans.
In the future, I will repeat this semester opening whenever I teach this course next. I will also look for other ideas to make the classes more exciting and memorable. One idea I want to use is an exhibit of recursively created fractal trees in Boise State Luminary. Stay tuned!