Star Wars and a Rogue

May the 4th was this week. This week had the first Monday of May.  The first Monday of May is when my library code club meets.  I was thinking of setting up a Scratch Day project for them, but it was May-the-4th, so obviously I pivoted to a Star Wars theme.

Screen Shot 2020-05-06 at 7.14.39 PM

One of a few Star Wars day studios

Finding Star Wars-themed projects was not hard.  There are a few studios with over 100 projects in them.  A lot of these are fan artwork.  There are some incredible artists in the Scratch community.

I found a project with just a color-changing lightsaber that I thought would make a great starter for a wide range of creative ideas.  I found another project where some standard Scratch Sprites (Gobo, Pico, Nano) have been transformed into Star Wars characters.  Great starter for a Chatbot.  I also imagined a Kessel run maze game would make a nice option for my Creative Coders.

I came across this Mandalorian translator which I thought was a great idea.  (If only there was a Google translate for Star Wars languages.  Isn’t there one for Klingon?) I helped the coder out with a suggestion to make it better and got a generous “DUDE thanks” in return.

I put these all together in a class studio and was ready for our virtual club meeting.

Screen Shot 2020-05-06 at 7.29.34 PM**What’s with the new changes to class studios with class passwords?  I can’t find documentation on how it looks from the student’s view or how to explain this to students.  Also, now that I have more than 20 studios in my class I have a hard time adding projects to studios while looking at a project.  Now  I must save and favorite projects then go to the studio and add projects that I’ve favorited.**  

My library code club was a small group but I was happy to see them and show them the projects I had curated for them.  They seemed to have ideas of what they wanted to create. It’s still weird to send them off to code and just hope they don’t get stuck or get frustrated and not continue.  I told them I would be around coding as well and if they needed help to share their project and comment and I would try to respond quickly.  They each did a project and shared it.  They riffed on my starter of Luke’s saber practice.  One added scoring and another changed it into a pong game.  Which is a great idea.  Meanwhile, I worked to improve my Kessel run project (though it is not great yet).

Screen Shot 2020-05-06 at 7.42.55 PM

Luke’s saber practice project

I had so much fun that I decided to present the same projects to Wednesday’s school code club.  That’s where the rogue part comes in.

Last Friday during a virtual math meeting that had been canceled but no one told me, I hosted a couple of other students who hadn’t got the memo from their parents.  A pair of us started to talk shop about Code Club and I invited one of the other math students to join.  He had been on the code club waiting list and is becoming quite the techno wiz – gifs, crazy characters, Roblox, etc. during this #stayathome remote learning time. He accepted and proceeded to jump fully into the Scratch community.

On Monday he invited me to curate a studio he had set up. He has also found a couple of the other active online Scratchers in the club and now the three of them are the CEOs of the studio (uh, uber-curators?  I was invited, too, but not promoted to CEO).  They are adding projects they are making, commenting on and liking each other’s projects, and asking each other for help. My rogue Code Club member has created 7 projects in 5 days! IT IS AMAZING! Together they have compiled their self-created cool maze games, Zelda themed animations, random works of art, and other amusing projects.  I could not be happier that they have found their own spot together within the Scratch community.  I’m looking at it as a bright spot in this time of social distancing that they have found a community.

I read the profile of one of my other students and it said he’s only 9 but wants to still be a Scratcher when he is 50. So sweet.

 

One last note.  I had the idea to make a Zoom chat from the Star Wars morphed Scratch Sprites, then I found this Sprite Zoom project – it is hilarious!  I shared it with my math class on Zoom today.  We could all relate so much!!!

Screen Shot 2020-05-06 at 9.14.07 PM

Ready to become a Star Wars Zoom meeting

I don’t think I could match that with my Star War Zoom plans.  I hope one of my students gives it a remix.

12th Code Club Starts

I started my 12th session of 4th-grade Code Club last week.  Just like last year, we are going to start off with Snack Discussion. During this first meeting I went over my expectations, rules, and plans for our future meetings:

