What It’s Like Teaching Second Graders to Code
By: Sean G
Tags: Coding, Kids, Education, Programming, Edtech

When I first started teaching in Fall 2019, it completely slipped my mind that my students were so young, their knowledge of how to use a computer was similar to a boomer trying to sign up for a twitter account.

I have to teach them what logging in is, how to sign up, how to save files and more basic computer literacy skills.

However, it was always manageable for in-person teaching. I could walk around, multitask with ease, and point out where to click. My job was 80% teacher and 20% tech support.

Now with remote teaching, I turned into a weird type of half-n-half where I’m half teacher and half Zoom tech support.

The experience is similar to when your Mom asks you for help with her iPad/iPhone/Laptop/Toaster or when you have to explain to her why you can’t open Netflix when it’s installing updates. It’s just as frustrating as it is ineffective.

We also started doing in-person teaching where the students are in a socially distant classroom with a teacher, and I’m projected on a large screen teaching as I sit at home.

It creates a weird dynamic where I ask a question and all they see is a large head staring at them blankly in the midst of silence. So not only am I half teacher and half tech support, but I’m also starring in the role of an interactive Dora The Explorer special — The Socially Distant Adventure.

But tech issues are only a small slice of the whole cake when it comes to teaching elementary students how to code.

The main challenge of teaching coding to kids is attempting to turn a confusing topic into an understandable one.

From Confusing to Understanding

If a second grader asks me what a variable is, I tell them:

“A variable in coding is a symbol like x or y in math to store numbers, strings, or any data type in a computer at a specific memory address. We can reuse that variable throughout the program where the data is bound to change.”

What from that passage would you have gotten if you yourself were the second-grader?

There are many ways to explain a topic to someone in an understandable and digestible manner to avoid confusion. But explaining it the way we learned it when we were in college or high school isn’t an effective way to teach second-graders.

I’m sure many of us can relate to the struggle of finding the right words to use when a kid asks us a question. We have to find the right mix of simple and technical without losing the bigger picture.

As a teacher, I find that the best way for my students to understand is through the use of metaphors and analogies.

Variables aren’t a memory location in computers to hold data, they’re like boxes located in a specific part of the computer that we can put pieces of information into but we can replace it at any time.

Programming itself isn’t the process of designing and building an executable program to accomplish a computing result, but like a game of Simon Says.

Where you, the programmer, is Simon, and the other player is the computer, and everything you tell the computer to do, they have to do it.

A Slide I Use for My Virtual Classroom | Screenshot by Sean G. (Me)

Although using fun comparisons like programming to Simon Says helps clear confusion to make coding concepts more understandable, it’s not enough for students to learn these concepts but they should also know where and how to apply them.

To actually have them apply these concepts, they have to do so through coding. But it’s not practical to teach coding to second-graders using an abstract computer language like Python or Java.

Photo by Chris Ried on Unsplash

It’s not that they can’t learn it, but it’s impractical for a large class with an average typing speed of .005 Words Per Minute.

That’s where the educational coding platform Scratch comes into play.

How Kids Actually Code

Scratch is a drag-and-drop coding platform made by MIT’s media lab where students can make and share animations, games, and more.

Example of a Scratch Project I Did With My Students | Screenshot by Sean G. (Me)

In Scratch, there are many different sprites and backgrounds you can choose from. You drag and drop blocks that have instructions to make your sprite move, make noises, and more.

Scratch programs can be anything from a dog talking to a fireball with a face, an aquatic band playing music in the sky, a flying cat destroying a meteor, or any other fever dream you would have when tripping on acid.

You know… normal kid stuff.

You can even create variables to keep track of a score, use loops for creating music, and utilize other important coding concepts for your animation/game/fever dream acid trip.

So not only are kids understanding what these concepts are, but they’re also using them in ways to solidify their understanding of coding.

The other great thing about Scratch is if they ever decide to continue their coding education, they would immediately see the connection between the blocks in Scratch and the syntax used in Java, Python, or C++.

The programming concepts and blocks they learn in Scratch are transferable to any other programming language.

I would even see this occur when I would teach my Scratch experienced sixth-graders Python.

Even Harvard’s Intro to CS class — CS50 uses Scratch to get their student’s started and then transition them into Python or C.

But teaching kids how to code isn’t just about them knowing the programming fundamentals and concepts. It’s about expressing their creativity through technology to make something they’re proud of.

Expressing Your Creativity Through Technology

Even if they don’t decide to become a software engineer in the future, learning how to code in Scratch is great. Not only for kids but for just about anyone who hasn’t coded before.

“When you become fluent with reading and writing it’s not something you’re doing to become a professional writer, very few people become professional writers, but it’s useful for everybody to learn how to read or write… Most people won’t grow up to become professional computer scientists or programmers but those skills of thinking creatively, reasoning systematically, working collaboratively, skills you develop when you code in Scratch, are things people can use in life no matter what they’re doing in their work lives. And it’s not just about your work life. Coding can enable you to express your ideas and feelings in your personal life.” — Mitch Resnick, Director of the Lifelong Kindergarten group at the MIT Media Lab, From a TEDx Talk he did at Beacon Street in Nov. 2010

Coding is important not only because students learn important life skills like logical reasoning or collaboration, but they’re able to express themselves creatively through technology.

Photo by Markus Spiske on Unsplash

That’s the beautiful thing about Scratch and teaching kids how to code. It’s focused on their creativity and how they want to express themselves — not just the coding techniques.

When I first started coding in high school, having the ability to create something that was mine and express myself creatively was what made me enjoy coding in the first place.

Not the algorithms I did for homework in college, not the logic and theory I learned in classes, and not coding fundamentals I learned in high school.

Coding isn’t this thing where you have to think like a computer all the time or be super logical. You don’t have to be a math genius or good with technology to learn how to code.

You just have to be willing to express your creativity and have a desire to learn — which is something kids happen to be really good at.