Six Tips for Teaching Kids How to Code
About a half dozen kids are sitting at computers in a bright green room, coding their way through games. A speech bubble pops up on a screen—“I got you!” the animated cat says, catching up to the hedgehog. It’s not surprising, because technically, the hedgehog can’t run away yet. It’s this young boy’s first day coding in the dojo.
“Can I make it move?” he asks, and a tutor sits down next to him.
Coding curriculums and self-taught courses are flooding the internet, and it’s more possible for anyone to become a coding teacher: parents, educators, and students themselves. But explaining new concepts like loops and conditionals to a child is difficult, especially if the teacher is new to them, too.
The need for competent coding instructors is growing. According to Gallup, 91% of high-school parents want their kids to learn more computer science.
Kaustav Mitra, vice president of educator programs at Tynker, said the value of a quality educator can’t be understated.
“Why do we have schools? Why do we have teachers?” he asked. The answer: “Teachers are trained to know how students learn” and make the same content work for a group of diverse learners.
“Do you want to use arrow keys?” the tutor asks the boy with the immovable hedgehog.
First: The right arrow. She walks him through the steps and explains where every block of code should sit. “On a map, there’s an x-axis and a y-axis,” she explains. The hedgehog runs to the right. A few minutes later, it can also run to the left.
By the time they make it to the up and down arrows, the boy needs a little less help. He knows how to duplicate the code block, that the x-axis controls left and right, and that means y must control up and down.
His hedgehog moves right, then left, now up and down until, “I got you!”
For people who find themselves in the position of coding teacher—whether in a formal classroom setting or as a mentor—here are some recommendations from experts and curriculum creators.
Don’t get hung up on a single language.
Some languages are easier to learn, making them attractive options for first-time coders. Think critically about where to begin, but don’t sacrifice students’ interest and excitement for a rigid curriculum.
Shauna Garner, franchisee support coordinator at CodeNinjas, said the goal shouldn’t be to master the syntax of a specific language anyway. Instead, the focus should be “the ability to think programmatically and to develop the skill sets of critical thinking and problem solving.
The same skills and concepts are mirrored throughout almost every language. Garner said once you learn one, you never really have to start from scratch again.
“You’re going to pick up different languages if you truly have a passion for coding,” she said. “It’s the foundation that’s more important than the language specifically.”
Try this quiz What is the Best Programming Language For Me? to get an idea of the options.
Teach students using their preferred method.
Gamification is a popular format for teaching kids how to code. It rewards them with “wins,” is visually entertaining, and makes it seem less like work and more like play. And it’s successful—the gaming approach was more effective in increasing student motivation to learn and their knowledge of computer memory concepts, according to a study in “Computers & Education.”
David Dodge, CEO and founder of CodaKid, said they are leaning into video as a tool to reach multiple styles of young learners in a way they are familiar with. Video ranked the highest among Generation Z as their preferred learning tool (PDF, 678 KB.), according to a Pearson survey.
“We are dealing with the YouTube generation,” he said. “We discovered very early on that they respond much better to a video delivery than just text.”
Think about the traditional learning styles, too.
- Visual learners prefer images like maps and graphic organizers.
- Auditory learners prefer lectures, group discussions, repetition and mnemonic devices.
- Reading & writing learners prefer taking thorough notes, reading materials, and essays.
- Kinesthetic learners prefer hands-on activities and tactile representations.
Try a learning style assessment to find out what your preferred method is.
Scaffold the content.
Scaffolded content refers to the idea of gradually pushing a student toward stronger, independent learning. Lessons are broken into sections that are accompanied by gradually fewer tools or less structure as you progress.
“Make sure that what they’re learning in earlier grades really is translating to strong foundations for more advanced concepts as they go on,” said Mitra.
Also, grant opportunities to elevate their interests and try more challenging projects. Progression gives students opportunities to reach milestones and set new goals.
Self-paced, not self-taught.
A self-paced curriculum lets students work through difficult parts at their own speed. Keep certain milestones and goals. If a student needs to spend more time on loops, then letting them do it now will help them succeed with more complex concepts in the future.
The atmosphere shouldn’t be like a typing class—engage with the students like you would in any other class.
“Have them making decisions, especially creative ones, as they’re learning how to write code,” said Dodge. “If they’re seeing the direct impact of those decisions that they’re making in their games and apps you’re going to have a more engaged, enthused student who is going to be more likely to stick with it rather than saying this is boring and putting it down and doing something else.”
Make it a team effort.
The iterative and problem-solving nature of programming means a lot of coding is community-based: Github, Quora and StackOverflow are some examples of forums where professionals crowdsource solutions.
Mimic that experience in a guided way and let students work together, ask questions and help each other through problems. Studies show children work better in groups and still behave well when facilitated by teachers.
A group atmosphere also helps improve social and teamwork skills. Being around like-minded individuals can also keep children engaged and interested in the topic. Also, learning-by-teaching is an extremely effective learning method for students.
For those outside of a classroom setting, consider these options to let children work in groups:
- Start with languages and tools that are kid-friendly.
- Organize some time with friends to hang out and work through an online program together.
- Find a mentor to check in with the child, answer their questions, and help them through tricky concepts.
Everyone gets frustrated, and that’s okay.
Garner said the biggest piece of advice she has for educators is to be patient.
“Sometimes the kiddos need to stand up to get the wiggles out, we let them do that,” she said. “Keep spreading the laughter and the giggles, but still maintaining and recognizing their focus and their attention span.”
That attention span is fairly short. The average attention span of a child is 3-5 minutes times their age, according to Summit Medical Group. It can be challenged even more as programming problems get harder to solve.
Dodge said coding is like woodworking—you chip away slowly and eventually you start to see the project. That can be hard for kids, so he recommends giving them a sneak peek of what the final project will look like.
Reward successes with things they’ll enjoy—picking the next song that will play, doing a brain teaser on the board, or a different STEM activity that gets them away from the screen and gives their brain a change of pace.
“They get really excited about it and then we just encourage them. Let them know that all engineers encounter bugs and you’ve got to be patient,” he said. “You’re going to get better at this and, little by little, you’re going to start to improve and be able to catch these things.”
“I was so excited,” he gushes. “My mom was like ‘AHHH!’” he adds, throwing his head back and yelling to the ceiling.
He teases his plans for when he gets to the next belt—“I’m gonna ask her for cupcakes.”
Citation for this content: Syracuse University's online master's in computer engineering