I’m thinking of starting a local group for kids (8-12 yo) to learn programming using Scratch.

Do you have any pointers that I might consider?

For reference, I’m a senior developer and architect, the programming part will probably be the easiest of it all.

  • the_rhyme_minister@lemmy.world
    link
    fedilink
    arrow-up
    29
    ·
    edit-2
    1 year ago

    I actually did this for about 5 years (5 years ago), specifically making games in Scratch. I’m wary about sharing too much personal information in a comment thread so feel free to message me if you’d like to discuss further, I’d be happy to share context that might be relevant.

    Here’s a few key things I learned.

    • Get them to interaction as soon as possible. It’s better to start with a template game that is “playable” but has room for modification e.g. movement speed
    • Age is little indicator of aptitude, I saw 5 year olds speed past kids twice their age
    • Set expectations for what can be done: in scratch; in the time you have; by a single kid. They don’t necessarily know they won’t be able to make a massive 3D open world game
    • Few kids I saw were excited by programming in and of itself but plenty took to it as a means to an end. They might be way more into making a cool animation and they’ll learn how to programme an animation. You have to figure out what they want to do and then show them how to do it by programming
    • Not specific to programming but kids have lives and you have to be prepared to deal with that. They will not all come to you ready to learn, they might be dealing with any number of other things, and they won’t leave you unaffected. This can be as difficult as it is rewarding but it’s ultimately why I left working with kids. I don’t want to scare you off but I saw a lot of adults completely unprepared to be in a child’s life and you very well could be. I’d even go so far as to recommend seeing if you could get someone involved who works with children professionally. I have a lot more on this specifically but down want to pour too much cold water on you.

    Edit: I forgot to add, I did this for a living, not a volunteer

    • Rikudou_Sage@lemmings.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      Saved your comment for later reference. As for your concerns, I think I’m quite ready for that (if circumstances allow) and I’m quite sure I can manage being in a child’s life. As for getting someone who works with children involved, I’m planning on that for the first 3 to 5 lessons to get some pointers. Feel free to pour more cold water if you want, this is definitely also what I’m interested in.

      • the_rhyme_minister@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 year ago

        Firstly apologies; I wrote my previous comment in a rush - on my phone - while at work. I haven’t thought about this time in my life for a while and I think I was just over excited to share my experience. I shouldn’t have gone in with the warnings without knowing you or your experiences. I think want you’re wanting to do is brilliant and I truly wish you the best of luck. Your desire to do something off your own back is honestly half the battle and puts you in good standing to succeed.

        I will provide some context for why I leapt to concerns because I think it’s important to assuage any fears I might’ve created. I’d appreciate if you could let me know once you’ve read this comment (or saved it elsewhere if you find it useful) because I’ll likely want to delete it afterwards.

        I spent the last two years of my time at this company working exclusively in schools and organisations for vulnerable and neuroatypical children, who were no longer attending regular schools. The particular challenges of working with these children are likely not something you’ll face, at least not so acutely, and were the reason why I ultimately couldn’t continue to do the job. At the time I simply wasn’t strong enough to be there for kids that really needed me to be. For most children simply being there is enough, these particular children needed more than I could offer.

        On reflection I think the only really important and universal message I’d want to stress on this side of things is don’t force them. You might have an idea of how it will go, or what you want them to produce, or even the parts of your sessions that you think will be interesting and fun and they will have other ideas. You have to find the bits they care about, or engage with or are capable of and run with that. This is a skill to learn, both spotting what they respond to and being able to improvise around it. You’re still trying teach them something and you have a destination in mind but with something like this that is extra-curricular, you have to flexible about the route you take to get there, and comfortable with idea that you might not reach it, but you can still take them on a journey.

        The satisfaction of a child wanting to show you something they’ve made, that you’ve taught them how to do, is unmatched. At least I haven’t found a feeling equal to it since.

        A few more, less philosophical tips;

        • An fun and easy way to get some valuable intel on the kids is to have them fill out a printout on day one. I used to use a template I’d created, loosely based on Top Trumps with fields for preferred name, drawing of yourself as a superhero, what super power you would have, what would be your super weakness, and then score yourself out of 5 in a few diverse categories like creativity, friendship, kindness, quick thinking, burping. This gives you an opportunity to identify strengths and weaknesses and a handy way to remember names!
        • Kids like big numbers; if you’re going to have a number variable, like a score in a game, make it massive, ten thousand points not ten
        • Be wary of violence if you’re doing games, parents are not all comfortable with it, however crude or cartoony. Make innocuous subs, like water balloons instead of bombs, slingshots instead of guns. Kids will try to get away with it if you give them free-reign of design but make house rules like, “No guns because guns are in loads of games and it’s boring, we’re trying to do something new!” or “Minecraft is the best selling game ever and there’s no guns in that” If you do do weapons make them historic like swords and bows, generally if it’s in minecraft it’s ok
        • If all else fails, toilet humour is always a winner. One of the most successful projects I ever had was a kid who made a fart counter, just a button that incremented a variable and readout at that said “x farts today”, I left it on a laptop at the front and the kids would come up and click it when they farted

        Lastly, if you want any ongoing advice feel free to come back to me here or I can give you my email address, or if you happen to be London or Cambridge (UK) based, I’d be more than happy to meet up for a coffee. I could also dig try and dig out some of my old Scratch template games and prinouts if you like although no promises I know where that stuff is. Really best of luck with this endeavour, I’m sure you’ll have an absolute blast.

        • Rikudou_Sage@lemmings.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Thank you for your message and your concerns!

          I’m sorry for your experiences, it must have been rough.

          Thank you for the advice and if you’re cool with sharing your email, I’ll be happy to ask you for more information when the time comes! I’m not UK based but I’m planning to visit London next year or so, so we might go grab some coffee then!

  • doublejay1999@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    edit-2
    1 year ago

    The whole scratch thing is extremely well put together and is easy to teach. Small chunks, fast results, forgiving environment. It gets kids thinking programmatically without even trying and for those that take to it, it is trivial to say “here are some code words, write this in code”

    The only challenges are differences in ability which in a mixed class of 8-12 yo might be significant, so it would work best if you segment them into those that grasp it quickly and those that take a little longer (not necessarily age)

    The hard bit with teaching kids anything in keeping them tuned in, and a segment approach can help.

  • Redo11@szmer.info
    link
    fedilink
    arrow-up
    13
    ·
    1 year ago

    Get some robots. Big marketing thing and another point of fun and learning. And the results are visible IRL.

      • Redo11@szmer.info
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        In Poland there are quite popular Proton bots. You probably can find them across Europe.

      • CasualTee@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        They are fun, especially with the motorized arms, but they are crazy expensive last I checked. There are cheaper options, for Arduino and microbit. But even those are not cheap. They run at at least $30, without the microbit or arduino, for a couple of motors, IR and ultrasonic sensor.

    • orrefailaT@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Makey Makey is another fun bit of hardware for kids. Works great with scratch too, have them make their own scratch game then use makey makey to build their own controller

  • Kimusan@feddit.dk
    link
    fedilink
    arrow-up
    9
    ·
    1 year ago

    Scratch is great but make sure to let them know that they can see the actual code that runs underneath the drag-drop UI.

    I can also recommend hourofcode.com where there are a ton of good tutorials ranging from scratch-level coding in a game setup (e.g. minecraft) to actual coding in python.

  • balls_expert@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    There’s a minecraft mod called ComputerCraft Edu which is lovely and works on older versions of Minecraft if you’re willing to set that up!

    When they “get” it, it also has Lua in addition the the graphical scratch nodes

  • fsxylo@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    1 year ago

    When I was a kid Lego mindstorm was the shit but I don’t know if Lego even sells that anymore. But my advice is find some robot kit with a building block scripting language.

    Alternatively download unreal engine 4, learn how to use blueprints and show them how to make simple games, as that is another “building block” scripting language.

    Edit: oh, not “from scratch”, “using Scratch” haha oops. My bad.

    • Rikudou_Sage@lemmings.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      No problem! I’d actually love to teach them using Mindstorms or something like that, but damn that’s expensive. Especially because I’d need to buy more than one.

    • astrsk@artemis.camp
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Exactly why I still have and maintain my Apple IIe and old consoles. Both as nostalgia bait for myself but also as a way for my future kids to understand where we started. I don’t expect them to care, but I know I can trust toddlers with the games and programs and technology from the 80s and 90s without having to deal with parental controls or internet privacy concerns. This old tech can be valuable in both education and safe, fun entertainment until kids can learn to think critically about what they’re doing.

  • eeleech@lemm.ee
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    I genuinely don’t know if scratch is the right choice or a simple text based language would be better, especially for the older kids. Just from my personal experience, I started programming in BASIC at 12 and don’t think I would have had as much fun and continued programming if i had used scratch instead.

    • Redo11@szmer.info
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      Well yea, I was 9 when I started programming in Batch, but it is not really suited for every kid. Most kids aren’t nerds. Some may have problem reading and formatting code correctly, let alone understanding anything not seen before. Scratch mostly takes care of that.

    • Rikudou_Sage@lemmings.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      It’s meant for absolute beginners and while there are quite a few talented people, you can’t really expect 12yo kids in general to understand and, more importantly, enjoy writing BASIC.

      • mo_ztt ✅@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I would use python instead of BASIC, if it was me. I also started with BASIC as a kid, but I remember each step up language wise (BASIC -> Pascal -> C) being a big satisfaction of “hey, it seems like this language is a lot better and I can do more with it.” I would echo the recommendation to use actual code though. Language is pretty deeply hard-wired into human beings, and I suspect that the kids that will do well with breaking tasks down into scratch primitives would do equally well with python, and the kids who find python “too hard” or something would also not be able to do too much with scratch. Maybe I am wrong, but that’s my guess.

        My only other thought is to have some kind of graphical / game you can play / real world robotics angle to it. Maybe there’s a little graphical ecosystem pre-provided, and they can write agents that can interact within the ecosystem and then see a visual representation of what everyone’s agents are doing. I would definitely recommend to have a bunch of code that they can read, though; that was where my programming as a kid took a big step forward, was when I got a big disk filled with programs I could analyze and break down.

  • CasualTee@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I’ve used scratch to introduce kids (6~10) to programming. It works quite well IMO. They had a laptop with windows. I recommend a touch screen if possible, especially for younger kids. Though at 8~12yo that should not be as much of an issue.

    I used it with the microbit from the BBC. While not required, a dedicated piece of hardware makes it much more interactive and fun, for a basic introduction. Basically, the microbit can be turned into a remote control for your characters in scratch for example.

    Though, kids get fond of the ability to create pre-programmed scenes. That are not very logic intensive, more like an animated movie. And since they can add their own drawings and voice, they can get very engaged on this sole basis. So the microbit is not required at all.

    Though if you want to use it, Microsoft has its own scratch for microbit that is more annoying to use IMO (you need to flash the program every time, which is not easy for younger kids that have trouble with the mouse), but it unlocks all the capabilities of the microbit for even more interactive applications. You can make them communicates through a basic protocol over 2.4GHz radio, control led strips or even robots for example (though the robots are far from cheap for what they are 😕).

    Both scratch and makecode (the links mentioned above) have plenty of resources if you want to get a lab going. Personally, I would set my expectation fairly low and plan for many additional small features that kids that are really interested could implement on their own. In my experience, some kids will not be interested at all, not until they see a feature they want to interact with at least. Others will try to see what they can do by themselves, before the lab even begin. But usually, the older they get, the less likely they are to experiment by themselves and they’d rather wait for instructions. Which is a shame, but that’s how it is I guess.

    Also, try to make sure they can continue their work from home. Scratch is available on many platforms (though makecode sucks on Android last time I checked) and is trivial to get up and running. That said, importing a project is another matter for kids barely familiar with computers, which is why I would distribute a document aimed at their parent to get them set up.

  • khannie@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Coder dojo have lots of age suitable things to get groups like that started. It’s focused on scratch to get going but moves into other things as they progress.

    I taught at our local one for a while and it was great having lessons all planned out for you based on age and experience.

    https://coderdojo.com/en/

  • nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    Might look at things like Adafruit’s Circuit Playground (BLE or Express). They can be used with MakeCode, which is similar to Scratch, and have fun I/Os.

  • dracs@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    There’s a bunch of great programming games available on Steam. A lot of them start pretty basic, so might be useful for teaching the basics and driving interest.

      • dracs@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        7 Billion Humans and Human Resources Machine (same developer) are probably the most kid friendly ones I’ve played. TIS-100 I found quite fun, but it’s assembly like programming which might be a hard starting point for kids. Zachtronics also make some good games, but the ones I’ve played are more programming games masquerading as something else E.g. chemistry with SpaceChem.

        • Rikudou_Sage@lemmings.worldOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          I played the first two you mentioned, definitely not kids friendly. The bonus level with prime numbers was something else.

          I’ll check the other ones.