Meeting # Meeting topic outline
1 First meeting – Rules & goals, intro to Scratch
Ist learning project
3 2nd learning project
4 3rd learning project
5 4th learning project, begin designing your own project
6 Design review
7 Begin individual/pair project
8 Continue work on individual projects
9 Finish work on projects
10 Showcase of projects – Parents invited!

Then I asked them what their goals for Code Club were.  What did they want to learn – because I can present lessons that help them meet their goals.

IMG_2353

What my Code Club wants to learn to make with Scratch

For some, they just want to learn to make Sprites move around using the arrow keys. Others want to make something like a Fortnite or Surviv.io Battle Royale game.  I told them I wouldn’t allow any first-person shooters and I have a general ban on weapons (although I have made the occasional exception for a toilet paper cannon, and a laser gun for shooting blobs).  My 7th-grade helper helped me out by describing the work it would take to “code” the whole landscape of Surviv.io Battle Royale and generally expressing his opinion that it would take too much work to do something of that scale.

I have two former Code Club members as helpers in this session.  I sent out an email last month to the Tech Integrator and other STEM teachers at the high school looking for a possible high school volunteer for Code Club. When I didn’t hear anything, I sent some emails to my first Code Club parents.  Those students are now 9th graders, but I heard back that they are busy.  One younger brother (my 7th-grade helper I mentioned above) was willing to help out. Yay. He arrived (he is really tall now) and asked if it was the same format as when he was in Code Club.  Yep.  I haven’t changed much of the format.  He agreed that it worked as he enjoyed making his own project during the second half of the session.  A fifth-grader and Code Club member from last year also showed up to help.  Once I confirmed with one of his parents that he was allowed to stay, I had two helpers.

I usually start with a maze project or Chatbot.  I decided to start with a Chatbot.  I use Code Club world project directions and I like the first project to be an easy one so they can get used to the direction format. Whenever someone needed help, I’d make sure they had at least looked at the directions.

Other times when someone needed help, I’d have to encourage my helpers to jump in.  I think they had a good time and were helpful.  I heard them complain once about the coders not saving.  “You should save! Often.” I heard the 7th grader say.  I think the students were deleting the whole Sprite when they wanted to make a costume change rather than changing costumes from the costume tab.  I think I’m going to talk about the Sprites and their properties (and saving) next time.

I’m also going to introduce Space Junk as a learning project. It will meet their goals of learning to use arrow keys and the obstacle avoidance games. We are off to a good start.

2020 Winter Carnival Remix

I led two coding sessions at the middle school for their Winter Carnival again this year. I had a new collaborating teacher this time and we were in the computer lab on desktops (instead of Chromebooks).  We had a variety of ability levels and grades in attendance.  Some were brand new to Scratch and others were part of the middle school’s code club.  That’s another new thing at the middle school. Some of my former elementary Code Club members started a code club this year that happens once a week during one of their study halls. (Super proud of them for advocating for themselves)

I wanted to offer different projects than last year but projects that would still be interesting to both beginners and more advanced coders.  We settled on Flappy Parrot and Pong.  I am also really interested in Text-to-Speech and Computer Poetry Generation and my collaborating teacher is excited about Makey-Makey devices.  So we offered both of those as well although none of the middle schoolers decided to work on those types of projects.

I set up a studio in my teacher account and added a few starter projects prior to Winter Carnival. During each session, I collected the students’ Scratch usernames to add them as curators.  This didn’t always work out as some were creating accounts on the spot and then never received an email verification.  I think the issue is on our district’s end and not Scratch’s.  I think some students’ emails are locked down more than others.

Screen Shot 2020-02-16 at 1.17.03 PM

Toad Dash example Flappy Parrot/Geometry Dash project

Screen Shot 2020-02-16 at 1.19.08 PM

Co-teacher’s Flappy Parrot example – gradually gets harder

