Virtual Code Club ends, another begins

I did twelve weeks of virtual code club. Each week I posted materials in our Google Classroom and sent out an email to parents as well. I occasionally hosted virtual office hours (about every other week) and I also tried to comment on all of the projects the students shared online.

I don’t know how many students participated beyond the few that came to the office hours or that shared projects online. Very few students posted comments in our Classroom and no parent ever responded to my emails after the first one. It is hard to believe no one had any questions, but it is easy to believe that with all of the other virtual classwork students were doing, no one had the bandwidth to add code club on top of it all.

Last virtual code club week post

For the final week, I thought about making another video of myself to say thanks for coming along with me on our virtual code club, but I made this Scratch project instead:

Screen Shot 2020-06-23 at 1.13.12 PM

And challenged them to make a “Thank you card” Scratch project, too.

I posted Code Club certificates for them and closed the book on this experiment. In reflection, I learned that putting out weekly projects with no feedback as to how they are received is hard. I don’t like it. There is no way to change it on the fly to make it work for each student. I really don’t know what I need to change to engage more students, and yet I don’t think it was me that caused low attendance.  It was an optional part of virtual life during emergency remote learning during a pandemic.

So I put out project ideas that I thought they would like and that I liked, too. In the end, there are more Scratchers out there, creating projects that interest them. They may not have the foundational skills I was hoping to instill, but they are part of the Scratch Community and will find it for themselves or perhaps seek out more opportunities and working on more passion projects.

A code club member and Scratcher following his own interests.
Another new Scratcher working on their own passion project.

I’m starting my summer virtual code club through the public library today. I’m hoping some kids come so I can get some feedback and learn to be better at being a virtual code club coach.

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.

Virtual Code Club

Last week I took my Code Club virtual as we are all trying to do in education during this time of the Covid-19 pandemic.  Here’s what I did:

I created a Google Classroom and invited all my Code Club members to join.  I created my first post, added the materials, created a short video of me introducing the concept and emailed it all out to all the parents.

Our first lesson was Virtual Pet – here is my lesson Virtual Code Club #1. I kept the format the same as our in-person meeting – Greeting, Discussion, Learning Objective, Project information. I added some links to former Code Club project examples and posted it as material in my Classroom. I didn’t want this to be an assignment with a grade or due date.  This is for fun.

Screen Shot 2020-03-24 at 3.01.22 PM

The majority of my Code Club has accepted my invitation, including my middle-school helpers. Parents emailed back and were thankful and very much appreciated the idea of Code Club continuing. I had a few student comments of “This is fun” and one student who got stuck but then figured it out before I could help him out.  It went like this:

S: I tried this and it didn’t work.

S: What should I do?

S: Oh wait, it’s working now.

Me: What a great example of debugging. Keep testing and trying options. Let me know how it goes.

S: It’s working perfectly now.

My students are young, 9-10 years old, and most of them use Scratch offline versions – like I use with them at school, so I can’t see their projects.  That is one of the toughest parts of virtual for me.  I’m not getting to see their projects.  A lot of them are learning quickly about Classroom and virtual meetings with their class through Meet or Zoom. Eventually, we may do this as well (and I can wear my Scratch cat earrings again).

Today I got an email about #ScratchAtHome from Scratch In Practice.  I will see what support they have and perhaps they’ll have some suggestions for sharing project files and other learning opportunities for my students to be creative with Scratch.

I’m working on this week’s virtual code club project: Flappy Parrot – one of my favorites.  Then I may need to figure out a way to take my Library Code Club virtual, too.

Stay safe and wash your hands.

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.

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.

Snack Discussion

I’ve started my eleventh 4th-grade after school Code Club session. We’ve met three times and things are going well, but I’ve neglected to blog.  I’m using the same club format and the same projects I’ve blogged about before, so there was really not much to write about.  After this week’s session, though, I found I have something to share.

Screen Shot 2019-03-16 at 9.24.16 AM

Week 2 project: Maze game by a 4th-grade code club member

Code Club starts right after school – literally, the last bell rings and the students walk from their classroom to the computer lab. We start by circling up the chairs and having a meeting time where I take attendance, talk about what project we are going to do, and have a snack. (Snacks are provided by members who volunteer to bring something to share with everyone.)

Since we can’t eat while coding on the computers (school policy and good rule in general), I use this beginning time to talk about computer science, my coding objective for the day, etc.  This group is a very easy-to-manage and attentive group so I have made an effort to start a snack discussion to fill this time. Their thoughts and ideas are helping me craft the club to fit their needs.

IMG_0744

This first day I asked them what their favorite computer/video game was. Their favorite games ranged from themed games like Harry Potter to popular MMO games like battle royale type games.   No real surprise there.

The second week I asked them what types of games or projects they wanted to learn to make. I wrote down their list of ideas.  There weren’t many surprises, but I do have a number of girls who want to make a virtual pet style game, so I’ve added that to the learning projects I will present to them.

This week I asked them what they thought was the hardest part of coding. This was exciting because many of them felt comfortable enough to share their concerns.  I listened and affirmed that all of these were difficult parts.

I have a volunteer, who is a middle school math teacher, and she shared her concern that the hardest part for her was when a student asked for help but only said, “this isn’t working”.  It is true, that it is difficult to figure out what is not working in code at first glance. It would be helpful for the students to explain what they were hoping would happen and what was actually happening in their code.

Some of the other parts they thought difficult were:

  1. finding the code blocks they were looking for.  (I have to remember that they are very new to Scratch.)
  2. using the costume editor. (Another student gave some tips on this – like switching out of vector mode to draw. I thought it was great that they are helping each other.)
  3. coming up with the design of the project they want to make. (I affirmed this was a difficult part. A good design plan makes the rest of the project go smoothly. For some games, the design phase takes 50% of the total time from start to finish.  I also told them that when designing their game, they would fill out a Game Design Document to help them make those design decisions.)
  4. finishing the project/ getting the project to match their expectations. (Wow, these are insightful kids.  Yes, I told them that I and the volunteers would help them manage their project.  First by making sure it was a project that could be done and second, by helping make a plan for them to get it done in time.)

The snack discussion has become a favorite part of Code Club for me.  I hope I can come up with more good prompts.  Maybe I’ll ask about getting unstuck next.

I am also enjoying teaching them to code and playing some of their creative projects, too.  Here are a few screenshots.

Screen Shot 2019-03-16 at 9.23.56 AM

Week 3 project: Quiz-type Chatbot by 4th-grade Code Club Member