dark mode light mode Search Menu
Search

Where to Begin to Teach Kids Programming and Computer Science?

Sam Beebe on Flickr

In the past year I have published this magazine, my first year doing so, the most common question people have asked is, “Where do I (or my child) begin to learn to code?” Or “How do I teach kids programming and computer science?”

My answer is some variation on, “It depends.”

It depends on whether you're a child or adult, a parent or a teacher. It also depends because learning to code is not the answer. Learning how to be comfortable with technology, learning how technology works, learning how technology can help and hurt us individually and as a society, these are the answers to the question, “Where do I begin to learn to code?”

Writing and publishing this magazine has taught me the vast majority of people who start coding will quit. They'll get bored. Or coding is too hard. Or coding doesn't really fit how they do things. For example, coding requires a lot of problem solving skills which, in turn, requires a balance of rigid step by step processes and intuition based on experience. Not everybody likes the combination.

From the start this magazine has published articles based on these guidelines developed by the Computer Science Teachers Association (CSTA):

  • Basics of programming and where to learn more
  • Problem solving and collaboration
  • Mathematical foundations of computing and computer science
  • Computational thinking
  • Recognizing and selecting computer devices
  • Community, global, and ethical impacts of technology

If you learn a lot about these topics, and you give up on coding, or you never learn to code, you'll understand how technology works and where technology is appropriate. If you do learn to code, terrific. However, learning to code is helpful but not required to be technology literate.

With all this as prologue, here are some specific answers to the question, “Where do I begin to learn to code?”

Kids (and Adults)

If your kids are under 8-10 years old, and especially if they have younger siblings, you might want to start with games and toys that teach programming concepts. For example, Robot Turtles is a great board game with some neat extensions like an online community where you can create your own game boards. These games sometimes let you replace the object you direct in the game with a person like your child, or a parent, adding another level of fun and engagement.

In the same style, the Move the Turtle phone application lets kids do basic programming. Kids and adults can give directions to move a turtle and make the turtle do things. Each step corresponds to programming activities where you specify an action then details about the action, for example, move (action) forward 50% of the way up screen (details about the action).

There’s also kid-oriented robots like KIBO, a robot developed at Tufts University geared to kids ages 4-7. KIBO is now on Kickstarter looking to mass market their technology.

Kids of almost any age also might appreciate the Computer Science Unplugged and computational thinking projects. Like board games, these projects teach computer science and programming concepts without computers.

If your kids are comfortable with games like Robot Turtles and CS Unplugged activities, then you might try next projects with a coding aspect.

Robots like Sphero make it easy to direct their cute little robot ball around a room then graduate to programming the robot. Computational thinking projects also have a few projects where basic programming in Python is useful for more advanced projects.

From a simple use of coding, kids also can gravitate to programming languages geared towards kids and education or languages like Python. For example, there is at least one ebook online on how to teach basic Python to kids. They learn not only a small bit of the language but, more importantly, they learn programming concepts.

Languages geared towards kids tend to use the Logo language, where kids enter basic directions and an avatar (often a turtle) follows the directions on screen, or they use a block language like Scratch, Alice, Tynker, and several others. These languages make it easy for kids to focus on what the language does and less on the specific syntax. In contrast, when adults use a programming language, syntax and structure are critical and what a bit of code does is slightly less important.

When kids are 10-18, they might start at the beginning with board games and programmable robots, or languages geared towards education. But they also might dive into languages like PHP, Python, or JavaScript as part of reading online, finding a neat project, then trying to replicate the project on their own computers. They also might love a game, learn how to modify the game, and get into coding. I used the web browser View > Source menus, for example, to learn HTML, CSS, and JavaScript, as did millions of people 10-15 years ago. Technology is everywhere and there are a number of ways older kids can latch on and learn.

While parents might have mixed feelings about their kids being lost for hours in video games, some games can lead to programming. Minecraft can be put on the Raspberry Pi, a hand-sized computer designed to help kids get into hardware and software projects. Skyrim and other games make it somewhat easy for older kids to research then code modifications to make the game even more fun.

I’d also highly recommend you find local programming groups like Coder Dojo where kids and adults can work together on computing projects. It’s a structured way to relax and have fun with technology while engaging other people. Technology is a social activity, not strictly solo. You also learn more by sharing and debating.

And I would encourage parents and kids to look for online resources geared towards teachers who teach computer science and programming. Often there are resources like Minecraft for Education parents can use to get their kids started, or for kids to explore.

