As a professor you get sent new sample textbooks all the time, or so I learned from Dr Nick last night. The “hot” area for these textbooks is the CS1 (or Intro to Computer Science) classes. Computer Science programs have the unique challenge of getting beat up by Industry because they aren’t producing enough new graduates. At the same time Mass Media keeps saying “all your tech job are belong to India”, scaring potentially interested students to the much more secure careers of History and English.
The thing that is exciting about software development is the ability to be creative with a nearly infinitely malleable canvas. The tools for creating software are better than they’ve ever been, and the massive prevalence of Open Source Software makes finding example code really easy. In a weekend you can create a completely reasonable web application with Rails, or a nice client application using Glade. In each case they solve a problem you have, and make you’re life a little easier.
The bad old ways of teaching CS definitely miss this whole point. I’m a firm believer in students needing to understand interesting data structures and what is going on in the memory of the computer, but that doesn’t have to be the CS1 focus. That’s like teaching shop in high school, but instead of letting people build boxes or bridges, having them spend the entire first semester pounding nails into boards until they get it right. As with any industry that has a stigma for boring, you need to show students the creative aspects early in their education.
I for one, am excited about anything that brings more creative and talented people to the field. The current approach of making 18 year olds decide they don’t like software because they didn’t understand inane java syntax in the first 4 weeks that they were in college isn’t working out so well.