In this post on The Best Kids Coding Language: Choose The Right Language For Students Age 6 to 14, we are trying to help you choose the right language for your student. Many coding schools have published articles like “The Top 12 Kids Coding Languages” or “The 5 Best Coding Languages For Kids”. The challenge with these articles is that they were written for SEO (Search Engine Optimization) purposes and the information in them is just wrong. The authors were more concerned with length and keyword counts than on giving parents information they can trust. (Sorry, you cannot teach 10-year-old kids C++).
What follows is the real deal from our 15 years of teaching kids to code. We have organized it by age so that you focus on the kids coding languages that are appropriate for your student. Here is how we have organized the information
As we transition from the manufacturing economy to the information economy, students will need to develop an understanding of and the ability to use advanced technologies. Skills like coding and computer programming will be the key to securing a stable and lucrative position in the future workplace. Coding is like a foreign language that the global economy speaks, and understanding it will give today’s young people the power to change the world as they leave school and enter adulthood.
Computer technology first came into the home in the 1980s and 1990s. At that time, people who worked to develop software and code these home computers were seen as especially talented individuals who were naturally gifted in science, technology, engineering, and math — better known as STEM subjects. That’s no longer the case in the 21st century. As technology becomes a larger and larger part of our everyday lives, there’s a growing need for educated professionals who understand computers and software. The world needs a thriving pipeline of students who are learning to code and use the most advanced technologies because that’s what the future will require.
And it’s not just future computer programmers and coders who will need to understand technology. The ability to use advanced technologies will touch every field. Doctors will need to use robotics to deliver the most innovative surgeries and procedures. Attorneys will need to defend and prosecute in cases that concern intellectual property. Work in financial sectors, sales, marketing, agriculture, public service and other industries will increasingly require an in-depth understanding of how technology works and how it helps deliver the products and services that move the global economy forward.
We believe that kids can start coding as soon as they reach a 2nd grade reading level. If your child cannot read at this level there are toys and games that can support their learning as they develop their reading skills. Remember that for kids of this age the goal is to develop strong computational thinking skills as these are the foundation on which higher level skills like abstraction and problem solving are based.
What exactly is Computational Thinking? Computational Thinking is a problem-solving strategy that look at the problem as a “system” and seeks to solve the problem wholistically. It involves problem decomposition, analysis and solutions development as follows:
The BeeBot, for example, is a toy that challenges students to sequence commands in order to move a robot from one side of a room to another. The Dash & Dot, a robot that children can program, is another example of a coding-friendly toy. Is it possible to learn to code through games? No. But they can help develop motor skills and computational foundations. We like and highly recommend Codespark ( www.codespark.com) as it is built around the idea of teaching kids to think. Hey, good thinking leads to writing clean code!
If your child can read at a second-grade level we have several great kids’ coding languages to recommend, starting with Scratch, Blockly, Roberta and Karel. These are all beginner coding languages for kids ages 6 to 9. If your child is 10 or older, please read on. Also, at the end of the article, we list a few great free curriculum resources.
We are going to deep dive on Scratch for two reasons. The first is that Scratch is the world’s largest coding community for children. The second is that Scratch’s visual interface is representative of all “block based” programming languages for kids.
The world’s major coding languages are “text-based,” meaning that code is written by typing words and symbols with your keyboard. To code in a text-based language like Python, Java, and C++, you string together multiple lines of code in an editor or IDE. While this method of programming is efficient and powerful, it is difficult to learn— just like picking up a foreign language. Scratch is a visual programming language where commands take the form of colorful blocks. Users can create programs by snapping blocks together, much like virtual LEGO. You can see the benefit of blocks for early learners.
Scratch is designed, developed, and moderated by the Scratch Foundation, a nonprofit organization but was created by the Lifelong Kindergarten group at MIT Media lab. As of May 2020, Scratch ranks as the 19th most popular computer programming language in the world! Scratch is always free and is available in more than 70 languages, which is amazing when you think about it.
Scratch is available for download at http://scratch.mit.edu. Once Scratch is downloaded to a computer, you do not need Internet access to create a project. Scratch is typically recommended for children over the age of 8. For kids ages 5-7, ScratchJr is an alternative option with an even simpler and more intuitive platform than regular Scratch.
According to MIT “Scratch promotes computational thinking and problem-solving skills; creative teaching and learning; self-expression and collaboration; and equity in computing.” In reality, it does none of that. Scratch is a tool and how you use it determines the learning outcome. It is a very good tool, but simply playing with Scratch is not going to turn your kid into a proficient coder. More on this later, lets first jump a bit deeper into Scratch and block-based coding languages.
There are four main elements of Scratch: the stage, the sprites, the script and the programming palette. To create a game, students use a drag-and-drop interface by connecting code blocks together in the stage. Each block represents one of the commands that in traditional programming languages like Python the coder must write in the editor. The blocks make it one of the most intuitive programming languages to learn. Here is an example of the Scratch Blocks.
Scratch allows students to create games and interactive stories. Scratch’s interactive stories follow the storybook narratives kids are familiar with. We do not see value in these from an educational perspective and in our coding courses focus on games, as these require deeper levels of thinking. And as we stated earlier, it is all about teaching kids to think computationally. So now you understand what Scratch is about, let’s go back to the discussion on “tools”.
Scratch is a tool. Python is a tool. A piano is a tool for making music. It is about how you use the “tool”, not the tool itself. So, how do we build competency using the tool? Well, you have to have a plan and in education, that plan is called a “curriculum”. The shortcoming of Scratch is that while there are lots of projects on YouTube or the web there is not a lot of good curricula.
If you want to write clean code, it is important that you build a strong understanding of the core computer science concepts. They are like chords in music and to play well you must understand the chord progressions. Look for curricula or courses that introduce the following: Operators, Variables, Data Types, Strings, Functions, Arrays, Comparisons and If/Else statements, Elif statements, While Loops, For Loops, Nested Loops. These core computer sciences are the core concepts used in any advanced programming language; Java, Ruby, React, and JSS. Yes, they are expressed differently and often have subtle differences in how you use them, but they all share a common conceptual foundation.
The Google Blockly library is not a platform like Scratch but a code library that allows developers to represent coding concepts as interlocking blocks. Custom blocks may be created to connect to your own application. The idea is to give beginning coders an idea of what commands can be written and how they’re placed together, without making them worry about syntax. For more advanced programmers, it can also be used to mock up small programs. Blockly is a successor to Google’s App Inventor, itself inspired by MIT’s Scratch, and it has some cool new features, like the option to export your blocks as real code. https://developers.google.com/blockly
Karel is an educational programming language for beginners, created by Richard E. Pattis in his book Karel The Robot: A Gentle Introduction to the Art of Programming. In Karel, you code a simple program to control a simple robot named Karel in an environment consisting of a grid of streets (left-right) and avenues (up-down). There are five basic instructions: move (Karel moves by one square in the direction he is facing), turn left, putBeeper, pickBeeper (Karel lifts a beeper off the square he is standing at), and turnoff. A programmer can create additional instructions by defining them in terms of the five basic instructions.
Karel is used for the introductory CS course at Stanford. I wish they had offered it when I studied there. It is more advanced than Scratch but is not block-based and requires kids to write simple programs. That good. I introduced my daughters to Karel when they were in elementary school. They both have been accepted to Ivy League schools, so yes I am a fan of Karel. https://stanford.edu/~cpiech/karel/ide.html
If you have progressed beyond blocks, you will want to learn a text-based programming language. While Scratch is a great way to get started, these more complex programming languages are the ones used day-to-day in computer science jobs and are far more powerful. However, they do require a greater investment of time to master. But you are down for that right?
HTML is the world’s most common language for tagging or what is known as “markup”. Tagging is a structured method of communicating what type of content you want the computer to show. Tagging tells the computer what type of content to create and provides the content to the computer. It is the foundation technology for building a web page or web application. While HTML gives structure and semantics to a page’s content, CSS controls the layout and appearance of it. CSS combines typography, color theory, graphics, animation, and page layout to help deliver a site’s message. It is the second foundational technology of the web.
We don’t understand why more emphasis is is not put on HTML/CSS as a kids coding language. We see kids in the 10+ age range loving learning HTML/CSS. They are building their own web pages and finding ways to express themselves – which is important in these pre-teen years.
PyGames is a library for Python that allows access to pre-configured features that are commonly used in games. So, you are learning Python when you are building applications in PyGames, but in a fun way. Again, having a formal curriculum is critical. If you do not see one, then run, run, run!
Lua is the base code for Robloxs. I know you have heard of Roblox but you might not be 100% clear. Roblox is an online platform and storefront where users go to play games. Roblox is not a game, it is a place where people play games made by other developers. All the games are made by its users, so on Roblox, the fun doesn’t just come from playing games, it also comes from making games. Currently, the official website boasts that its users have published over 20 million games on the platform.
No. While games are they are pretty limited in teaching kids to code – that is because Roblox and Minecraft use pre-templated blocks to build the game. But you can program in Lua directly without using the templets and still enjoy the fun of making a game. We have a course that does that and it is super popular. http://www.roblox.com
We have recently made all our curriculum available online to parents and educators. You just need to create an account on www.ucode.com. You will find our LMS there with instructional videos, coding exercises, project steps and quizzes. Its very cool. If you need instructional support we have a pay as you go plan where you pay by the minute for what you need or we have traditional classes and 1:1 instruction. If you have not heard of UCode, we have been teaching kids to code since 2009 – actively teaching kids to code in schools, camps, labs and online. We have run programs in Shanghai, Hong Kong, Hang Zhou, Taipei, Berlin, Ithaca NY, Los Angeles, Mexico, Costa Rica, Saudi Arabia. So, we know a lot about teaching kids to code. Our curriculum is nationally recognized and now it is yours for free. Here are some examples:
And if you have any questions, reach out by email to [email protected] and we would love to speak with you.