Oct 22

What Coding Course Should My Student Start With?

This is the question parents ask the most, so let us cover it in depth.

 At UCode we have 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. We used to call it “problem-solving”, but terms like algorithmic thinking and engineering thinking have all been used to describe the style of thought used in computational thinking. Simply put, 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 10
For students 6 to 8, we focus  our courses on developing computational skills as they really are the foundations for coding. And for students at this age, 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. Programming concepts are abstract and difficult to understand for young learners as 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. Yes, I know I am being repetitive, but it is important that you understand the physical limitations.

For kids 9 years of age and older, the easiest way to begin is with a program that uses a visual interface, also known as 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. 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.


Games Are A Waste of Time

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. Sorry :( There are a number of different options at this age and you should focus on a course that allows students to express themselves by building something tangible. Build a blog. Build a cool app or build a game. Self-expression is what it is all about at this age. Best options include game development with PyGames, web development using HTML/CSS, or Unity to create virtual reality worlds. Let your student build, create and express themselves.  

What is your goal for your student at this stage? It is to have fun, build higher level computational skills and become familiar with foundational concepts. HTML/CSS or Unity are perfect. So is Lua, the native language that Roblox is built on. No, you do not need to start with Python just because some other parent has told you that is what their child is learning. Python is dry. Very dry. There is very little you can create with it on a standalone basis. 

You have a student in high school and he or she wants 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 has a relatively simple syntax which is based closely on the English language. This means it is a great language 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.

However, there are ways that you can use to gradually establish participation and, in the end, a real sense of community.Don’t forget that your initial postings in the discussion forum, your first messages sent to all by email, or the greeting you post on your course home page will do much to set the tone and expectations for your course....
Created with