teaching / guides / primary

# Teaching Primary Students

teaching

The tutorials on this site don’t require a ton of complicated math, but they do require a few prerequisites:

• Thinking in Coordinates: Processing uses a coordinate system where `0,0` is at the top-left of the window, X increases to the right, and Y increases downwards. Students need to be able to reason about these spatial relationships. It doesn’t have to come completely naturally, but it might be difficult to teach about programming if students don’t know how coordinates work.

• Thinking in Variables: Processing uses variables to store data, which might be a bit of a jump for students who haven’t seen variables before. Again, it doesn’t even need to be very complicated. If I tell you that `X` is 7, and Y is `X+3`, can you tell me what `Y` is?

• Thinking Abstractly: This one is hard to quantify, but programming involves a lot of abstract thinking, breaking things down into smaller pieces, and combining those pieces into a larger whole. I don’t know a great litmus test for this, but students should be able to, for example, break down a goal of “draw a garden scene” to smaller steps like “draw the grass, then draw some flowers, then…” and then further break those down into smaller steps. This comes with practice.

• Paying Attention: I’m not trying to be flippant here, but most of these tutorials are designed to have a teacher lecture for 30 minutes to an hour, and then have students work on their own for an hour or more. That might not be reasonable for all age groups.

## Alternatives

I would guess that these prerequisites are learned around middle school. So realistically the tutorials on this site are targetted at high school or college students, or even adults.

If your students don’t meet those prerequisites, don’t worry! You can still teach them the fundamentals of coding! This often doesn’t even look like coding (some even look like games), but you’re still teaching concepts that they’ll use later if they ever do take a coding class. Concepts like conditionals, looping, breaking a problem down into smaller steps, and critical thinking.

There are a ton of resources out there for younger students. Here are just a few:

• Code.org has a ton of tutorials organized by grade level (including students who can’t even read yet!), subject, whether you have a computer in the classroom, and your own experience level.

• Scratch is a visual programming language (it looks like Lego blocks) designed for younger students. The Scratch website contains a ton of resources, and students can easily share their creations.

• Alice is a simplified 3D scene creator that allows students to create stories about characters interacting with the world. This is more about story telling than it is about creating things like games.

• Twine allows you to create “choose your own adventure” stories. This requires typing out a story and all of its branches, so it might not be the right thing for very young students. But it’s a cool way to get those English nerds (I’m allowed to say that because I was one of them) interested in computer science.

• Lightbot is a game where students write instructions that a robot follows to get through a maze.

• Secret Coders is an illustrated book series about students solving mysteries and learning about code. The website also has resources for learning more!