Additional profile information on Alfred Thompson at Google+
Well a little late in the day but here is my latest collection of links Twittered that I hope you will find interesting and/or useful. As always I welcome followers on Twitter @alfredtwo.
From my friend jean-Luc David (@jldavid) This article on Bill Gates and Steve Ballmer being optimistic about tech recovery.
I’ve long thought that middle school was a key time in a student’s life. Here is an interesting editorial in the New York times about the drop out rate. One key quote "Researchers can now predict as early as sixth grade which students are likely to leave school without diplomas." Could introducing computer science earlier help? Maybe.
From the amazing Kathy Schrock (@kathyschrock) Here is a link to some copyright guides for teaching staff and students about copyright and intellectual property.
What is the most successful computer game in history? From @MSWindows a link to an article at TechRadar that claims the most successful game ever is Minesweeper
Looking for free books? From @MicrosoftPress: Just a reminder: May's free e-books (on Terminal Services & defect prevention) shut down on May 27
New post from @coding4fun Rook to bishop, checkmate: Ever wonder how to build a chess game? Jacques Fournier has built a computer chess game with source code available.
From @MSLearning: Comes an update on Dunbar High, Microsoft Certified High School
Dean Kamen is the founder of FIRST Robotics and an amazing inventor of all sorts of high tech medical and other inventions. His house is quite unique and not open to the public. Recently the local New Hampshire TV station @WMUR9 had a chance to visit and posted pictures labeled Dean Kamen's Home A Mix Of Marvels, Living Space : A rare look inside the architectural marvel Sometimes geeks live very well. :-)
I found out that there are still openings in Mark @guzdial 's summer workshops. Not sure how that is possible because I know they are good workshops. Go sign up people! They're free!
My friend Clint Rutkas (@ClintRutkas) and I are always going back and forth about the differences between C# and Visual Basic. Recently Channel 9 (@c9) posted an interview about C# and VB growing together.
From @Microsoft_Gov and @marketwire Girl Scouts & MSFT Windows Launch Online Safety Campaign: Teens Are the Teachers
Some people think that Microsoft and the Linux Foundation are always on opposite sides of everything. In one case at least they are on the same side of a licensing issue.
Earlier in the week Vicki Davis posted a list of interesting sites on her blog that included one titled “How to hide files in JPEG pictures.” It’s an interesting little scheme that basically involved hiding one file (a compressed ZIP or RAR file) at the end of a JPEG file. This is not encryption by any means. It could be considered a form of steganography though. I think this is an interesting discussion opener with students. Many students are fascinated by the ideas of codes, ciphers and other forms of secret communication. Perhaps now that the AP CS exam is out of the way this might be useful for some classes.There are a couple of lines of discussion I see with this example.
The first is of course Steganography and one can discuss the various forms that takes as a general interest topic. More specifically to computer science though is the idea of how data is stored in files. What are the parts of a file and how does the system know what to do with it? Windows and some other operating systems use the file extension as an indication of what sort of program or operating system function should act on the file. Other operating systems use file header data. I believe that the Mac OS does this or at least did at one time. What are the pros and cons of each?
And there is an opening to discussing what is inside a file. Perhaps even opening a file as an ASCII text file. PDF files are interesting as a lot of the header data is human readable. Or maybe getting a binary dump/print out of the header for a file. What is human readable? Can students determine patterns that let them figure out what sort of application created different files? Of course a lot of files will be pretty much undecipherable without technical documentation but it might be useful and interesting to speculate (and research) on what sorts of header information files do keep.
One could also discuss how this sort of data hiding might be done more efficiently or perhaps with a greater sense of security. Some compression tools allow password protection. How good is that protection? A lot to think about.
Any way it got me thinking and I hope it gets someone else thinking. Now I think I am going to write a new data dump program just for the fun of it. Haven’t done that in years but this has given me some ideas. More on that later.
Late edit: Found a link on Twitter today do an article on doing steganography in Python from Georgia Tech's Media Computation class.
In yesterday’s post I named the “GoTo” statement as basically a bad thing. To my surprise this started a short Twitter discussion and also came up in the comments. So I did a bit more research. I found this fairly balanced article called “Using gotos” by Steve McConnell. And Mark Guzdial twittered a link to an older post he wrote titled “Plea to Language Designers: Bring Back GoTo!” Wikipedia also covers the issue fairly well with a bunch of external links. So clearly there are multiple sides in this issue. I made the comment in Twitter that this issue is far from settled science.
By settled science I mean that there is still a lot of discussion going on. Arguably there are cases where GoTo statements have a place. One of the things that Mark Guzdial pointed out in twitter “When non-programmers define processes, they use goto's. GoTo is natural.” There is a lot of truth there. Of course one could argue either for or against what is “natural” and people do. Another thing to concider is how an understanding of GoTo helps with understanding other concepts. Ian Bogost (@ibogost)Twittered “GOTO made understanding machine branches easy.” Let’s face it most assembly languages could not function without the equivalent of a GoTo statement!
Most programming languages do include a GoTo statement of some form. Why? Well the discussion comes up every time and people ultimately decide to include it and yet at the same time hope people will not use it. Even the venerable Programming Proverb 7 says “Avoid unnecessary GOTO's” and not avoid all use of the GOTO. I suspect that this is a debate that will go on for ever. Not that there is anything wrong with that. I think I learn something new every time it comes up.