For those who couldn’t get their new Scratch accounts to work, we downloaded their completed Scratch 3 project to the desktop and uploaded it through my teacher account.  Once their account is activated, they’ll be able to remix it into their own account, if interested.  This is one of those technical issues that you have to work out on the fly.  I also opened the studio to accept projects from anyone temporarily.  It turns out that unconfirmed Scratch accounts can’t “share” projects.  This is not a bad policy.

I was really nervous about coding with the middle schoolers again. I’m not with them on a day-to-day basis to understand what they like. I know a lot of them but I don’t know what they are learning in their code club.  One name on the roster was a student I’d recently seen write Python code in real-time, and in front of an audience, that simulated a ball bouncing. (I know it was rehearsed performance and she had a partner, but still super impressive… Would flappy parrot or my other intro projects interest her?)

The kids were great.  They brought their creativity, enthusiasm and worked hard.  They were kind.  They helped each other and enjoyed themselves.  I had a good time with them and enjoyed seeing what they were interested in. They created impressive projects and were willing to share them with the group.  I made sure there was time at the end of each session to enjoy (play, comment & like) each other’s projects.  All but one were willing to put their “work in progress” out into the world for others to play.  Very impressive and brave for middle school kids.

During the first session, one new-to-Scratch student was looking for inspiration so I helped him add a picture of a bag of Skittles as a Sprite to his project.  I stayed to help him make the Skittles bounce around the screen.  I came back to see he had a bunch of Skittle bags bouncing around the screen.  I asked if he wanted to make a game where you have to avoid the bags of Skittles and offered him the project instructions for Space Junk. Later I showed him how to have the Skittle bags come in at staggered times to simulate increasing levels of difficulty. The longer you stay alive, the more Skittles bags are zooming around after you. Then he wanted to add a coin to collect for a score, or in this case a “Skittle”.

Screen Shot 2020-02-16 at 1.55.07 PM

Skittles Escape became one of the more popular games of the day and it was made by a first-time coder.

This game of his, Skittles Escape, garnered much attention in the first session and was remixed a few times in the second session. Well done, first-time Scratcher!

Remixed Skittles Escape projects:

Some other notable projects:

 

And this cool take on flappy parrot:

Screen Shot 2020-02-16 at 2.09.51 PM

All of the creative projects are in this studio 2020 LMS Winter Carnival. They represent the individuality of the coders who made them.  I hope I can return next year to facilitate creative coding again.

Mazes, the Dark Side

At the last Creative Coders Code Club, I asked my middle schoolers what they wanted to learn or work on next time. One student said a platformer and another was interested in a MAP (multi-artist-project).  While I’m still investigating how to facilitate a MAP with my group, I thought the easiest form of a platformer game would be to learn to code a maze. Mazes can be simple “navigate to the goal and don’t hit the walls”, or complex with levels, bad guys, goals, timers, scoring, (like platformers).

I found a couple of starter projects for mazes.  I liked the one from the Scratch Team (classic example) and from CSFirst.  I looked through and found a couple of other examples of mazes to include as examples.  I also came across a PacMan starter project from MEStech.  PacMan is a nice example of a classic platformer that’s like a maze. And who wouldn’t want to create their own PacMan game?

I’ve always wanted to make a 3d maze but am not interested in learning 3d rendering and the other way I was thinking to make it required too much planning. My spouse gave me the prompt to make a dark maze where you can’t see the whole path. So I spent a while creating a Sprite to look like darkness around a lighted lantern.

I knew I could use a gradient fill from black to alpha 0, but I had trouble creating the size of the lantern light that wouldn’t reveal too much of the path.  My third try worked well but I’ve decided that I am not a fan of the Scratch 3.0 vector tools.

Screen Shot 2019-12-02 at 9.53.37 PM

Just the right size of light in the darkness.

I had to change the implementation of wall detection.  I couldn’t use “when touching blue” because my Sprite is supersized. So I changed it to “when orange is touching blue”Screen Shot 2019-12-02 at 10.02.33 PM

