When we think about all the things that we recognize as “essentials” to our children’s learning, the list can get really long very quickly. Recently, several high-profile individuals are advocating to add another thing to that list, coding.
Why?
Coding is the set of skills and concepts used to modify or create software on a computer or mobile device. Coders are responsible for the apps that have become such an important part of our lives but there’s a huge shortage of people with this skill set. To meet demand, it’s estimated that another one million programmers will be needed by 2020.
Beyond the opportunity for jobs, we see potential in learning to code as a way for students to develop logical thinking, problem-solving, creativity, and resilience. As James Dalziel, UWCSEA East Head of Campus puts it, there are three reasons why we think kids should engage with coding:
- to understand the digital tools that are an integral part of our lives
- to engage with the kind of thinking similar to learning a new language
- (and this is the most important) to practice problem-solving through computational thinking
"Computational thinking teaches you how to tackle large problems by breaking them down into a sequence of smaller, more manageable problems. It allows you to tackle complex problems in efficient ways that operate at huge scale. It involves creating models of the real world with a suitable level of abstraction, and focus on the most pertinent aspects. It helps you go from specific solutions to general ones.""Why every child should learn to code" by Dan Crow theguardian.com Friday 7 Feb. 2014
UWCSEA Hour of Code by @klbeasley on Instagram |
How?
When suggesting appropriate entry points with kids, it's important to consider two factors:- How old are they and what is their level of experience already with coding?
- What interests them most? Here are five basic interest areas they could engage with: animation, games development, app development, web development/remix, and physical computing.
What?
Getting started with younger children (3-7 years old)
Daisy the Dinosaur is a fun, simple app for iPads that teach basic programming while making the dinosaur move, jump, grow and shrink. Using drag and drop blocks, kids can solve challenges or use free-play mode to write their own programs. Daisy the Dinosaur even explores concepts like loops and conditional programs.
Kodable uses a maze game to teach basic logic, sequence, loops and functions with directional command blocks. A great feature of Kodable is that it introduces the youngest children to the concept of debugging, trying to solve problems with their code when it doesn't work as anticipated.
There are even support materials for parents.
play-i robots are programmed via code blocks from an iPad. Your child programs movements and actions in a sequence and sends the script to the robot who executes the action. The robots have sensors that can be used to learn basic "if" statements like: "if there is a sound, then turn clockwise 90 degrees." These are a great introduction to physical computing as you can set up a series of "challenges" for your child to program and solve.
Introducing coding to older children/pre-teens (6-13 years old)
Hopscotch is an object-ordiented programming app for the iPad that has a great slogan.
"We founded Hopscotch so we could build the toys we wish existed when we were kids."
Using object blocks, children can create characters that respond to multi-touch gestures and sounds. These can be combined to create games, animations, etc. based on stories in the child's mind and see them come to life on the iPad.
Turtle Art is a creation of MIT's Media Lab and is an open source project designed to have a low floor but a very high ceiling for what kids can do with it. Turtle Art at it's most basic uses command blocks to create line art. But, since it can take input from sensors and output to a variety of platforms, Turtle Art can be used to program robots, and even create applications. See intro help files here.
Scratch is another MIT creation that uses object blocks to help children make interactive stories, games and animations. Our own students are currently coding in Scratch to produce a series of mini-games about life at UWCSEA East. Find out more about what kids can learn from Scratch.
Scratch challenge cards Scratch Learning Resources
Scratch Challenges
Code.org has a collection of resources for all levels of learning coding and computer science. They've recently released a K-8 Intro to Computer Science course that is worth exploring in addition to their wide variety of tutorials across several different coding languages.
Extending the learning
LearnStreet is a site that offers self-learning modules and projects for the most popular programming languages today including Javascript, Ruby, and Python. Learn at your own pace and use the integrated code testing window to develop your skills in character-based programming.
Mozilla Webmaker is a project that helps people create great web content while also teaching how the web works. This is a great next step for students interested in web-design or content creation.
Harvard CS50x is a self-paced introduction to the foundations of computer science and programming. This would be a great thing for kids who have an interest in going beyond object-oriented programming. The course can be taken for free or fee-based with a certificate.
These resources can put your children on a path to exploring computer science and maybe they'll develop a passion for it. There's no one right path, and as their parent, don't feel like you need to know all the answers. You just need to give them the opportunity, praise their effort, and let them know you value their explorations.
What are your favorite resources or approaches? Are you facing any challenges? Please add them to the comments to continue the conversation.