I found this comment to my Enigma post from Alfred Thompson interesting and it took me back in a couple of ways.
I have had students program Caesar cyphers which are of course simple rotation cyphers. This reminds me – do you remember ROT-13 which in the early days of the Internet was used to hide spoilers of all sorts in messages? Seems like everyone had a piece of code to encode or decode ROT-13 back then. Today’s kids will probably never know this trick.
A couple of things. I absolutely remember teaching cyphers to students and, of course, ROT-13 was one of the mainstays. As always with every program I used in class as a demonstration or a problem that I assigned for solution, I wrote the code myself. It gave me a sense as to how long it would take to write and also a chance to make sure that it didn’t use a feature or technique that hadn’t been taught.
The second memory was a conversation with a principal about why Computer Science should be offered to students.
Hasn’t every program been already written and we’re just re-inventing the wheel?
It lent to an interesting conversation which also could be applied to just about any subject area. It also illustrates a program that today’s Computer Science teachers face. While not every program has been written, so many that you’d might actually use in class have and the connected student is only a moment away from copying and pasting the code.
In the case of Alfred’s reference to ROT-13, there’s even a website with that name!
The algorithm is readily available anywhere as well as the code. Heck, just got to this website and view the source of it to see how the developer coded it.
What’s a teacher to do?
- I know that many are constantly creating new programs or variations on old faithfuls that hopefully don’t exist online
- Changing their philosophy of marking – I know that myself, the actual program was only worth so much and the balance of the marks came from external documentation to prove to me that the student understood what the program did
- Part of the problem to be addressed hinges on BYOD where students bring in their own devices; that makes it difficult to prove it’s original work but sitting next to the student and asking for a modification to the code shows whether or not the student understands
- Use a hosting/sharing feature like GIT or Scratch repository to get to the reality for so much of what happens today – modifications to existing code (which can be more difficult that writing your own from scratch at times)
I’m sure that Computer Science teachers can add their own techniques to this list as well.
So, yes, the classics and the standards may well have been already written but that doesn’t mean that we can’t learn and grow with them. There are always so many ways.
Plus, and here’s the biggy – there’s always the euphoria one feels when you get a program, any program, that you’re writing to run successfully!