Interactive Tutorial: First Steps in Snap!

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!

Interactive Tutorial: First Steps in Snap!

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 was bored so I decided to check it out, it kind of reminds me of Kodable!

I was bored too and kinda did all of it… Well not all of it near the end I just found the next level block and cheated

Because I didn’t know how to jump up to the other platform

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”.

interesting. Which part of

jump_up

did you find hard?

Thank you, Peter!

I’ve just fixed the typo, appreciate your report

Testing again it seems like the turn around block I used for some reason didn’t work
my brain has failed me

Turns out that gap retuurns true even if theres not a platform eventually to the right of it, this probably could confuse some people, like it has me…

One thing I noticed is that if you fall (walk off the edge) of a platorm with something below it flat out ignore the platform and you pass through it.

of course, if you fall off, you fall off. That’s the point.

yeah but there’s a platform below the area so shouldn’t it break the fall?

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

Ah, good point, yes!

This is nice! Will it make it to the examples dialog when you select file->open?

thanks! Yes, including this in the examples is on my list.

Fixed! (I hope). Thanks for this report, this is exactly what helps me.

Very cute!

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.