What Coding Course Should My Student Start With? It is a question that parents struggle with. Let’s jump into it.
We teach students as young as kindergarten. But we do not teach them to code. We teach them how to think. If they can think well, they will code well.
Computational thinking has gone by many names over the years. Terms like algorithmizing, procedural thinking and engineering thinking have all been used to describe the style of thought used in computational thinking. More recently, the term “design thinking” has come into use
Computational thinking is a way of mentally modeling complex problems so that they can be deeply understood, and optimal solutions can be arrived at in an efficient manner. We used to call it “problem-solving” Computational thinking breaks down a difficult problem into a series of simpler steps that can be used to arrive at a solution.
For students 6 to 8, focus on these computational skills as they really are the foundations for coding. And it must be done in as visual a way as possible – because reading comprehension is still very basic and becomes a fail point for most students. Importantly, programming concepts are abstract and difficult to understand for young learners. Students’ brains are not fully developed and they typically have difficulty with relating the code on the screen to the objective of the exercise. They simply do not yet have the necessary abstraction skills.
For kids 9 years of age and older, the easiest way to begin is with a program that uses a Block interface. There are several available, but the most popular is Scratch by MIT. The user interface resembles a child’s toy box, consisting of multi-shaped, multi-colored blocks. Scratch works by linking colored blocks of code to a function and rendering the result. Each block type usually illustrates a concept that is used in ‘real world’ programming languages.
Learning to code is generally a difficult task for young students as it commands a high cognitive load, as well as introduces concepts that are often difficult for young learners to grasp. Block interfaces simplify this problem – picking a block from a selection is far easier than remembering a word. The block format relies on recognition instead of a recall, which in turn facilitates learning at a faster rate.
You have a middle school student that wants to learn to code. Maybe they like Minecraft or Roblox, but neither of those will teach a student to code. Yes, they are fun instructional games, but it is not coding.
You are in high school and you want to go to university. Well, you had better be able to program in Python. Python is the CS100 level course at all the University of California schools, the Ivy League, and most top universities. Why not support your application by demonstrating you can handle college-level work while you are still in high school? (And a certificate from Python.org wouldn’t hurt your college application). EVERYONE needs to learn Python.
Python is widely adopted as a first language because of its relatively simple syntax which is based closely on the English language. This means non-programmers can often make sense of a simple script – which is great for beginners. Java, on the other hand, is considered to be far less user-friendly and requires a tighter grasp of core programming concepts before achieving any meaningful output. Java uses ‘strict’ typing – meaning that the user needs to be precise in their commands and error feedback can often be ambiguous to newcomers.
And here is a secret that is really important for home school families – open a GitHub account. GitHub is a free software repository where you can save your work and share it. It’s like a portfolio for digital creators. Stanford & MIT are now requesting your GitHub portfolio as part of your application.
What Coding Course Should My Student Start With? It really depends on the age. But make sure your selected course teaches the fundamental computer science concepts and is curriculum based.