I’m often asked for a “level 0” introductory project for younger children, especially in the context of elementary school. Usually my answer is to suggest “free play”. But, alas, educators have curricula to follow, tests to take, and little to no time for seemingly unguided activities. Therefore, to address the recurring demand for a “my very first steps in Snap” tutorial I’m working on something that I actually hate pedagogically, but support nonetheless, if only to provide it so we can “get it over with” and then move on to … free play!
It’s a little coding game in the (awful) “code-dot-org” style. It spans over 7 levels plus 2 bonus ones. Starting out with only 2 command blocks each level adds more concepts and blocks, so that at the end you’ve encountered all the usual CT concepts required in middle school (instructions, sequences, loops, conditionals, expressions), and gotten familiar enough with the Snap! GUI to continue with more open-ended projects and puzzles.
This is my current development version of the activity. I appreciate any issue reports (and also your feedback, do you find this useful in your classroom?)
Thanks!
P.S. The animation frames are made from Ketrina’s most wonderful set of new costumes, and the tiles and objects I’ve all made using Snap’s new shapes library
I like this concept. And yes I like it very much when children move on to … free play. We recently had a girl of 9 years old at our CoderDojo who started playing with Scratch for the first time and made 3 projects in a 2 hour period. She was with her father and loved it. She made a project she shared, with just her own voice saying everybody should come to our CoderDojo.
But back to the subject. I know there will be children wanting to learn this way. Not every child will be happy with the option of free play, we see that at our dojo. In school they are told what to do, and they can not decide for themselves any more when they come to us, so this kind of tutorials are really important as a first step to get familiar with Snap! and coding concepts.
I saw a small typo: “A condition is what you call…” now it says “conditions”.
And I found some issues if you spam the green flag (e.g. rocket staying, jumping high), maybe instead something where then use a custom event block that like has another sprite (hidden) reset everything
Honestly, glad to see that this tutorial at least shows conditional loops and if-else statements. Most of the code.org-style games I’ve ever played (such as Lightbot) were just “put the blocks together to tell the character to get to the goal and maybe theres a simple numeric loop but no iterator variable.”
Actually, now that I think about it, there’s no tutorial on variables - that seems like an important concept to teach in an introductory CS course.
Also, I made a $blocks walk () steps::motion block - seems like the “Make a block” button is omitted from tutorials, but the + button in the palette is not. All the blocks could also be directly edited, even project-specific ones like walk::motion and (spoilers if you want to poke around for yourself) () forward
Also...
“Bunnykin Skywalker” feels like a forced pun. Great game though
I went though all the levels and this is what I noticed.
I feel like there should be an objective display, so you know clearly what your program needs to do. I made a program that went to the finish line only to find I needed to collect the items, So I think that should be a little more obvious.
Also it does take a little bit for the character to get to the finish line (Especially on the big levels and when you don’t get it the first try). This problem is multiplied by the number of kids in the classroom, so just keep in mind it may take a bit for the whole class to get though the harder levels.
You also might want to clarify how game elements behave, I had to test a few things to see how they work. I would add a reset level button too so you don’t have to jump off the level to reset it.
I do think this is a good basic introduction to coding especially for children who want a guide instead of exploring on their own.
Also, how did you make the pop-up windows that had instructions?
Reminds me of Swift Playground, an app made by Apple for learning to code in the programming language Swift. You control an orange cycloptic alien who goes by Byte so he can collect pink gems and toggle switches on. That game feels so alluring to me.
Some feedback:
I wouldn't use a repeat () block just to call the same function twice. Thrice? Maybe, but a repeat () for two seems too much to me.
In the same level where I ran into this, the positions of the "items" in the status bar are swapped from the ones in the course. Not something that gets in the way, just something that is worth being fixed.
I accidentally stopped/restarted the project while Bunnykin was in the middle of jumping, and Bunnykin walked midair.
I would also add a button to send Bunnykin back to the start. Either this button is not there yet or it was too secret for me to find it.
Optional, but a level selector would also be good.
These are called tutorials, coupled with the Tutorials library. To turn a scene into a tutorial, open the settings menu and tick Tutorial. The tutorial scene can then be summoned with the Launch tutorial option in the project menu.