Bottomline, though, and this is true of any subject, it is important to start kids (and adults) at a place they find comfortable and provide them with tools to explore and find their own way. Programming and computer science can be fascinating and absorbing. But you have to discover it for yourself. A teacher or parent can't force you to be enthralled about a concept or making a computer do something.

Teachers

What I have found interesting about publishing this magazine is how many teachers want to learn programming and computer science for themselves as much as their students. There is a lot of energy, fun, and ingenuity going on with teaching computer science and coding in the classroom. Even better, it is not a fad. Teachers get the connections between the math taught to kids for generations, for example, and how math is used in computing. Teachers also get the need for guidelines for online behavior, another critical skill if you want to be technology literate.

What applies to kids and adults also applies to teachers: there are many options out there to learn computer programming and computer science. It's important to be holistic, to not focus strictly on learning a job-related skill. It's more important for kids to have a well rounded view of technology, a love for gadgets and a healthy respect for how they work and how they might or might not fit into society.

While teachers might enjoy board games, and Robot Turtles might work great in kindergarten and first grade classrooms, the Computer Science Unplugged project has more projects geared towards the time constraints of a classroom, as well as the laser focus on one topic for each project.

If students graduate to programming, tools like Scratch, Alice, Tynker, Codea, Minecraft, and the like are great for having kids do projects within a single class period or over a period of time. There are many resources online to help distill these programming languages for education into projects kids can handle easily.

Finally, Skype in the classroom is a great example of technology teachers and kids can use to connect with other teachers and classrooms. You don’t learn programming, necessarily. But teachers and students do expand their horizons, learn a lot about the world, and engage people they would never meet otherwise.

It's Not About Coding

As I noted at the start, the biggest lesson learned in my first year publishing this magazine is that coding is not the answer. The answer is exposure to technology, computer science, and programming. Most people will never code. Yet they should learn enough about programming to realize their phones, tablets, computers, and other devices are not magical. They're tools created by other human beings like them. And, as with any tool, they have limitations and benefits. Tools can be extremely fun to use.

It’s also true groups charged with creating a programming and computer science curriculum treat programming as one aspect of the curriculum. While there is a lot of hype outside classrooms about how everyone must learn to code, people charged with creating a curriculum for students take a more holistic and broader view.

I want to thank you and all my readers and subscribers for a great first year publishing this magazine. I started Help Kids Code as a way to explore computer science and coding, and to meet then write about people doing really neat stuff with both. It’s been a fun ride. I look forward to the second year!

Learn More

Turtle Robots

http://www.thinkfun.com/robotturtles/

KIBO

http://www.kinderlabrobotics.com/
https://www.kickstarter.com/projects/559733758/kibo-young-kids-programming-robots-with-wooden-blo

Sphero

http://www.gosphero.com/

Mindstorms

education.lego.com/en-gb/preschool-and-school/secondary/11plus-mindstorms-education

Move the Turtle

http://movetheturtle.com/

Scratch

http://scratch.mit.edu/
http://scratched.media.mit.edu/
https://code.google.com/p/scratch-unplugged/
http://www.simonhaughton.co.uk/2013/02/scratch-20-resources-and-planning.html

Alice

http://www.alice.org
https://kidscodecs.com/alice-tutorials/

Tynker

http://www.tynker.com/
https://itunes.apple.com/us/app/tynker-learn-programming-visual/id805869467

Codea

http://codea.io/
https://kidscodecs.com/codea-tutorials/

Programming Languages for Education

https://kidscodecs.com/resources/programming/education/

Minecraft

https://minecraft.net
http://minecraftedu.com/
https://kidscodecs.com/raspberry-pi-projects/

Skype in the classroom

http://education.skype.com

Coding Schools

https://kidscodecs.com/resources/coding-schools/

How to Choose Your First Programming Language

https://kidscodecs.com/how-to-pick-a-programming-language/

Computer Science and Coding Groups

https://kidscodecs.com/resources/organizations/

Computer Science Teachers Association (CSTA) Curriculum

http://csta.acm.org/Curriculum/sub/K12Standards.html

UK GCE AS and A level computer science

To give Americans, in particular, a general idea how other countries teach programming and computer science.
https://www.gov.uk/government/publications/gce-as-and-a-level-for-computer-science
https://www.develop-online.net/news/uk-govt-outlines-computer-science-curriculum/0115853