20 votes

Teaching coding to an eight year old with Scratch?

I have a relative whose 8 year old has shown a keen interest in coding. He even takes books out of the library about coding even though he's never done it and I dont think he understands most of what he's reading. Seems like a little Bill Gates just dying to get started.

I used to teach LOGO to kids back when the dinosaurs roamed the earth and I looked at some recent versions. Its good, and the logic is all there, but the end results are fairly mundane for a kid who's already experienced amazing video games. Then I stumbled across Scratch, a much more visual programming tool and it seems to fit what we need. Scratch allows kids to make animations, simple games, even do motion detection, music all with sprites that they can manipulate using drag and drop coding blocks. Lots of online video tutorials that he can follow himself too. https://scratch.mit.edu/

Before I dive headlong into Scratch, just wondering if there are other even better tools for teaching coding to kids? Or what your experience might be with them?

25 comments

  1. [3]
    Mendanbar
    Link
    Does the kid in question play Minecraft at all? If so, MCreator might be a possible avenue. It's an IDE that allows you to easily make full Minecraft mods in a visual way similar to scratch, but...

    Does the kid in question play Minecraft at all?

    If so, MCreator might be a possible avenue. It's an IDE that allows you to easily make full Minecraft mods in a visual way similar to scratch, but it grows with you in that you can dig deeper into the modules and start actually programming in Java. There's a bit of a learning curve, but I was able to get my kiddo set up with it a couple of years ago (he's 13 now) and he's been independently making stuff ever since.

    18 votes
    1. [2]
      gowestyoungman
      Link Parent
      Good question, not sure if he's into it or not. Only drawback is that Im not familiar with it if he isn't but I guess the teacher could become the student too.

      Good question, not sure if he's into it or not. Only drawback is that Im not familiar with it if he isn't but I guess the teacher could become the student too.

      3 votes
      1. Mendanbar
        Link Parent
        Well you can join the club. I knew almost nothing about Minecraft until I got my kids set up with it years ago and now I think I play more than they do. 😂 I mentioned it because motivation can be...

        Well you can join the club. I knew almost nothing about Minecraft until I got my kids set up with it years ago and now I think I play more than they do. 😂

        I mentioned it because motivation can be a factor sometimes with my kids, and I've found that relating the coding to an actual game they enjoy playing helps hold their interest. Definitely helps them persist in solving a tricky problem when they know the result is a fun mod.

        9 votes
  2. [2]
    Interesting
    (edited )
    Link
    I think Scratch is great when kids want to code but their reading, typing, and spelling skills aren't quite there yet. It's a great introduction to the sort of logical thinking skills you need to...

    I think Scratch is great when kids want to code but their reading, typing, and spelling skills aren't quite there yet. It's a great introduction to the sort of logical thinking skills you need to become a programmer.

    That said, I think it is quite important to plan to move off of Scratch at some point. Get them working on a typing program (Nitro Type is fun practice), and make sure they're keeping up in ELA at school and reading regularly.

    Some signs a kid can move on from Scratch is when they can type at at least 20-30 wpm with good accuracy. They can spell the sort of words they might use in a program consistently. Their independent reading is fluent, and even if they can't decode a word, they can still learn the meaning from context, or look it up. They get the idea that programming is sequential and can follow the logic of a basic program and "run it in their head"

    A good, free, child-friendly next step is Khan Academy's Javascript drawing and animation courses, not just for the course itself, but because they've written some decent child-friendly documentation, and using it still doesn't require much in the way of environment troubleshooting skills. You may need to provide some support with the coordinate plane for children on the younger side. Scratch uses a Cartesian plane with the origin in the center, and Processing.js uses a canvas with the origin at the top left corner, which is a big change.

    Once they're comfortable with that content they should be capable of moving on to more adult resources like Free Code Camp, though they may need some direction and help learning concepts like the file system, using a command line interface, and using whatever text editor or IDE they pick.

    Signs they're ready to move to adult tools would be that they can write a game that's 100-200 lines of logic that follows good programming practice.

    11 votes
    1. gowestyoungman
      Link Parent
      Very helpful. Thanks. I forgot all about Khan Academy. And free code camp looks like a great step up when he's ready. Very good point about learning to type with accuracy. If he shows continuing...

      Very helpful. Thanks.

      I forgot all about Khan Academy. And free code camp looks like a great step up when he's ready.

      Very good point about learning to type with accuracy. If he shows continuing interest in coding, I will definitely get him going on that asap. Just tried Nitro Type and it looks motivating. Last time I taught typing we were still in the Mavis Beacon Teaches Typing days (1987 release version). Surprisingly, looks like its still around too.

      2 votes
  3. [5]
    trefulo
    (edited )
    Link
    With my son, while he played around a bit with Scratch, what he really wanted to build was simple video games, and for that we've found that Microsoft MakeCode: Arcade has been a fantastic fit. It...

    With my son, while he played around a bit with Scratch, what he really wanted to build was simple video games, and for that we've found that Microsoft MakeCode: Arcade has been a fantastic fit. It offers a scratch like graphical programming environment, but with a focus on 2D arcade style games. It also supports textual programming in either javascript or python, so it naturally graduates to textual programming when the child does.

    My son has really taken a liking to it, I think especially because there are number of hardware platforms that support Arcade MakeCode, in particular he has a TinkerGen GameGo a simple gameboy like device which you can load Arcade Makecode games onto. He's gotten a huge thrill from being able to make his own games, load them on the device and share those with his brother or cousins.

    There are tons of instructional videos, or example games available to help learn from.

    Makecode also has a mode for the micro:bit and Minecraft Education which uses the same graphical / textual interface for programming a simple hardware device or minecraft plugin type things.

    Definitely worth checking out, I didn't find it until a friend of mine mentioned it but its been a huge boon to our son's programming journey and I can't help but spread the word.

    8 votes
    1. [2]
      Mendanbar
      Link Parent
      Just wanted to say thanks again. My son has been working on games nonstop in MakeCode, and even using the built in music creator! I didn't even have to walk him through anything. I just got him...

      Just wanted to say thanks again. My son has been working on games nonstop in MakeCode, and even using the built in music creator! I didn't even have to walk him through anything. I just got him logged in and he ran with it. I'm now seriously considering a GameGo for his birthday this year. :)

      5 votes
      1. trefulo
        Link Parent
        That's awesome, glad he likes it. It really is a gem but doesn't seem to be as widely known as it deserves. I'd recommend the GameGo as well, I think it makes coding much more visceral as they get...

        That's awesome, glad he likes it. It really is a gem but doesn't seem to be as widely known as it deserves.

        I'd recommend the GameGo as well, I think it makes coding much more visceral as they get to see and show others the fruit of their labors.

        4 votes
    2. Mendanbar
      Link Parent
      Thanks so much for sharing this! I hadn't heard of MakeCode before but it sounds great. Definitely showing my son when he gets home from school today. ♥

      Thanks so much for sharing this! I hadn't heard of MakeCode before but it sounds great. Definitely showing my son when he gets home from school today. ♥

      4 votes
    3. gowestyoungman
      Link Parent
      That looks like a very logical move up from Scratch. I bet he'd love it. Thanks for the idea.

      That looks like a very logical move up from Scratch. I bet he'd love it. Thanks for the idea.

      3 votes
  4. Mendanbar
    Link
    Also, just FYI there is a Scratch Jr for younger kids that runs on ios and android. It's a bit more convenient for "on the go", but it is definitely targeted at a younger audience (age 5-7) so may...

    Also, just FYI there is a Scratch Jr for younger kids that runs on ios and android. It's a bit more convenient for "on the go", but it is definitely targeted at a younger audience (age 5-7) so may not be appropriate here.

    5 votes
  5. [2]
    DanBC
    Link
    Scratch is great. If you have a bit of money the BBC:MicroBit stuff might be interesting because it's tinkering with hardware, and you can move between a Scratch-like environment that uses blocks...

    Scratch is great.

    If you have a bit of money the BBC:MicroBit stuff might be interesting because it's tinkering with hardware, and you can move between a Scratch-like environment that uses blocks (which they call MakeCode) or Python. They feature an emulator so you don't need to buy the board.

    There's a reasonably developed ecosystem of teachers who've been using the Micro:Bit and who are sharing tips and tricks.

    https://microbit.org/

    https://makecode.microbit.org/

    https://python.microbit.org/v/3

    5 votes
    1. gowestyoungman
      Link Parent
      Oh man, if that existed when I was in school I would have gone deep into playing with it pretty quick lol. This is great, another motivator that will keep his interest.

      Oh man, if that existed when I was in school I would have gone deep into playing with it pretty quick lol. This is great, another motivator that will keep his interest.

      3 votes
  6. caliper
    Link
    I’m a little late to the conversation, but you may find this useful. There’s an organization for kids called CoderDojo. Local dojos organize free get togethers to help kids explore tech. My kids...

    I’m a little late to the conversation, but you may find this useful.

    There’s an organization for kids called CoderDojo. Local dojos organize free get togethers to help kids explore tech. My kids have gone to many of these events and I’ve been a mentor at our local dojo, so here are my biased thoughts.

    Scratch. I LOVE Scratch. During events I’ve seen small kids make lovely animations, play around with sounds and controls, ánd I’ve seen a 13 year old create rudimentary physics engine in Scratch. I’ve used it together with Raspberry Pi’s and the Lego Mindstorm programming environment at some point switched to the same Scratch building blocks. It is a very versatile IDE/runtime. And this is coming from a senior developer.

    My most important advice is: let kids play and enjoy themselves. During a CoderDojo event you’ll see kids make an animation of dancing characters. Although that might not seem like programming, it’s a great stepping stone into programming. And they will be just as proud at the end of the session. Cheering them on and praising them makes them enjoy it even more and those kids come back to try something else the next time. It’s about getting them excited, because that will get them to enjoy and advance in programming.

    So see if they have a dojo in your area. And if they don’t, check out CoderDojo’s resources. All the materials used at an event are crowdsourced and open source, you can grab it from their repos. There are excellent small projects for different levels of experience.

    4 votes
  7. domukin
    Link
    My 7 year old has take a couple of programming courses, I’ve seen them using Scratch and PencilCode.

    My 7 year old has take a couple of programming courses, I’ve seen them using Scratch and PencilCode.

    3 votes
  8. Halfdan
    Link
    I like Godot, but there are a few things you have to get before you can really use it. For one thing, you need to grasp the GDscript language (sorta Python inspired) and you need to understand the...

    I like Godot, but there are a few things you have to get before you can really use it. For one thing, you need to grasp the GDscript language (sorta Python inspired) and you need to understand the node system, and it also assume that you have an understanding of OOP principles. I think it took at least a year before I was comfortable with Godot. But I'm 46 years old. An 8 year old would likely be much faster.

    There are also App Game Kit Classic, which is basically an evolved BASIC language. It even still have GOTO. Although it got a VR DLC, the 3D capacities are really dated. Also, you have to code pretty much everything from scratch, unlike Godot which has a lot of build-in functionality for basic game functions.

    3 votes
  9. RheingoldRiver
    Link
    I'd like to suggest the game SpaceChem where you learn about looping, if statements, async/await, memory efficiency vs time efficiency, and probably others through the guise of a (really fun)...

    I'd like to suggest the game SpaceChem where you learn about looping, if statements, async/await, memory efficiency vs time efficiency, and probably others through the guise of a (really fun) puzzle game. It also has a silly, fun story that you can read with your kid. They won't realize they're learning to code, but when they do start coding, the intuition from SpaceChem will help a lot when explaining concepts.

    The puzzles are challenging so this might be a do-it-together kinda thing but I think a bright 8-year-old should be able to do most of the early levels at least. And there's a lot of solutions on youtube so you can turn it into "learn how to adapt other people's code when you are stuck" too.

    3 votes
  10. [5]
    cdb
    (edited )
    Link
    Scratch and its animations and puzzles seem fun, but I don't have a lot of experience with it. I don't know if this is too much for an 8 year old, but I enjoyed playing around with Karel the robot...

    Scratch and its animations and puzzles seem fun, but I don't have a lot of experience with it.

    I don't know if this is too much for an 8 year old, but I enjoyed playing around with Karel the robot while self-studying the free Stanford java course. It uses simple commands to make a robot walk around a graphical space with simple move and turn commands and has a good path to learning basic concepts with real code. It looks like it's now in python. Might be worth checking out.

    https://compedu.stanford.edu/karel-reader/docs/python/en/chapter1.html

    2 votes
    1. [4]
      gowestyoungman
      Link Parent
      It looks very similar to LOGO actually. Based on the same concept for sure. LOGO uses a turtle instead of a robot but the commands look similar.

      It looks very similar to LOGO actually. Based on the same concept for sure. LOGO uses a turtle instead of a robot but the commands look similar.

      2 votes
      1. [3]
        cdb
        (edited )
        Link Parent
        Yeah, it's not the most exciting relative to modern games so I wonder how well it'll keep a child's attention. On the other hand, it's using a "real programming language." When I first started, I...

        Yeah, it's not the most exciting relative to modern games so I wonder how well it'll keep a child's attention. On the other hand, it's using a "real programming language." When I first started, I wasn't interested in trying an approximation or abstraction of a programming language (I'd learn later that abstraction is super important). One of the projects not too long after the Karel portion was to program the game Breakout. That gave me a huge sense of accomplishment. I'd just made a real game using a "real programming language," and I felt like a whole world was opening up to me. I remember it as a significant milestone in my programming journey.

        2 votes
        1. [2]
          gowestyoungman
          Link Parent
          I get that. I was all ready to get him going on LOGO but its also quite limited graphically, but I definitely want him to experience that same thrill when you finally complete a project and it...

          I get that. I was all ready to get him going on LOGO but its also quite limited graphically, but I definitely want him to experience that same thrill when you finally complete a project and it works as you designed it. That's the hook :)

          2 votes
          1. scarecrw
            Link Parent
            Perhaps you ran across this already, but Python turtle is, in my opinion, the modern successor to Logo. It might not have the same appeal as Scratch as for as ease of use or graphics, but it does...

            Perhaps you ran across this already, but Python turtle is, in my opinion, the modern successor to Logo. It might not have the same appeal as Scratch as for as ease of use or graphics, but it does start students with Python which is a huge advantage if they are interested in pursuing programming further.

            2 votes
  11. somewaffles
    Link
    I can't comment on Scratch much, it does seem like a great tool to learn coding concepts. What I will say though, is that you should help make sure they have actual projects to work on. I was very...

    I can't comment on Scratch much, it does seem like a great tool to learn coding concepts.

    What I will say though, is that you should help make sure they have actual projects to work on. I was very simliar at that age, and would get programming books from the library all the time. I remember it being fun for a little while, but the books never had "fun" projects to work on, and I would get lost and ultimately lose interest.

    This was a long time ago in the early/mid 2000's and there are now obviously tons of resources / tutorials out there. At this point, the issue would be inversed, where the number of resources/tutorials is so large, it's extremely overwhelming. I'd definitely help sift through and find some projects where there is a final product they can visualize.

    2 votes
  12. Narry
    Link
    This WikiPedia article on Educational Programming Languages is quite possibly one the best resources I've encountered on the subject. I stumbled onto it while trying to figure out how to describe...

    This WikiPedia article on Educational Programming Languages is quite possibly one the best resources I've encountered on the subject. I stumbled onto it while trying to figure out how to describe Carnegie Mellon University's Alice 3.

    2 votes
  13. Zorind
    Link
    Scratch is great (assuming it still works how it did back when I used it as my intro to programming at a summer camp). It is ultimately pretty limited, but a great way to do things visually as...

    Scratch is great (assuming it still works how it did back when I used it as my intro to programming at a summer camp). It is ultimately pretty limited, but a great way to do things visually as well as being able to immediately how the changes you make affect the visual output.

    I’d definitely look for an introduction to scratch gaming book or something to follow along or help provide ideas. You could also see if there are any community or library events nearby utilizing scratch, or summer camps or something like that.

    One thing that can work as a nice follow-along to Scratch is GameMaker Studio (I think I’ve used 2, but that was a couple years ago) - it has an optional programming interface that is a bit similar to Scratch’s.

    2 votes