A tweet passed though my stream last night. Eugene Wallingford retweeted someone else’s statement “Teaching students how to operate software, but not produce software, is like teaching kids to read & not write. (via
@KevlinHenney)” Apparently this caused some conversation among followers. I missed most of it the first time because of how Twitter handles replies but I was able to catch up on it later. One reply that Wallingford repeated several times was “ @wallingf A computer is not just a tool; it is a medium of expression, and an increasingly important one.” Together there is an set of important ideas being expressed.
One of the reasons I tend to push computer science education so much is that I believe that students need to be creators and not just consumers. Computer programs are a medium of expression and a means of creation. I believe that understanding how to use computer applications is important. And of course many applications are tools of creation. Word is an outstanding writing tool. Excel is a great way to creatively deal with numbers and other data. The examples abound. But to me there is a step beyond using applications that other people create involved in creating ones own applications.
Turning consumers into creators is a huge part of the motivation behind programs like DreamSpark which puts professional software development tools into the hands of students. It’s why we have created curriculum resources like our web development course materials or our 5 week and full semester XNA based game development courses. It’s the reason behind Kodu for young students and Small Basic for middle school students. It’s also why we have the Beginner Developer Learning Center. It’s unfortunate that more schools don’t offer computer science courses though.
[Edit: Please see also Eugene Wallingford's post- Programming for Everyone -- Really?