When Should Students Take a Computer Coding Class?
Are Computer Coding Courses Right for Every Student?
Most parents would agree that children should learn how to use computer applications such as word processing and spreadsheets. But what about computer coding, or programming? And just what is computer coding anyhow?
Computer coding, or programming, is the process of making applications or games. If a coder is making a game, the code creates the images and responses in the game to the player. The code for the computer is written in a “computer language” such as Java, Python, C++ or any one of the hundreds of languages that have been developed for helping humans write instructions for the computer.
Learning to code should be viewed in the same way as learning to use math or studying history. We don’t teach math and history to make mathematicians and historians, we teach those subjects to develop important skills used in our societies. Using computer related technologies has become a significant part of our working and social life. Learning to code enables the student to develop a deeper understanding of how these technologies work and provides a solid foundation for using the vast array of computer applications relevant to work and learning.
What Language Should Students Begin Coding In?
When we look at computer programming languages from the standpoint of learning to code there are two primary tracks. One level of coding is the “drag and drop” level where the logic of coding is used to move “blocks” or “elements” to make the logical structures. Examples of this type of language would be Scratch, the MIT App Inventor environment, LEGO Mindstorms and the language used here at Excelsior Classes, Game Design Studio 2.
When Should a Student Begin Learning to Code?
Drag and drop programming is very accessible to middle school age students. Having taught the scripted languages for many years to 6th to 12th grade students, I have found there are some aspects that make Java and other scripted languages difficult for some middle school aged students.
I wouldn’t hesitate in signing up a typical high school student for a course on learning a scripted language. However, middle schoolers can struggle. Generally speaking, 6th grade is a real stretch, and predicting success for 7th and 8th graders can be difficult. In my experience, the biggest challenge for younger students is their ability to “stick to it”. If a child tends to not follow through on challenging math problems or completing writing assignments until they have been reworked properly, on their own, it is likely they will find a Java or Python course very difficult. If the student generally gets their work done without significant reminders and tends to solve appropriate math problems on their own and they work on their writing assignments until they are acceptable for the grade level with just a few “normal” reminders they should do just fine.
Another aspect to consider is how your child handles ambiguity when you compare them to other children their age. For example, can they take on chores around the house that are not fully defined by you or another person in authority? Can they problem solve on their own when a situation arises that is different than anticipated. Or, do they need tend to just stop working on the task and say “I don’t know what to do.” Coding always involves a degree of decision making that is somewhat beyond that of other courses I teach in the math and science areas.
Getting Started With Computer Coding
There are many ways to help young learners discover the world of computer coding. One great resource is the hour of code site “hourofcode.com”. Happy coding!!
Ken Gunther has worked as an educator for over three decades in a career that spans teaching computer programming, math and science as well as leadership roles as technology coordinator, IB Diploma Coordinator and head of school. While he and his wife, Charmaine, raised their three children, they worked at schools in Kenya, South Korea and most recently Ethiopia.
Ken has helped numerous students succeed in their pursuit of a career in Computer Science. His classes weave together learning activities with direct instruction, sharing of knowledge and independent learning.