My friend and fellow teacher Tom Indelicato and I are teaching a new course this year. We are calling to Explorations in Computer Science and it is patterned somewhat after the larger Exploring Computer Science course developed in Las Angeles. One of the activities Tom has been using for a couple of years is from the CS Unplugged materials that involves introducing the idea of parity checking called Card Flip Magic.
Now in the CS Unplugged site you will see this exercise demonstrated using cards of various types. It works very well that way. My friend Tom is a bit of a geek though and when he first started thinking about using this exercise his thought was “how can I do this easily with the white board in my classroom since the layout of the room doesn’t lend itself to using cards.” Well more or less that is what he thought. So being a software guy he wrote some software. That’s a screen shot of Tom’s program on the right.
The way this works is that the “Click to Begin” button is clicked and the screen is filled with semi-random colors. Green and Gold are our school colors BTW. A student volunteer comes up and with the instructor not looking changes one of the boxes from green to gold or gold to green. The instructor returns and announces which box was changed. This seldom fails to get interesting reactions from the students. It looks like magic. Especially if the students are allowed to set a new random pattern while the teacher is not looking.
The left column and the bottom row are parity digits based on the other 64 values on the form. Knowing this makes finding the changed box fairly easy. The kids love it and we let them spend some time in pairs “solving” the puzzle themselves. It’s a great way to teach the concept.
They’re obviously fairly similar. Although mine uses a menu where his uses a command button. And mine is written in C# and Tom’s is written in Visual Basic. There are other internal (and invisible to the user) differences as well. And thinking about that lead me to my second idea. Wouldn’t this make a great programming exercise/project for my programming students?
Loops, arrays, decision statements and problem solving all in one. And just think how well they will understand parity checking when they are done! I want to see how they decide to solve the problem as well. There have to be some creative ideas out there that I haven’t thought of.