So - you want to Teach your Kids Computer Programming?
How to Teach your Children Programming Skills
Parents all know their kids need as many computer skills as possible. But they don't always know where to start. This is particularly true when it comes to computer programming. Parents may not be able to program themselves, or if they can, the languages they know may not be ones their kids can learn easily.
I am a mom - and a computer programmer. I have taught all my kids to program. Between them, they have learned a number of different languages and so I want to share with you what languages are ideal for kids to learn. I would suggest that you start introducing your children to programming as early as possible. If you start early, children will develop the logic and analytical skills needed for computer programming far easier than if you wait until they are teens. And don't worry, even if you have no programming experience, you can teach your kids to program!
Image courtesy of Stuart Miles FreeDigitalPhotos.net
Why should kids learn to program?
Our modern world revolves more and more around computers. Even the gadgets we use are 'programmed'. Just take a look around your house and see what I mean - your TV, microwave, alarm clock, oven, security system - just to name a few.
And more and more things become 'computerized' each year.
It is important for our kids to at least understand the science behind the scenes, even if they don't go on to become programmers themselves. And if they ever use spreadsheets a lot in a job, those basic programming skills will come in handy with complex calculations.
I have one son who is halfway through a computer science degree, and he has no trouble finding highly paid vacation jobs. The one he is currently in paid for a visit for him to decide if he wanted to work there for the vacation, paid for his flight and pays for his luxury apartment. And he still gets a nice salary on top of that. And this particular company has 800 interns like my son working there each summer from colleges all over America!
Last summer this same son had a job with a start up company doing coding - and he earned a lot more than the minimum wage.
So - job opportunities in this sector are readily available. I know all people are cut out to program, but it is a good idea to expose kids so they can see if this is for them.
At what age should kids start to program?
Programming will be a natural part of education just as language study and mathematics is, if it is introduced as early as possible. There are now some game apps available that teach the basic principles in a way that kids will just think is a fun game. They can then progress to the logo programs (see below) and then on to game programming with drag-and-drop interfaces while they are in their early elementary years. By the time they reach middle and high school they will be ready for 'real' languages.
Estonia has now introduced computer programming lessons into their classrooms - for all ages. That means that children from the age of 6 start learning the concepts. Can you imagine how competent the Estonian youth will be by the time they reach college?!
Logo - a good place to begin
Logo is a language young children can learn easily. My daughter started when she was 7. A turtle appears on the screen, and your job is to give the turtle commands to make him do whatever you want him to do. Kids get immediate visual satisfaction as they watch the turtle perform the commands given.
There are various free versions of Logo to download. Here is one: FMSLogo
I am not sure how easy it would be for kids to learn Logo without a tutorial. I purchased a package for my daughter that included the Microworlds Logo language and The Logo Adventures book . For older students rather buy Computer Science Pure and Simple . My daughter will progress on to that when she is finished Logo Adventures. She really enjoys creating patterns all over the screen, and she has just started learning how to do animation. She has a horse galloping across the screen.
Learn about what Scratch is and how it works
Scratch - for slightly older kids
Once your child has mastered Logo, or if they are upper elementary and you want to jump straight to programming games, Scratch is the perfect language. Scratch was developed at MIT and has been available since 2007. It is suitable for students age 8 through high school. With Scratch you can easily create interactive stories, animations and games, and then share them with your friends. But even thought it is so much fun, young people are actually learning important mathematical and computational ideas.
Scratch is also free and can be run directly from the Scratch website. You can obtain free lessons from learnscratch.org. There are also educator resources on the Scratch website. I have not been real impressed with anything I have found online yet. There are various lessons available but no comprehensive course that is easy to follow and engaging.
ONLINE COURSE: I offer online courses for students from 5th through 12th grade who have no prior programming experience. The lessons are in the form of videos and are posted each week along with assignments which are graded. Students get feedback on their work and help if needed. Students can work in their own time ie there are no live classes to attend but there are deadlines.
For more info and to sign up click here.
This is by far the best book available. I am currently using it to teach a computer class. The lessons are well explained and the students start making games from the start.
Alice - programming animations
Alice was developed by Randy Pausch and other developers at Carnegie-Mellon university. It was developed to encourage more girls to program - but has plenty of appeal for boys too. The boys in my class love it. There is no need to learn code - all actions are performed via drop-down menus.
I love teaching Alice as it is a fairly powerful language, and all the basic concepts of programming are clearly visible - even though students don't have to write code themselves.
This book is written by the developers of the Alice software. I use it for the class I teach, but I think most teens could go through it by themselves as it is well written with plenty of examples to follow.
Cargo-Bot: An App that Teaches Programming Skills
This is a fantastic way to learn to program. The purpose is to move a stack of blocks to a different position. It starts simply enough and tutorials help you through the first levels. But it gets challenging quickly. My 12 year old who knows Scratch had no problem understanding what to do and got through quite a few levels - often finding solutions different to mine.
Like in games like Angry Birds, you can pass a level by achieving the goal, but you may only pass with one star. You have to come up with the shortest solutions to get a magical three star stamp!
If you really can't figure a level out, there are walkthrus on Youtube (don't ask how I know that).
Cargo-Bot is available at the App store - and at present is free!.
Visual Basic Express
My 3 older kids all learned to program in Visual Basic in middle school / early high school. Kidware Software has a tutorial with 10 lessons for Visual Basic Express which you can purchase for $19.99. However, you can download the first 5 lessons free (scroll to the bottom of their page). I first downloaded the free version to see how my kids would like it, then went on to pay for the full version. Visual Basic Express is another free language.
With Visual Basic Express your kids will start to program with 'code' and they will produce non-animation programs eg ones that ask for data to be keyed in and then do something with that data. Although thy now have to learn the correct commands, if they have learned any of the previously mentioned programming languages, they will find the transition easy. But new programmers can also start here. It is suggested for ages 10 and up.
Python is a powerful high-level programming language for students who have mastered some simpler form of programming like those listed above. It is also free and can be downloaded here. You will need to get a book for instruction - try your local library, or buy one of those suggested below.
You can also visit the Invent with Python blog. for lots of extra ideas and the last book listed below is available free in pdf format from that site.
I am currently using this book to teach a computer class. It first goes through all the main programming concepts and then walks students through a few games. Good for adults as well as kids!
The AP Computer Science exam is based on Java, so your kids will need to learn this if they plan to take the AP exam, or if they are serious about programming. These are the books I am using with my son this year as he prepares for the AP Computer Science exam. The author is an AP exam paper reader and a teacher.
Another book to use if you are writing the AP exam
Students still wanting to go further?
Massive Open Online Courses (MOOCs) are the way to go!
Students who are ready for more of a challenge now have a huge number of online options that are free or low cost.
Udemy has many courses that teach programming that range from free in cost to a few hundred dollars. The courses are rated by previous users so that helps when making a decision. You can find courses on most programming languages as well as how to build apps.
2 years ago the first 3 free online courses from Stanford took the world by storm. My son enrolled in the most popular of the 3 - one on Artificial Intelligence. He was one of the many thousand who did successfully complete it - and he loved it. Since then 3 main websites are now offering top quality university level online classes in many subjects - including programming. I have just enrolled in a Python one as I want to see what it is like. You can read more about these on a blog post I did a while ago. These courses do have homework and grades and provide certificates on completion (some of them do charge for the certificate).
Image originally posted on Flickr by mathplourde under cc-by-2.0.
What age students are your students?
As I add more resources to this page, it will help me to know what ages you are looking for help with