Additional profile information on Alfred Thompson at Google+
The Microsoft Robotics group released the new September CTP (Community Technical Preview for those of you not up on the latest over used three letter acronym or TLA). What's in it in this release that has me so excited? Well a couple of big things.
One is some additional hardware support including the Roomba from iRobot (using a Blue Tooth Interface). That means I have to go buy some hardware to upgrade my Roomba so I can try it out now. Plus there is support for a number of Phidgets interface boards, sensors, and actuators. I have some of those to try out. Oh but that isn't all. No sir, not by a long shot.
New tutorials (would you believe using MSN Live Messenger to Control a Robot), new simulation improvements, programming and services improvements and, well, more than I can absorb at this hour. Check it out.
Seriously I don't expect that high schools should teach ten languages. I'm not sure that its a good idea for universities either. But I am a strong believer that someone who plans a career in software development or other computer science related fields should know more than one or two programming languages.
I don't see this as a "learn this language to get a job" logic either. Oh sure that can help but the programming language of the day is a fleeting thing. Where are the FORTRAN and COBOL jobs of my youth? Fortunately there are still BASIC jobs but look how that language has changed. I found that I had to learn a new programming language every two to three years just to keep pace in the field. Having that grounding in multiple languages really helped me pick up the new ones.
The important concepts of different languages are also different. Knowing languages with different features helps to understand them better. Want to understand late binding? Python and Visual Basic .NET are good languages to know for that. Want only early binding? C# and Java are the way to go. Recursion something you really want? Almost all languages support it but Scheme makes it an integral part of the way things are done. Want to really get into regular expressions and parsing? Perl may be just what the doctor ordered. The list goes on and on.
Eweek has a list of "10 Programming Languages You Should Learn Right Now" that is pretty interesting. I know about half of them and can read most of the rest. A lot of languages I used to know very well and used a lot earlier in my career are not on the list. Python and Ruby/Ruby on Rails are high on my list to learn better. I think the interesting thing in the list is not so much the languages as the reasons that are given for them being important. They are all a good bit different. Some are Internet/web development tools primarily and some are mostly applications development. C# is seen as essential if you want to develop on Microsoft platforms. Java if you want to develop on non-Microsoft platforms. To me it would seem to be a missed opportunity not to learn both.
One thing I would add to the list that Eweek doesn't show? Assembly language. Everyone should learn on and be forced to use it for something real at least once in their academic career. If that doesn't make you appreciate higher level languages I don't know what will.
I read a blog by Jeff Utecht that reminded me of several discussions of ethical behavior I had with students. The key point in his post is this "How do you make them understand, when they have grown up in a culture in which free music has always been available via the web." That is a huge part of the problem. Not just music either. Students today have grown up in a world where anything that can be easily copied is considered fair game. I had a student say "If they don't want me to copy it they should have made it hard to copy." Ah, yeah, right. The same student told me that if people leave their doors unlocked it shouldn't be a crime to enter the house. Oh, but if someone entered his house while it was unlocked they would feel free to "beat them up." Oh yes the double standard is not strictly the purview of adults.
But it gets worse before it gets better. The law around entering a house is relatively clear - crystal clear compared to rules around copying media. Jill Walker has a list of different activities around media that shows the differing opinions of if the activity is legal or not from different organizations. The list is from Norway but the rules are no more clear in any other country. What is legal and what is not when different groups say the law means/says different things. What is the poor teacher to do?
Jeff found the situation scary. I must confess that I found similar conversations equally scary. Students are growing up in a time when rules and ideas about property are different, ambiguous (at best), and confusing. Computers and the Internet make moving data (and music and video are are heart data) easy. It doesn't cost much to copy or use data in ways the creators of that data intended. Mark Cuban, who is very involved in media content creation) has a discussion in his blog about YouTube the popular video sharing web site and how it is doomed because of all the illegal content there. Is he right? Hard to say but he is a pretty smart guy who probably hires a lot of good lawyers to advise him. If only teachers had some good advice that they could give their students.
I worry about the future of content creation in this environment. Do we really want a world where no one can make money creating content? Do we want book writing, TV/movie creation, and music making (writing/performing) being solely the area of the amateur? Oh sure life performances will probably remain a pay-per-view event but is that all we want? Sure we complain about actors making millions for a movie or hundreds of thousands of dollars for a TV series. But if the TV stations and movie producers can't make the money to pay those people who are we left with to perform for us? What will the world be like if people can't make money writing, singing, or performing? I have no answers but a lot of questions.
I'd be interested in hearing how students and others answer these questions though.
[Cross posted in my Social Computing blog.]