This morning's NYT contained an insightful editorial from Thomas Friedman regarding sustaining competitive advantage through education. The piece cited Bill Gates' recent remarks on how America's high schools are designed for another age and are now obsolete, e.g. even if they function as designed the results are mostly irrelevant. Gates notes: "Training the workforce of tomorrow with the high
schools of today is like trying to teach kids about today’s computers
on a 50-year-old mainframe."
Anyone with computer experience who has seen how computers are typically "taught" in schools will be equally disturbed as Mr.Gates and Mr. Friedman. Sorry, but clicking buttons on a CD-ROM does not count as understanding computers, and just because the kids know how to work the Control Panel better than their parents, that does not count either.
Let's focus on programming languages. One advantage of teaching kids to program is that programming is not a simply a means to an end. By learning programming, kids learn about technology, logic, structred thinking, and math. Don Box has blogged about teaching his kids to program, and some options available. The Python community has also done some work here with Computer Programming for Everyone (CP4E).
Additionally, the book "How to Think Like a Computer Scientist" is available online, "intended for people with little or no programming experience"
How do we get these concepts into our schools and into kids' brains?
Message to educational institutions and the politicians who fund them from the Beastie Boys: "Innovate or evacuate."