This is the first year that I’ve taught AP Computer Science Principles, and it’s been quite a bit of fun. For the past few years I’ve been teaching AP-A and Data Structures which are both very code heavy. It’s been fun to back away from the computers and spend time on concepts outside of coding.
Programming your classmates
This is a branch from an ice breaker activity that I’ve done for the past few years. In that a student comes up to the front, introduces themselves and then explains to the other students how to draw a shape. Students generally have fun with it, but the drawings rarely match. And that’s exactly what’s supposed to happen.
For this activity I give each student a copy of one of the PDFs linked below. They draw a design in the box or grid using only straight lines. Students can make it as complicated as they want.
After they’ve drawn their design they’ll write out instructions on a separate sheet of paper. Then, they trade instructions with another student and see how close the version following the instructions matches the original design.
I had intended for each student to trade with one other student, but they drew and wrote instructions much faster. So we ended up each trading 8 or 10 times during the period.
How’d it go?
I think it went pretty well. Started out slow with each student staring at their own paper writing out instructions. And it was still pretty quiet in the room during the first round of trades.
By the end of the period we had a group almost come to blows; okay, not really, it was mostly fun and laughter; because one student wasn’t coming up with the same drawing from a set of instructions. Worked really well as a bridge into the fact that computers are stupid machines that will do exactly what you tell them to even when it’s not what you think you told them to do.
One thing that I would change for next time is not to use a grid for the drawing. Each sheet had a grid with half inch squares, and every student used the grid lines as part of their drawings. It made the instructions a little easier since it was easy to measure. I’ve uploaded the updated version with just an empty box that I’m planning on using next year.
First goal was to get students writing out “code” without actually writing any code. They programmed their friends, and I think it worked perfectly for this.
Also wanted a little frustration when students didn’t come up with a perfect match from instructions. It was even better when multiple students came up with different drawings from the same instructions.
And last, I wanted to get the students writing. There’s been a push to get students writing in every class. This was a good way to get some writing, while still being a fun activity.
Feel free to download and use these in class. There is a version with a half inch grid and a version with an empty box to draw in. Both have two pages. One for the “programmer” to draw their shape and another for the “computer” to draw from instructions.