Additional profile information on Alfred Thompson at Google+
I am actually old enough to remember when Edsger Dijkstra's letter Go To Statement Considered Harmful was a key influencer in the move to structured programming. My professors all taught that the Go To statement was bad and it was effectively banned from use in our course work. That was a lesson I carried with me for decades and something I taught to my students as well. In general I think that was a good thing. it did lead to a lot of discussions over the years but I think those discussions were a good, perhaps essential part of the learning experience. In the long run it is good when students challenge teachers to answer more completely than “because I say so” or “just because.”
Today program safety and security has become more important than ever before. Companies that are looking to make their code better where better means things like reliable, safe, maintainable and secure are taking close looks at where problems occur. And they are creating rules (or at least strong guidelines) to try to avoid the most common problems. in that context Microsoft just announced that they are banning memcpy() from use. Memcpy() copies some number of bytes from one memory area to another. Unfortunately if you make a little tiny mistake this function will happily copy memory where you don’t want it to go. Whoops! Microsoft is replacing memcpy() with memcpy_s() which requires additional parameters in hopes that being more explicit about things will make things safer.
So what does this mean for educators? Well if you are only teaching “safe” languages or “managed code” languages like C#, VB or Java perhaps not much. but at some point real computer science students have to know about memory management and that is where issues like this come up. If you are teaching C or C++ it will come up sooner rather than later. I think there are some good lessons here though for everyone doing software development. It just might be worth a discussion in class even if you are not using C/C++.
BTW You can read all about sending memcpy() to the SDL Rogues Gallery at the Software Development Lifecycle blog. For more information about this sort of thing there is an earlier post titled Good hygiene and Banned APIs. For a list of SDL banned function calls take a look here.
Bonus note: I see that MS Learning is offering The Practical Guide to Defect Prevention as a free download book for a limited time only.
If you’ve been paying attention to the news lately one of the things you hear about are machines on the battle field – or above it. For the most part these machines are controlled remotely by people who make the actual decision to “fire” or not. But increasingly there is interest in machines, call them robots if you like, that will make the “fire or not” decision on their own. These machines will be controlled by software. But just how do you program a machine to act ethically?
In fiction we have long had Isaac Asimov's “Three Laws of Robotics” but in real life its not that easy. Ronald Arkin, a professor of computer science at Georgia Tech, is working on this problem. He’s not the only one but you can read about him and some of the related issues at this article titled “Robot warriors will get a guide to ethics” There are also some links at his web site at Georgia Tech. It’s a tough issue. The ethical questions involved in warfare are tough in and of themselves but getting a computer to understand or at least to properly process the inputs and make an “ethical” decision raises the level of complexity.
I think this is a piece of the growing importance of discussing ethics in computer science programs. I know that many under graduate programs have an ethics course requirement. The masters program I was in had a required ethics course. But I think we need to start having these discussions in high school (or younger). Ethical behavior is something best learned young.
Follow up: Chad Clites sent me a link to an article called Plan to teach military robots the rules of war that relates to this post.
One of the things looking back on a list of links that I have Twittered shows me is that I have been getting information from a wide range of people. Some are from industry people especially Microsoft people and some are from educators. Others are from non-profits who work with educators. And some I have no idea where they are really from.
From Girls in Tech (@GITweet by way of @anitaborg_org) If found out that they are presenting the World of Casual Games This is a chance to learn about job opportunities in the games industry.
Mark Guzdial (@guzdial) continues to write just about the best stuff on computer science education issues there is. If you are interested in computer science education than his blog is a must read. I twittered links to two things Mark has written about this past week.
This week if found this interesting Microsoft Research Video about a new technology that can turn a cell phone into an ultra sound scanner. This technology was created with funding help from the External Research Division of MSR. I find it pretty exciting how technology continues to change the world in positive ways.
From Jean-Luc David (@jldavid) I found this article on “The 10 coolest jobs in tech” If you want students to see what cool jobs there are this is the list. And by the way, number 10 is Technology Evangelist which just happens to be my job. And yes it is that cool.
From Karla Tharin Hakansson (@TeachTec) I learned about a new offer for a FREE download of Microsoft AutoCollage for Educators on the ITN. This is a great tool for storytelling, student portfolios. And now teachers can get it for free.
The CSTA blog had a post that asks the questions “how good are alternative certified teachers?” Alternative certification is becoming a critical piece of the puzzle for getting enough teachers who are qualified to teach the subject. We really have to think about all the ramifications of alternative certification, “normal” certification and the whole question of what certification really means.
For the tech people you know who are or will be evaluating Windows 7 you may be interested in a free application that Microsoft released to help users determine if their PCs are powerful enough to run Win7 Thanks to Kristin Bockius ( @Microsoft_Gov)
If these sorts of thing interest you please think about following me on Twitter @Alfredtwo