Sometimes things annoy when perhaps the should not. Right now all of the tech types who have “found coding and making” kind of annoy me. When you do what I do for a long time you develop a sense of history about things and this perspective includes the ideas that have come and gone and the topics various people have promoted. I would avoid the promoters (those who want to come to your school and help teachers learn to promote coding) and consider those with actual experience – those who teach computer science or are experienced programmers (I like the 10,000 hour rule). It would be great if those experienced teaching such courses also had experiences solving applied problems by programming, but I would imagine this would be a small pool.
What makes sense to me:
- An extended experience with programming (a class).
- Elective programming experiences – in school or out.
- Realistic expectations for what will be accomplished by a reasonable amount of experience programming.
Related issues – I have commented on these issues elsewhere, but allow me to summarize here:
- Those who promote a new “class” have to argue for the opportunity. If it is assumed that the class should be taken by many students, it might be useful to understand that the curriculum of schools is somewhat of a closed system. In other words, if you want to add something, what should be deleted. Would the math department allow a programming course rather than one of the more traditional courses? Who would teach the course? This issue is less of a challenge if programming is offered as an elective course.
- In general, I think we must be conservative in our expectations for the breadth of transfer from learning experiences. When finished with a programming course, the level of proficiency in writing code is what has been accomplished. There may be some transfer to other programming languages and some insight into the use of programming (computer literacy or some more general term implying insight into uses of technology), but I would hesitate to make addtitional claims. Computer literacy or learning about and not with technology was once being discouraged. I am not certain why, but this is still pretty much what you get. There is nothing wrong with such outcomes as long as this is what we want.
It has become popular to describe the goal of coding as “computational thinking”. Here is an extended discussion of what ISTE thinks this means. A similar perspective was being advanced with LOGO was in vogue and considerable research activity was generated. I followed this research quite closely and included a chapter on programming in our textbook edition of the mid-90s. My review of this research is still what shapes my thinking regarding expectations and transfer (see what makes to me). Connected limited programming experiences to the development of generalizable, higher order thinking skills is a significant stretch. I actually thinking writing to communicate is a better candidate for the development of higher order thinking skills (read my review of the requirements for transfer) – it is versatile and experience can be developed across the curriculum. Hence, I think you learn to program if you want to learn to program. Using programming to develop other skills would likely require more time than the K-12 setting can make available for most students.