Free Resources for Children to Learn Programming
Can Children Learn Programming?
Yes! And don't worry if you're not a programmer yourself either - there are some great sites and software programs out there which will guide your child through the whole process of learning about how computers are programmed and how to start writing code. You don't need to do anything yourself apart from create an account for them and perhaps download the required software, but if you sit down with them to go through the lessons you will find it to be a fun activity to do together - and perhaps you will learn something too!
Many people assume that programming is too complex for the average child to learn - that it is just for geeky teens and child prodigies. But, in fact, starting to learn how to code is a great activity for children, and if you use a good teaching tool (like those listed below!) it is not difficult. In many ways learning to code is even easier for children that it is for adults. That is because programming code is a kind of language, and children's brains are wired for learning language - that is how we have evolved because the biggest and most important task for a young person is to learn how to communicate . All of the evidence suggests that children find it much easier to learn a new language than adults do because of this, and for today's generation of tech-savvy kids there is every reason to think that this is the same for programming languages!
Learning to code is also a very valuable skill for kids to learn. Not only will it teach them transferable skills such as logical thinking and problem solving, but if they enjoy the experience and continue their learning it will provide them with one of the most valuable skills that they can have for their future career. Good programmers are in high demand, and this demand is only likely to rise in the future. Even if your child does not choose to pursue a career in computer science, they are likely to do something which involves computers - and a deeper understanding of how computers work and how to use them effectively can be a great help. Plus, perhaps most importantly - making your own games or apps is great fun!
Do you think kids can learn computer programming?
The Khan Academy is an excellent collection of free online learning tools and resources for both children and adults. The site is probably most famous for its maths tuition, which includes hundreds of hours of video, challenges to test your skills, and plenty or badges and awards to keep you engaged. But at the end of the day, making maths fun is a difficult task, and although the Khan Academy does a good job of trying, many kids still won't want to do too a lot of maths outside of school. Fortunately making programming fun is much easier, and the Khan academy does an excellent job of it!
The programming course on Khan Academy focusses on using code to create drawings and animations. Members of the site watch a video in which the instructor writes a simple piece of code to create a drawing or animation, explaining the basic programming principles and techniques being used. At any point during this you can pause the video and 'tinker' with the code to make changes and see what happens. To start off with this can be as simple as dragging an arrow to change numbers which define to colour or increase and decrese the size of various parts of a cartoon drawing. You can also create your own programs in the online code editor, using the things that you learn, and then share them in a gallery. You earn points for each video you watch, each question you ask, and every 'spin off program' that you create. You can work towards earning a wide range of badges for reaching goals along the way, which is a great way to keep children engaged with the process of learning.
Scratch is a free piece of software develop by MIT's Media Lab, which is aimed at children between the ages of 8 and 16.
Scratch is a 'visual programming language' which makes it super easy to learn about coding without having to the learn all of the syntax and rules of a real programming languages. Students using scratch will learn to create their own games, music, interactive stories, animations and more by building up a program from visual command blocks that can be dragged and dropped or inserted from menus.
This is a great way for children to learn the basic principles of computer programming and develop their problem solving skills in a fun environment and with biggest stumbling block - learning the syntax (the grammar, if you like) of a programming language - removed entirely. of course this does also mean that students are not learning a real language which they can use to write code off the site. But if you are looking for a gentle introduction to the subject which will provide a strong jumping off point for your child to start learning a real programming language later then Scratch is an excellent choice.
An Introduction to the Scratch Software
In many ways Alice is very similar to Scratch. You drag and drop visual command blocks to build up a program, learning the basic principles of computer science as you go. Students using Alice can make their own videos, 3D animations and interactive games.
Although the user interface of Alice is somewhat less polished and attractive than Scratch, it does have one big advantage - each command block corresponds to a standard statement in a heavyweight programming language such as Java, C++, or C#. Although students don't need to learn the code from these languages in order to create their programs, they will build up a familiarity with real code, and are offered an excellent starting point to learn more and become a real programmer.
Code Academy is more in depth and less visually orientated that the other tools I have written about here. Because of this it is probably not appropriate for younger children, but for teens (or even younger if your child is particularly precocious) it is an excellent introduction to a range of different languages.
Each course on Code Academy is relatively short, and starts off with the basics before gradually getting harder. Later parts of the course can be quite challenging, but the fact that you are tasked with writing real chunks of code from start to finish means that graduates from a code academy course are well placed to start writing their own apps or programs. The course won't teach you everything you need to know, but it definitely gives you enough to get started and to create some basic programs and games from scratch - which isn't really the case with the other tools I've mentioned.
The site has active discussion forums to help you out when you get stuck, is completely free to use, and is all online so you don't have to download any software.
One of the good things about Code Academy is that it has a wide range of short courses in different languages, meaning you can take a few different courses to get a 'taster' of each language before deciding which one you want to learn in more depth.
One of the best ways for kids to learn programming is by actually making physical things. In recent years there has been an explosion in the number of cheap electronic products which aim to teach children a wide range of technical skills and knowledge, from computer science to robotics to writing code, through making fun projects.
Of course, unlike the other resources I've listed here this is not free. I apologize for deviating from the free theme for this last section, but the cost of these kits is not high, and they are well worth the money.
The Raspberry Pi is an excellent example of this. Available to buy for around $35 or £25, the Raspberry Pi is a micro-controller - a mini computer - which can be used to control LED lights, motors and even robots using simple programming. There are loads of great kits and software tools available to guide children through the process of starting to learn programming and making various projects. And once the beginner projects have been completed there is a near infinite range of different things you can do by buying and adding cheap components, making it easy to inspire young users to take their new found knowledge and skills to the next level.
Another new project which looks like it has great potential is Kano, which is a cheap and simple kit to make your own computer. It is specifically aimed at children and will teach them loads of stuff about computer science in general as well as about how to write code and make their own simple software programs.