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.
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.
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.
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.
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
Share your thoughts and tips on teaching kids to program
Anthony J Vita on August 12, 2014:
Great review, it is certainly a valuable skill for kids to learn programming!!
macohkathrine on June 26, 2014:
will help the kids to become future programmers. keep it up!
CashInTheHand LM on June 02, 2014:
Perl and PHP are a very easy languages, a little less natural, but great segues into Java, C# and others.
williamslaw on April 25, 2014:
Meryl van der Merwe (author) from USA on March 29, 2014:
@niicki: I have no experience with them at all...hard to keep up with everything that comes out
niicki on March 10, 2014:
What do you think of the new Kano computers? I have an AS in Computer Programming that I don't use (and is now ten years old), so I would like my kids to have this skill as well. Nice lens, I'm going to check a couple of these out!
Meryl van der Merwe (author) from USA on March 08, 2014:
@InternetActivist: Thanks! I like Python as a first "real" language for students
InternetActivist on March 06, 2014:
I gave you a like for suggesting python, great lens by the way.
ParentingAdviceGuru on February 05, 2014:
This lens is very informative. Thank you for sharing it. I guess this will make children become computer programming-savvy and at the same time, teach them on how to read images and develop logical thinking.
Meryl van der Merwe (author) from USA on October 20, 2013:
@merplerps: Thanks for the tip - I haven't but I will look now.
merplerps on October 15, 2013:
Have you seen the game called CodeSpells? It hit Slashdot a few months ago, and now has both Mac and Windows versions! http://bit.ly/10T0DJ1
Doc_Holliday on October 04, 2013:
Very interesting lens. Thanks for sharing.
drmattshepard on August 11, 2013:
great lens, I can tell you put work into it.
pranavd2008 on July 11, 2013:
good information,very detailed.....
trinimatt on July 11, 2013:
Great lens, very informative
Elaine Chen on June 28, 2013:
I never plan to teach my son programming as I thought there are no such resource available at market place; thanks merylvdm.
For me, programming is a great to train kids' logical thinking. I will start sourcing suitable programming class at my local place.
NakedCavewoman on June 26, 2013:
chat2vishakha on June 20, 2013:
Great post.You have shared awesome resources for computer programming.Thanks for sharing this post.
Meryl van der Merwe (author) from USA on May 31, 2013:
@anonymous: I do have the Codea app on here. Some of these I haven't heard of. Hard to keep up. Some I need to try out first and then I can add the review. I can say my teen son did a course through Udacity. It was great ... Very challenging
anonymous on May 31, 2013:
Don't forget about Kodu, Codecademy, Hopscotch, Tynker, Codea, LearnStreet, Daisy the Dinosaur, and Coursera/Udacity (teens)!
Meryl van der Merwe (author) from USA on May 15, 2013:
@anonymous: Hmmm ... I guess any toy or app or game that starts developing logic skills will be useful. As for computer games, I am not sure if the ones I used still work on the latest computers - Freddi Fish and Fatty Bear and Pajama Sam all had great titles that involved problem solving - which is part of what a programmer needs to do.
anonymous on May 14, 2013:
@anonymous: I randomly came across your comment as I was researching programs to load onto a Toshiba Satellite Pro that I'm buying for my 3.5 year old son. I have little to no experience in coding (some basic classes in college) but would like to start him along that path now. Would you be willing to share what sort of things you introduced your son to at such a young age? Much appreciated...
cstrouse lm on May 07, 2013:
My son is 8 years old and I'm planning on teaching him Python. I learned BASIC from my grandfather when I was 7-8 years old, fell in love with computers, and have been working with them ever since.
anonymous on May 03, 2013:
excellent...my grandson started to use a computer at 2...I mean use, not play! he's 7 now and knows code...yes...it's a must these days...maybe not at 7...but they'll need it. great selection. I ditto Aunt- Mollie!
Aunt-Mollie on April 10, 2013:
You've gathered wonderful resources for teaching programming, and not just for kids! Enjoyed.
Meryl van der Merwe (author) from USA on April 09, 2013:
@anonymous: Thanks for that comment. My son learned it while being part of a Lego League Team so that probably helped the learning curve.
anonymous on April 09, 2013:
@anonymous: I worked with my son 4 years ago (he was then 10) with Lego NXT (1.0). We built a few simple projects (two from the manual, one of our own), but didn't go any further. The programming method wasn't intuitive or easy enough for him to enjoy it enough to replace other interests in his life (reading, playing). From my perspective as a parent, I felt that the basic kit was limiting, and to do more interesting things, required a substantial investment (for me-- a few $hundred or more), without being sure he was going to end up liking it.
chocochipchip on March 30, 2013:
I really want to learn programming
AlexTedford on March 19, 2013:
RetroMom on February 05, 2013:
Great lens, very valuable resources here and a great youtube video too.
anonymous on February 04, 2013:
@anonymous: Star Logo
Jessica from Southern Indiana on January 19, 2013:
The Invent with Python book is available as a free download on the author's website. You might want to add that here. ;) Otherwise, this is a great lens!
anonymous on January 10, 2013:
Lots of great resources here, I tried teaching 9 year old children in the local school programming using Scratch and it went quite well.
I put the lesson plans up on a site in case they are useful to anyone on www.teachkidstoprogram.com
dwiz123 on December 15, 2012:
I am 10 and I am learning Java using Greenfoot as an IDE. It's fun because you can program games. I used Alice for a while, but I wanted to learn the the Java syntax and not just move objects around, so I switched to Greenfoot. Before I started learning Java, I learned python with the Invent Your Own books, which were very well done and easy for me to follow. Python was an easy language to begin with, but the indenting sometimes got me frustrated.
anonymous on December 14, 2012:
Can you recommend a LOGO program for macs?
anonymous on November 09, 2012:
I like this resource page about what is out there to teach programming to kids. I'm myself learning Scratch as I'm interested teaching it to my kids and their friends. In that try, I'm putting my thoughts and trial-error projects on my blog at 1stgradelab.myreadinglog.net
anonymous on October 25, 2012:
My nine year old daughter has inspired me to create a project to help teach kids how to program in Scratch! Check out my blog...www.stretchinstructor.com!
Trying to create a project to help with K-8 programming skills!
iortizvictory on October 21, 2012:
I really love your Len!! I think Visual Basic is a great language to start out with. I just started a new Programming series. If you have a chance check it out. Thanks! http://www.squidoo.com/learn-computer-programming
Meryl van der Merwe (author) from USA on October 19, 2012:
@Binarydog LM: I don't think I was aware of Python, or there weren't resources at that point, for me to use to teach my older kids, but my college age son who is studying programming also told me to teach my youngest Python instead.
Binarydog LM on October 19, 2012:
I think if your going to teach programming to anyone who hasn't done it before then Python is the perfect choice. Visual Basic, despite its name, just isn't basic enough.
anonymous on October 03, 2012:
I have taught both 4th graders and high school students programming through Inform7, a language that let's them create their own text-based adventures. Because it is all text-based, the emphasis is on the stories and they love sharing their adventures with their friends. Informforstudents.wikispaces.com
anonymous on September 26, 2012:
Are BASIC dialects like Qbasic, BASIC-266, FreeBasic good (not Visual Basic)? If yes, which one is best?
bead at home mom on September 22, 2012:
great resource for easy learning. I had no idea. Our whole family enjoys computers and what a great education feature that I myself would love to learn. Thx for sharing!
sagebrushmama on August 26, 2012:
Thanks so much for this lens. I got to learn a little bit of logowriter in my teaching days...another math teacher and I swapped students for logo lessons and manipulative work. I've been out of the classroom for some time, but I really like the idea of having my youngsters get a start with logo.
anonymous on July 10, 2012:
@MerylV: I teach middle school math and would love to teach my students some basic programming. What language do you teach? Where should I even begin?
Meryl van der Merwe (author) from USA on July 06, 2012:
@rawwwwwws lm: In the classes I teach to middle / high schoolers almost all the students are boys! I try very hard to appeal to the girls but it seems they don't even consider it.
rawwwwwws lm on July 06, 2012:
Wonderful lens! I am currently majoring in computer engineering, leaning more towards software. Your lens is very very appreciated by me, at least children are taught at a young age! Especially for women, we need more women in science and engineering, well here in the US. Almost all my classes are men, but I don't care, I feel they are a little intimated by me haha.. great lens!
anonymous on July 02, 2012:
Give Kodu a try (http://www.kodugamelab.com/). A very cool 3D programing environment that children can use without any typing. Think Scratch but 3D and simplified, while being more powerful. I've used it with 5+ in short sessions, but best aimed at 8_
anonymous on April 03, 2012:
AlexTedford on March 17, 2012:
Cool lens! *squidliked*
anonymous on March 03, 2012:
jeffrichley lm on February 24, 2012:
Alice is hands down the best way to teach kids how to program. It strips away the need for syntax and teaches the concepts. Why have to worry about all the little curly braces when you are learning difficult concepts?
anonymous on January 08, 2012:
How about programming Lego NXT for robotics?
What's your take on they?
anonymous on January 02, 2012:
Thank you! This is very useful information.
anonymous on December 28, 2011:
What a great idea! Thanks for sharing.
Buchamar on December 18, 2011:
I feature educational kids iPad app review - Come visit!
bluewren56 lm on December 16, 2011:
Never too early to teach kids... love the lens.
Paki Bazar on November 17, 2011:
i love this blog you are working really good
Meryl van der Merwe (author) from USA on November 14, 2011:
@mrpetem lm: I have an unfinished lens on web coding (coming soon!)- my son taught himself it at an early age and my husband has written a course which we are currently testing before releasing.
mrpetem lm on November 14, 2011:
nice lens, maybe worth adding html (although not a programming language), PHP and MySQL. Would be great to teach your kids how to make their own website from code, wish I had learnt it from a younger age.
anonymous on November 01, 2011:
This is a great resource, and is consistent with what I have read on another site. I am trying to develop an extracurricular program for elementary students (1st to 5th) that will give them a good foundation to programming. If anyone can point me to either (a) a curriculum/plan for teaching programming to elementary students; or (b) any organizations that actually provide such programs, that would be very helpful. I don't want to reinvent the wheel here.
Stoney2009 on October 29, 2011:
This is a great lens. I'll have to see if I can get my son interested as I think he'd love it!
anonymous on October 05, 2011:
I am going to be a computer logic teacher but I have never taught this and need resoruces for middle schoolers
Laraine Sims from Lake Country, B.C. on September 19, 2011:
I've always wanted to be a programmer since one of my nephews took it and enjoys his work all over the world. Maybe it is too late for getting into it to that degree but it does sound interesting. Imagine being able to make a horse gallop across your screen!! Pretty smart little girl you have there!
Indigo Janson from UK on September 15, 2011:
These are fantastic suggestions for getting kids started with programming. Blessed on the Squid Angel word quest!
MagpieNest on July 21, 2011:
Good stuff. I'm an IT professional with two small kids. They'll be learning to program.
Lorelei Cohen from Canada on July 21, 2011:
This really is an excellent looking lens.
javr from British Columbia, Canada on June 30, 2011:
I'm sure that your lens will be helpful to many teachers and parents. Blessed by a Squid Angel.
anonymous on June 20, 2011:
dani3l lm on June 05, 2011:
wow I never knew there was such a things for kids, this is awesome. I was wanting to know how old are your children now? did they become successful programmers? I just had a daughter and always thought in the back of my mind it would be cool for her to do something like this and now I have the tools for her when she grows older.
creativedreams on April 07, 2011:
I still remember doing Logo at school 20 years ago! It actually helped to understand programming a lot, I didn't know it was actually still in use :)
Meryl van der Merwe (author) from USA on March 11, 2011:
@ProgrammingProfessor: I started mine on Logo round that age. At 10 my youngest learned Scratch. Her older siblings didn't have that choice and learned Visual Basic instead - and went on from there. The earlier they start the easier it is for them.
ProgrammingProfessor on March 11, 2011:
I like your lens - I am a programming teacher (college level) but I have a 7 year old...and I hadn't thought about introducing her to programming before now. How interesting!
Meryl van der Merwe (author) from USA on December 26, 2010:
@anonymous: Great idea! And if they know they can share their game with friends that adds motivation. It is particularly easy to do that with Scratch games.
anonymous on December 26, 2010:
ima kid and to get them to learn find a motive say your kid loves a game where you fire cannons at targets say to them ever wanted to make your own version with better level
just make sure they know it will not be easy!!
will post more ideas
sorana lm on December 16, 2010:
Great lens. I'll favourite it so I can get your updates.
javr from British Columbia, Canada on December 13, 2010:
Very good lens that should help get more children interested. Blessed by a Squid Angel.
hotbrain from Tacoma, WA on December 10, 2010:
Good suggestions. Angel blessed!
GrinningFool on December 09, 2010:
Thank you. These are great ideas for thing for my kids to do/
beta4145 on December 09, 2010:
Can't wait to give this a go with my son.
anonymous on December 08, 2010:
I am planning to learn computer programming and this helped me even though I am older. Great job.
StriveDigital on December 05, 2010:
My husband is a programmer at a middle/high school and moderates a web club for the students. I'm passing this information on to him to see if it can be used. We're still looking for programming competitions for students of that age to participate in if anyone has any ideas.
Meryl van der Merwe (author) from USA on November 09, 2010:
@puzzlerpaige: You are welcome. If your daughter has any questions, give her my email address. We need more girls to learn to program!!
puzzlerpaige on November 09, 2010:
I've looked for this exact information a couple of times and I'm so glad to find it now. I'm emailing the link to my 13 yo daughter to see if any of these will work for what she wants to learn. Thank you! for sharing your knowledge freely.
Meryl van der Merwe (author) from USA on October 13, 2010:
@Kreego: I haven't tried it! There are so many new languages to learn. I have heard about it and may try it out this summer. When I was a college student I taught students using Applesoft Basic ... with line numbers! I learned COBOL and FORTAN at high school (80/81).
Kreego on October 13, 2010:
I'd be interested on your take of Microsoft Small Basic, (http://smallbasic.com) which updates MS-BASIC many of us learned in high school in the '80s (no more line numbers!) Small Basic appears to be a subset of Visual Basic - in fact, it looks like MS is encouraging young programmers to work up to VB. My son is going on 13, and has been quite captivated by MIT's Scratch. I think I'll get him started by working out his own text adventure, since he likes role-playing games... Cheers!
anonymous on August 16, 2010:
If you try out the Scratch 1.4 Beginner's Guide book, I'd love to know what you think. This describes one of my primary audiences for the book: "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."
anonymous on August 01, 2010:
Your kids can learn Visual Basic and C# Windows and Game Programming with courses from Homeschool Programming, Inc. (www.HomeschoolProgramming.com). All industry-standard stuff, no throw-away languages!
Kerri Bee from Upstate, NY on July 15, 2010:
I didn't know that LOGO was still around. I remember doing it in third grade. That was a LONG time ago!
JayShaffstall LM on January 01, 2010:
Great collection of resources!
JoyfulPamela2 from Pennsylvania, USA on November 22, 2009:
Wow, my kids will love doing these! Thank you for listing them!