I still had areas of the map that were visible beyond the edge of my Sprite.  I thought I could increase the size of the Sprite to 200% to cover it but the maximum I could set the Sprite to was 135%.  Instead, I created two blackout Sprites the appear or hide depending on which quadrant I was in.  I’m pleased with the results although it needs a better map and more levels, etc.  It’s basically still a starter maze…

Today was our club meeting but it was also a snowy day.  School wasn’t canceled locally so we held the club but we only had three members attend.  One adapted my blackout maze idea with his own map and bad guy.

Another created his own impossible maze

And the third tried to do both PacMan and a maze and was frustrated with what he could accomplish.  It was his first time and he spent time just playing with Scratch options (which I totally support – you got to know what is possible before you can create).

Sometimes I feel 75 minutes once a month is not adequate time or frequency to facilitate the opportunity to play with Scratch, be creative and produce something to share with the group. It makes it tricky to plan lessons that fit a wide range of skills and inspire middle school students.

Music and Art Projects

My 11th 4th-grade Code Club Showcase is coming up this week. Eleven of 13 projects are ready to go. The last two are showing good progress, so I’m not too worried. I’m seeing the usual variety of virtual pets, flappy bird, pong, quizzes, soccer, chatbot projects, etc. (and yay, no “try not to laugh” games). This current group of projects represents a lot of creativity and effort and we are going to have a great Showcase. There are also two unusual projects that I haven’t seen before.  One is a music quiz and the other a color-by-number game.

The music quiz is very creative and I love it.  This student created his own music and asks the user to identify his songs by name. You can practice by listening to the music he has created before you take the quiz.

Screen Shot 2019-05-13 at 9.47.00 PM

Click the buttons to preview the music before taking the quiz.

I imagined he would code the music with the Scratch music blocks, or want to bootleg popular songs.  Instead, he used Chrome Music Lab’s Song Maker to write his own songs.  I had been experimenting with Chrome Music Lab earlier this year and was excited to see that this was his app of choice to create music.

Screen Shot 2019-05-13 at 9.50.48 PM

Chrome Music Lab’s Song Maker example

The biggest problem we ran into was there is no way to save or record directly from Song Maker. I researched some other ways to record sounds from a website but the simplest we found was to plug in our microphone, start recording in Scratch and then hit the playback button from Song Maker. We made a few poor recordings from the low-quality computer speakers and noisy room and I wasn’t sure he was going to be happy with the results or that it would even be enjoyable to listen to and take his quiz.

Screen Shot 2019-05-12 at 8.25.44 AM

Mr. Songs Alot project

For the final song recording, I let him record in the quieter room adjacent to the computer lab.  It turned out pretty well.  He even gave it a cool name: Mr. Songs Alot.  I hope he gets some good feedback and more students decide to try a game like this.

The other unique project was the Color-by-Number project. I’ve had students create a painting game with the Paint Box project, but not a paint-by-number type project.  I let them work on it a while but it became clear they had no idea how to code it to make the paint appear. So I went looking and I found an example of a paint-by-number project on Scratch that they could examine and learn how someone else coded it.  This is a great way to learn new techniques and algorithms in computer programming.  Software writers are great at this-trying to solve their own problems by looking at someone else’s examples- it is kind of why/how Stack Overflow came to exist.

Screen Shot 2019-05-13 at 7.31.35 PM

Paint by number project

Even after they looked at it, I don’t think they understood that they had to create themselves the illusion using different Sprite costumes to make the color fill in (or they just forgot from one week to the next).

Screen Shot 2019-05-14 at 6.53.06 PM

The “magic” of the paint by number is 2 different costumes for the coloring illusion.

The example had 2 costumes for each different color. One with color and one with the number in it.  When you dragged the paint bucket over the Sprite and clicked, the Sprite went from the number on it to the colored one and the paint bucket goes from filled to empty.    One team member was making the “coloring page” and the other coding the paint buckets. The “coloring page” maker kept making the pages on the Stage while I kept reminding them about the example I gave them.

I worked with the paint bucket coder and we tweaked some of his code so that it is a good project even if it is only one picture to color.

