There is global interest in teaching programming in schools. Initiatives that come from outside education, like Code.org, which is backed by Mark Zuckerberg and Bill Gates, are trying to get more students learning a second (or third) language, but it's not one that is spoken. But I also see a backlash of those who say that writing code is a terrible way for humans to instruct computers and that newer technology may render programming languages "about as useful as Latin."
I support some middle ground. Teaching some coding as part of regular language study in English and world language classes.
This week I am giving a presentation at the NJEDge.Net Faculty Best Practices Showcase that I titled "Code as a (second) Language." It's not about becoming a programmer. Learning about code, like learning about grammar, is about understanding how a system of communication works below the surface.
There are several "computer science, meets humanities" programs. One is at Stanford University, which offers a new major there called CS+X which is a middle ground between computer science and any of 14 disciplines in the humanities, including history, art, and classics.
What are the cognitive advantages to learning a second language? Learning any system of signs, symbols and rules used to communicate improves thinking by challenging the brain to: recognize & negotiate meaning, work within structures and rules, and master different language patterns.
As a longtime language teacher - and shorter term coder - I know that code-switching (and that is the term) occurs when a speaker alternates between two or more languages, or language varieties, in the context of a single conversation. That can be done between English and French, but also between English and Java.
Whether you are working in a traditional language class or a programming class, memorizing rules and learning new vocabulary strengthens overall memory. Multilingual people are better at remembering lists or sequences. Language study & coding forces a focus on knowing important information & excluding extraneous information. We have all heard and read beautiful” and elegant language, such as in a Shakespeare play or great poem, but programmers and mathematicians also talk about beautiful and elegant code and equations.
The conference this week is about STEAM -- STEM plus the arts, including language arts.
Engineering and other STEM subjects are appealing to students in part because they often include hands-on, real-world applications. Many students also feel that these majors lead to better job prospects. Of course, learning to think like an engineer could be useful no matter what students decide to pursue. An increasing number of high schools offer introduction to engineering courses that are project-based, an inquiry-centered.
There is a Code as a Second Language National Initiative that brings tech professionals and software engineers into schools to introduce students to coding in classes, but also in after-school sessions and events like coding jams.
This is all great, but my interest here is bring the coding found in STEM courses into languages classes.
How is a programming language comparable to a spoken language?
My idea is not without precedents. Natural language processing looks at syntax, semantics and models of language analysis, interpretation & generation. Human language technology continues to grow. On a large scale, products like Google and other search tools and Apple's Siri and speech drive commercial uses. The field of computational linguistics is one that grew out of early machine translation efforts and generated mechanized linguistic theories.
There are many programming languages we might use, depending on the grade level and applications. Although JAVA is the most popular programming language, and the AP computer science exam uses a Java subset, it is more than many students will have time to learn. There are coding options that I have written about here for using simpler languages (such as SCRATCH) and tools to aid in writing programs.
Although Java might not be the coolest language to use these days, you can do many things with it - including tapping into the current interest by young people for Minecraft. Using mods for Minecraft makes Java more beginner-friendly.
Language teachers can work with STEM teachers, especially in K-12 schools, to show students the connections between concepts like syntax and help bridge student knowledge of the two fields and also understand commonalties in communications.
The 2016 NJEDge.Net Faculty Best Practices Showcase is a venue to showcase faculty work, work-in-progress or posters to the New Jersey Higher Ed and K-12 communities. Registration and Information on the presentations at NJEDge.net/activities/facultyshowcase/2016/
View the "Coding as a (second) Language" slides via Slideshare by Kenneth Ronkowitz