In my book Coding as a Playground, I tell the story of Liana, a five-year-old playing with an iPad in her kindergarten class. She is focused. Every so often, she wiggles. She suddenly screams, to no one in particular, “Look at my cat! Look at my cat!” Liana is excited to show her animation. She has programmed a kitten to appear and disappear. With some trial and error, she has put together a long sequence of purple programming blocks. Liana cannot read yet, but she knows that these programming blocks can make her kitten show and hide.
Liana created her kitten movie with ScratchJr, a free programming language developed by my team in collaboration with the MIT Media Lab. We designed it to support young children like Liana in making their own projects and learning about computer science in a developmentally appropriate way. To date, more than eleven million young children all over the world have used ScratchJr to express themselves and it has been translated into many languages. And with PBS KIDS ScratchJr, kids can create their own interactive stories and games featuring their favorite PBS KIDS characters.
In creating her ScratchJr kitten, Liana practiced some of the most powerful ideas of computer sciences:
- She learned that a programing language has a set of rules in which symbols represent actions.
- She understood that her choices had an impact on what was happening on the screen.
- She was able to create a sequence of programming blocks to represent a complex behavior (such as appearing and disappearing).
- She used logic to correctly order the blocks in a sequence.
- She practiced and applied the concept of patterns, which she had learned earlier during math time in class.
At the same time, she problem solved and was determined to tackle a project she cared about (for example, having a long kitten movie). Through coding, Liana was able to create a project from her own original idea and turn it into a final product. She was personally attached to her movie and proud to share it.
As you can see from Liana’s experience, ScratchJr is a coding playground. Playgrounds are open-ended. They invite fantasy play, imagination and creativity, social interaction and teamwork, conflict resolution and little adult supervision. Programming languages like ScratchJr are playgrounds that also promote problem solving, motor skills development, emotional exploration and making different choices.
At the playground, children can go to the sandbox, the swing, the slide or just run around. Similarly, while using ScratchJr, children can engage in all kinds of activities beyond coding. For example, they can create and modify characters in the paint editor, record their own voices and sounds, and even insert photos of themselves. Children can create their own movies or animations, interactive games or stories. Liana’s “cat movie” allowed her to express herself and what she likes.
Coding can provide opportunities to promote positive personal and social skills. The Positive Technological Development (PTD) framework that I created highlights how technology can engage children not only to think in new ways, but also to behave in new ways. It encourages adults to focus on fostering six C’s when using technology with kids: collaboration, communication, community building, content creation, creativity, and choices of conduct.
Just like any language such as English, Spanish or Japanese, which allow us to express ourselves, programming languages such as ScratchJr can do the same. We learn their rules and grammar and, over time, the more we practice them, the more fluent we become. A programming language provides the tools for us to create digital projects to express our thinking, to communicate who we are and what we love.
What can you do to support your young children in learning how to code?
- Find a digital playground. Programming languages that are age appropriate support children not only in learning sequencing, problem solving, coding and debugging, but also in providing tools for expression. Look for coding playgrounds that engage children in compassion, creativity and positive behaviors.
- Think of children as creators. Not all children will grow into programmers and software engineers, but learning how to code will help them to problem solve and to use digital media to create their own projects.
- Consider coding as a type of literacy. Literacy helps us develop new ways of thinking and expression our ideas. Those who can’t read and write, can be left out. Will this be the case for those who can’t code? Coding literacy will open doors, many of them that we have yet to imagine.
- Encourage patience and perseverance. Learning how to code involves persistence, risk-taking and problem solving. Most of the time, projects will not work as expected. The key is to show children to ask questions, try different approaches and not give up. Making mistakes is an opportunity to grow and learn and they are a big part learning how to code.