Additional profile information on Alfred Thompson at Google+
Yesterday I gave one of the keynote talks at Stevens Institute of Technology’s second annual high school computer science workshop. Ursula Wolz, The College of New Jersey, was a tough act to follow with her great presentation/demo on Scratch. Scratch is one of my favorite teaching tools and I learned several things about it that I didn’t know. And then it was my turn. I did have a wonderful time at this event. I had the chance to talk one to one with a number of teachers which was great. I especially enjoyed putting some faces to names of people I had exchanged email with recently. Also several people were nice enough to tell me that they read this blog which is always exciting to hear.
A lot of people don't realize how much work (including paper work) is involved in field trips so something like this is always an effort for teachers. It is far from a "day off" but really means more work. So thanks to all of the teachers who put in the extra work to take their students on a field trip to Stevens.
During my talk I mentioned several products/tools that I think are good ways, or at least fun ways which makes them good for me, to learn more about programming. I have to send the nice people at Stevens a list of links so I thought I would post the list here as well.
Popfly - is one thing I have written about before. My hands on lab which I mentioned during my talk is posted here. (More of what I have written about Popfly here.)
Popfly Wiki for tutorials and other helpful information
RoboChamps – Online, Virtual Robot Competition – This competition is run using Microsoft Robotics Studio.
XNA Game Studio Express – Creating games using C# and a powerful set of libraries and other resources. (See here for a bunch more that I have written about XNA. Or start here for a bunch of links I put in one post.)
Speaking of robots, in the panel discussion IPRE came up. IPRE (Institute for Personal Robots in Education) is a joint research project with Georgia Tech and Bryn Mawr that uses simple inexpensive robots to teach programming.
Ironically one of the problems teachers can have with teaching about optimizing programs is that computers are a) so fast now and b) getting faster all the time. Students often do not see the need to create more efficient algorithms because they assume that what they have is fast enough and if it isn’t then the next computer they buy will “fix” the problem by being faster. And truth be told with most of the toy programs we are forced to use in a classroom situation (not enough time for really large complicated projects) things do work out that way. But real life is more complicated then that. So we really owe it to students to discuss code optimization (and refactoring which is closely related.)
I’ve had a couple of conversations with students over the years that basically took the form of “yeah it is slow but it works and I’ll never need to run it again.” There is some logic to that of course. I once had a program that I ran maybe once a week. I had thrown it together in a hurry to meet an immediate need. Once I realized I would need it more often I also realized that it was very inefficient. I saw several ways that it could be a lot faster. But I did some math. It took about a minute too long (it could possibly run in seconds) and it would take me at least an hour to re-write it. Was I going to run it 60 times? Probably not so where was the payback for my time? I did get a new computer shortly there after which was fast enough that the run time was cut in half so now the payback time was 120 more runs – so it would really cost me more time to fix then it would save me. That sort of math takes place more than many would think by the way. But sometimes it comes out very differently.
Sometimes the issue is around applications that really need to be fast. Other times it is around hardware that has some limitations that have to be taken into account because changing the hardware is not an option. Cy Khormaee recently talked to Paul Oliver of Legendary Studios to come up with a list of optimizations that should be taken into account when creating games for the Zune device. The Zune was designed as a music player not a game device. Since XNA Game Studio 3.0 (now available in preview) lets programmers create games for the Zune this creates an interesting learning opportunity. Specifically the hardware limitations have to be taken into account if one wants to create a game that performs well enough for people to really enjoy. This is an opportunity to have a real “teachable moment.” The list Paul and Cy have makes for a good read and the start of some interesting discussions.
Also on performance, Dare Obasanjo, who deals with some very large data intensive social networking applications, took a look at some scaling problems with Twitter recently on his blog. He examines how basic design choices can make the difference between an application that really works and one that collapses under the weight of input/output needs. This is a discussion worth reading about as students consider that many of the most important applications revolve around how data is saved and retrieved.
I have this general policy that when I don’t have anything to say I don’t say anything. OK I admit that I have trouble sticking to that policy sometimes. And at the same time I tend to be rather opinionated which means I often have a lot to say – which may or may not be a good thing. And while I do occasionally editorialize on this blog I have been trying to be more objective and resource sharing in my blogging here. But I find myself more and more frustrated with the state of online censorship within schools. So I’m going to rant a bit.
Do we really believe that students in school should be seen and not heard? Do we really believe that the only means of communication students should have with the world (or their friends) is voice communication in strictly supervised situations? Do we really believe that we are doing students favors by not letting them reach the social aspects of the Internet? Do we really believe that online chat and discussion sites are pure evil?
A couple of events have brought this home lately. First was a couple of talks I gave as schools recently. One at a college had a couple of my demos not work because the web sites were blocked. The students were unsurprised and their response indicated that they thought it reflected poorly on the college than on me. A week later I gave a workshop at a high school and the tech person had done a good job of checking the sites I needed (even without me asking) to whitelist or otherwise unblock them. Of course the unplanned part of my demo that tried to use Facebook died at the firewall.
Then last week a teacher reported that the RoboChamps web site was being blocked at his school as a “social networking site.” (details here on why I thought it good for schools) Seems weird to me but, well, what do I know? I wonder how many online help forums for technical and other educational discussions are being blocked as social networking sites? Speaking of social networking blockage, this morning teachers on Twitter were talking about ways to get to Twitter from school when Twitter is blocked and Netvibes is now blocked.
I’m seeing a lot of interaction among teachers on Twitter these days BTW. (I’m at http://twitter.com/alfredtwo if anyone is interested) Students still seem to be oblivious to Twitter though. I’ve heard a lot of tails of blog sites being blocked at schools as well. Given how isolated many teachers, especially tech teachers, feel in their schools this interaction online seems like a great thing to me. Something to be facilitated and perhaps even taught rather than something to block at all costs.
Why is social networking seen as automatically evil these days? Evil sexual predators? Come on – we know that students are more at risk at home than online. By about an order of magnitude. Is it the distraction? Sounds like a classroom management problem to me. Well they might put up something bad – what ever bad means. Are they really more likely to be “bad” at school then in the privacy of their bedrooms later that same day? I don’t think so. Aren’t we really missing some good educational opportunities?
There are teachers doing creative and inspiring projects using blogs, wikis, Skype, and other web 2.0 tools. If kids are going to create videos for YouTube why not have them create and share educational videos? If they are going to write about their feelings why not use online journals (perhaps inside a school firewall) and other online publishing tools to let them create for the media they live in? Why can’t we take advantage of the teachable moments (and tools) of student activity rather than let them mess things up on their own?
I blame administrators as much as anything. Followed closely behind by parents. People who don’t understand the web, don’t want to understand the web, and are just looking for the easy way out to make it look like they are doing something. Oh they are not all like that. There are many great innovative administrators and enlightened parents. But they are not the ones doing all the yelling and screaming. In the end it comes down to making life easy and appearing to do something.
One last comment, the students are blowing through the filters as if they were not even there. Anyone who believes otherwise is only fooling themselves. Do you think students are not laughing themselves silly at getting to sites they know their teachers can’t get to? How much does that do for teaching respect for teachers, schools and authority in general?