Thursday, November 07, 2013

Making Magic With Software

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.image

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. Smile 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.

Of course I being a software guy myself had to write my own version. image

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.


Garth said...

Just what I need, another good idea. I am at war with the Good Idea Fairy right now and you are just giving her more ammo.

Alfred Thompson said...

Glad I could help Garth. :-)

Greg said...

Howdy Alfred,

Greg Russell from UT here (, long-time follower, first-time commenter. We have developed a year long CSP curriculum that we are currently revising, and I'd love to use your card flip program to help teach encoding schemes! Are you willing to share? :)


Alfred Thompson said...

An executable version of my program can be found at

Chris said...

What a fantastic teaching tool!

Jordan Charlie said...

Your site contains much other information that gives more knowledge and many more ideas about the topics you have given in your site.
birthday ideas for kids