I recall seeing a post by one of more conservative friends on facebook about an article he had published. It was an opinion article from his local newspaper, in some small Kentucky town, arguing against offering computer science as a foreign language. It was probably the first political agreement we had. How was a computer program at all analogous to a foreign language? I always thought learning new languages opens up your world, and it’s best to teach kids when they are youngest, when they are incredibly adept at languages. Sure programming can give you a different way of looking at problems, but it rests on a few key concepts for practical effects whereas language underlies entire cultures. The NPR article mentions this legislation in Florida, where kids can choose to take computer science if they are performing poorly in foreign languages. That approach does not to do justice to either programming or languages, if they are both pushed to the side as a mandatory extracurricular, some extra thing to try if your good at it. Also, what is so great about learning CS, if it just expands the reaches of capitalism, teaching kids how to program more money-printing media machines. I could see how all the emphasis on coding could look like a nightmare to a small, traditional town in Kentucky. I highly value languages and literatures, so the surprising confrontation between language and the field I had majored in had me leaning right on this particular issue, longing for the days when jesuit priests administered slaps with rulers until their students mastered Latin declensions.
I have now had some experience teaching programming languages to students, which is just about the only thing I would be qualified to teach, and begun to change my tune. I can sympathize with the teachers, who are no longer prone to hit students with rulers, who thirst for the days when students actually jump on the concepts presented. The New York Times articles for this week show how students will actually be motivated to do much more work for a programming class, where they could play a game they created. After teaching for just a short time I can appreciate the simple joy that would offer an exhausted classroom leader. I was also amazed to see at what a young age students could comprehend sophisticated programming concepts at such a young age, once that had been presented to them through a simple format like blocks. I do not buy for a second the research by Dehnadi and Bornat into why certain individuals cannot learn software, despite their claims that they are not classist. The logic and structure is all there within the software we use; it is just a matter of how we present them. There are no number of tests that could conclusively show that certain individuals could never grasp those programs no matter how the classroom leader presents them. Young children, whose minds are so open and receptive, could pick up those sophisticated concepts they refer to as three ‘hurdles’ within an afternoon, never putting a name to what they have done. So I believe early exposure to programming is great, especially seeing how it brings new hope to certain communities (like the company in pikeville which I will certainly look into working with). Still, we cannot expect computer science to click with everyone and become a new type of literacy. Despite how sophisticated it is, we have only had the current framework of CS for about 50 years (starting with C? P. Bui will probably disagree with me), but there are epochs of varied cultural history for students to explore. If some student goes off and reads or paints during AP Java, don’t shove programming in their face. Expose them to the potential and let them make what they will of it. Many of the greatest geniuses couldn’t think within the established framework and had to make their own way, and that might someday include the framework of software.