It was the last week of the quarter, the end of CSE120 and an extremely fun week. Because of the 42nd SIGCSE conference in Dallas, I missed Friday as did Susan, and so the final class was canceled by a vote of the students.
Narrative on Week’s Goals
Monday’s Encryption and Steganography lecture was one of the high points of the term, a big finish.
Calendar Entries for the Tenth Week
Lec 7 March: The lecture introduces encryption, briefly touching on the Caesar cipher, Private Key Encryption and an overview of Public Key Encryption, and then moves on to Steganography. Motivated by an example mentioned by Owen Astrachan, the material is taught by example wherein a photo, the guest is embedded into a host photograph to hide it. Because it is a way to ship pictures under the noses of repressive governments, I use a photo of a jubilant crowd in Cairo’s Tahrir Square as a guest photo,
and a tranquil photo of two men fishing on a foggy morning
as a host. After the process is explained, it is implemented and embedded picture is compared with the original. Then the class lines up for a class photo, which becomes the guest for another embedding.
Lab 8 March: Lab 08 is a simple XML styling exercise using XSL. The point is to solidify the ideas of using XSL as a styling agent for XML in order to support the final assignment. One student came to office hours afterwards to get help, but generally they had no difficulty with it, and most finished quickly.
Lec 9 March: This is not a lecture, but rather a walkthrough review of the second half of the term in preparation for the final.
Lab 10 March: No formal lab exercise is planned, but Brandon is on hand to help with the assignment.
Lec 11 March: Canceled due to the teaching staff attending the SIGCSE’s Symposium on Computer Science Education.
And How Did It Turn Out?
Monday’s encryption/steganography lecture was a terrific success. Students were skeptical when I said I would hide a photo in another. The idea of first restricting the photo to two bits per color per pixel worked well, leading to a discussion of the differences. Then, after the embedding the two images were compared – there is no apparent difference. But, because the original used jpeg representation, but and the embedded copy used png representation (to avoid the lossy compresson) there seemed to be a slight shading difference. I’m guessing that the difference tricked one student into claiming that there was a visible difference. This made the tineye.com searches for the host and the embedded photo, which come out the same, a compelling experiment to do. There was a reluctance to come up for a class photo (everyone’s wearing their “finals week” sweats), but in the photo the class is smiling, so I assume it wasn’t too “elementary school”. We embedded the class photo, and extracted it! With a little bit of time left, I passed out the student evaluation forms for them to critique the class.
After class I sent everyone the embedded class photo and told them how to extract it.
Tuesday’s lab apparently achieved its goals, because on Wednesday the students clearly understood the task.
Wednesday’s review, like its counterpart at the end of the first half, left the class in a grim frame of mind. It’s been a long time since I’ve had to explicitly take a test, but this seems odd. I would think it would be positive, because I mentioned lots of stuff that wouldn’t be on the exam, but apparently, I left too much stuff on the list that might be on it.
Thursday’s lab time turned into office hours for Brandon and a few students sought help.
Friday was a free day, though they still had to do the AIS.
The class ended with a bang rather than a whimper. Steganography being so impressive, it was a good way to remind them that they had learned a lot, and that the magic of computers and networks had been revealed, only to be replaced with a more fundamental kind of magic. The public doesn’t even know about recursion or steganography, but they do. Perhaps they seem magical to them, too.