We had some issues with paint buckets when they start on top of the Sprite they were going to color and instantly coloring them in when the green flag is clicked. Also, keeping the “coloring page” Sprites on the visual layer under the buckets was tricky.  I couldn’t find the Scratch 2.0 option to make a Sprite not draggable by the user.  I might have to explore this type of project to see if I can make it into a learning project for one of my groups.

The showcase is tomorrow!!!

Update:  I found out that Song Maker has added a save feature so we can now download a wav file and import into Scratch. This is great.

Superpower Challenge

Monday was the last meeting of the library code club for the year. It was one of those rare warm and sunny New England Spring days and consequently, we had a small group of six.

I went through all of the different projects we worked on over the school year by looking at the projects in the class studios since October.

October: Animated name/Random stuff about me

November: Pong or Catch

December: Christmas Present game or snowball fight game

January: Scratch 3.0/ Year 3000 and text-to-speech

February: Video sensing

March: more video sensing (by popular demand), timers & timing

April: Finite state machine/ Green up your city

For May, I was going to let them revisit one of their creations from the last year and finish or improve it. This is something they ask for when they leave each month. They ask me if they can work on the same project next time. I’m not convinced that they would have the same passion for a project a month later. Still, it is a good idea to look back and reflect on the projects of the past year.

Meanwhile, an email from Code Club USA came and mentioned their Superpower Activate challenge. That sounded fun to me. Superpowers don’t have to be like in the comic books, they can be simple, like being a good friend, helping people, coding, being a team player, quoting movies, or not getting caught with gum in math class.  I came up with this one for me.

Screen Shot 2019-05-07 at 8.29.50 PM

I wasn’t sure how the superpower prompt would go over, but they seemed excited about it after I presented it and showed them my project. I was sure one student was going to work on a previous project, but later I saw him putting together an awesome superpower project.  Four of them made superpower projects to share in our May studio.

One improved a prior project and turned it into her superpower project and one student created a new project about riddles – which might be his superpower.  We were certainly stumped by his riddles.

Screen Shot 2019-05-07 at 8.42.16 PM

I really enjoy leading this group of creative, middle school coders.  We have a small core of coders who have come each month over the last two year and we often have first-time Scratchers as well.  This makes it complicated to find projects so that everyone can be challenged and successful. The creative prompts and projects I find from the Scratch community, Code Club, & Scratch Design Studio have really been engaging.  They have been designed, as Mitch Resnick says, with low floors, high ceilings, and wide walls.

Finite State Machine

My monthly middle school library code club met this week on April Fools Day.  I thought it would be fun to make a joke or prank project but I wanted to give some boundaries to the students, too. I was a little bit worried that we might end up with some inappropriate projects.

I kept thinking about one project that a middle school student made during the Winter Carnival coding sessions.  In addition to his animation, he had a simple button on the screen that said: “Don’t press”. Of course, users are going to press it.  Pressing it made a really annoying and alarming sound. I thought this type of project would make a great April Fools project for my group.

When I started to make my own version of the “Do Not Press” project,

I realized that I wanted different things to happen: first one thing would happen, then something else, and so on. Each time you pressed the button something new would happen. I would need a way to check how many times the button had been pressed and use that to decide what would happen. I needed a finite state machine (at least a very simple one).

Screen Shot 2019-04-03 at 9.58.31 PM

A finite state machine, FSM, is a basic computer science concept for controlling the logic of a program. The concepts center around keeping track of the state and what it takes to move between different states. This example is the simplest form of FSM. Now I had a lesson to teach the students and a fun prank project for them to make, too.

Using a single variable to keep track of the state of the project can come in handy for many types of projects. I had a couple of the coders in my mind who would find learning this concept useful in the programming they like to do.

The coders did find the project fun.  A few of them expanded on my starter project and a few them took the concept and used it in their own original way.

I only wish I had not made the final state check “if state > 3” but “if state = 4” in my example.  That would have made it easier for the coders to add on more states.