Return to 4th grade Code Club

One of my high school seniors wanted to do a service project teaching coding to elementary students. He loved our field trip to the elementary school that shares a campus with us and wanted to know when we could go to his former elementary school (across town) and do the same.

I knew that would take a different approach than a field trip and I suggested an afterschool code club. We discussed the details and settled on 5 sessions, weekly, after school in January-February, 90 minutes long, for 12-15 students. He wrote the proposal email to the elementary principal and sought funding for snacks for the club. Everything fell into place.

News spread about our code club, and the roster filled up in a day and one of the 4th grade teachers volunteered their room for us to use. We also recruited high school students as coaches and found plenty of former code club students who remembered when they were in my code club and volunteered to help. We finished up our 5-week code club last month with 11 students and 6 coaches (and me). Here’s how it went:

Google Classroom for coaches to plan lessons

Logistics & Communication: I created a Google classroom for the coaches and a place to put all the materials and planning documents. There I could announce what project we would do next and the coaches could tell me if they could come or not. Although, mostly they would stop by my room and let me know. Three of the coaches were in my last CS class of the day and others would stop by if they needed a ride from one of those students, or to let me know they were taking the bus.

Scratch class with studios for each week

Accounts: For the code club members, I created a Scratch class and student accounts. Each week I would create a new studio and put in an example project. Near the end of each session, the coaches and I would encourage students to share and add their projects to the week’s studio. I or a coach would play each project on the classroom projector so everyone could see their project on the big screen.

Format: Each meeting was the same format: We would arrive and the students would be in the classroom. We’d take attendance, meet on the rug to discuss the day’s coding project, break for a snack, and then get started. Each student had a school Chromebook and they sat in table groups of 3-4. I or one of the coaches would do some live coding and others would hand out printed Code Club project guides or Scratch project cards. Coaches would circulate and help the students (as best they could) and miraculously we’d get a bunch of creative projects to share before the meeting ended.

Catch Game projects shared by first time Scratch coders.

Lesson 1: Catch Game – It’s a pretty big deal when you can make a game on your very first day learning to code in Scratch. I’ve written about Catch Game before. It’s a nice way to start. I used the Scratch card resources for the students to follow. (I print either 2 or 4 to a page to save on paper).

Chase Game projects shared by 4th grade Code Club students.

Lesson 2: Chase Game – another easy game that uses different code blocks. A lot of creativity here. I’ve written about this game as well. I remember the chase games 2 of my coaches made when they were in code club. I had the original Code Club World Felix and Herbert packet and I had the Scratch resource, but I wanted a hybrid of the two approaches, so I wrote my own.

Side-scrolling game examples

Lesson 3: The 4th graders love making games and the feedback from the parents was also positive – they noticed how much their student enjoyed Code Club, and were appreciative that we were providing this opportunity. So I found another game, Jumping Game, that was easy enough to make but different enough to be something new.

Virtual pets with text-to-speech by 4th grade code club members.

Lesson 4: Virtual Pet! This is one of my favorites and it’s not technically a game. With such a short 5-week program, I introduced a lot this week. In addition to the virtual pet game, I showed the students Zinnea’s Mouse Trail video. It was a nice diversion at the beginning of Code Club, but once they got into making their virtual pet, no one actually tried out making a magic wand. I also introduced Scratch’s text-to-speech block because many of the members had learned how to record their own sounds – but it was generally just them talking over all the background noise in the room. I thought they could have their pet introduce themselves with text-to-speech.

Noise Level: The coaches (my high schoolers) had noticed that Code Club was really loud – a lot of talking and Sprite sounds playing in the room. While it is generally fun to have your Sprites make sounds, it can be really loud if everyone is playing sounds. We didn’t have any headphones, so we had to remind students to keep the volume down.

Sports games for the final week

Lesson 5: Final Week – They asked many times for a sports game. So for the last week, we tried Scratch Cat Goes Skiing or Beat the Goalie! Both projects are from RPi Foundation’s Scratch projects, so I was able to put started projects in our weekly studio and the students would have the background and costumes for the projects. They turned out well for such difficult projects. Our last day was also Valentine’s Day, so I made this quick project Valentine for you in case anyone was interested in making a Valentine with the pen and stamp tools. Mostly they wanted to make games.

Valentine’s for Coaches – one of the code club members made Valentines for each of the coaches and me. It was so sweet. I’m pretty sure the high schoolers had not been given a Valentine for a long time.

Good enough: Five weeks was a good enough length. It was a lot of work being in charge of not just the 4th graders but of the coaches as well. To be honest, I had too many high schoolers coaching and their attention span and appropriate behavior weren’t much better than the 4th graders. So I ended up managing both groups. It was all good though. Good for the coaches to work with younger kids, pay it forward, and remember when they participated in Code Club. Good for the 4th graders to get to learn to code, and see older kids who like to code model coding. And good for my high school Computer Science program as these students move through the school district and may plan to take CS courses at the high school.

Getting Them Ready

We’re already half-way through the fall Code Club session for 4th graders. Now is the time when they start working on the design of their own project.  Having the opportunity to create their own game is pretty much why they come. My job is to get them ready to be successful in this venture.  To this end, I try to present lessons that help them learn programming concepts that they will want to use in their game design.

After eight Showcases and 108 projects, I feel have an idea of the essential programming concepts students will be using in the games students like to make.  We move fast and don’t get the chance to do more than introduce these concepts – it’s more learning to code than learning computer science.  It’s a start.

Screen Shot 2017-11-16 at 8.06.44 PM

Get the taco to the Scratch cat

Here’s what they will want –  A Sprite they can control with arrow keys to move around their game.  (The maze game).  A Sprite that can chase after them (Cat and Mouse).  Both of these projects introduce sensing as well  – in the maze game you are forever checking if you touch the sides and in both, you are forever checking if you won.

Screen Shot 2017-11-16 at 8.08.34 PM

You’re the banana. Don’t let the monkey eat you.

They might want to keep track of a score or set a time limit.  (Ghostbusters)

Screen Shot 2017-11-16 at 8.01.13 PM

Click on the Sprites when they appear to get points.

Screen Shot 2017-11-17 at 5.25.16 AM.png

From experience, some of them will want a game with gravity. It’s a concept that I don’t usually spend any time on but this year, from talking with the students, I could tell there will be some platform games in the works.

Screen Shot 2017-11-16 at 7.56.40 PM

I used Code Club World’s Flappy Parrot project to introduce gravity.  It also reveals the animation trick of moving the background while the main character stays in the middle.

I wasn’t sure if they would be able to handle this project, but they worked through it well and I felt they were successful.

Screen Shot 2017-11-16 at 7.57.42 PM

Flappy robot costumes – hand drawn wings

This last week we did the virtual pet project from the Scratch Tips.  I printed some of the Scratch cards of the project as well.  Virtual pet introduces broadcast & receive which is an important but difficult concept.  Broadcast & receive is powerful but requires planning and keeping track of your Sprites. This level of thinking is just developing for them.  They struggled with broadcast and receive, but mostly with the motion blocks because they were modifying the placement of Sprites to fit their creative take on a virtual pet but couldn’t translate that to adjust the go-to blocks properly so they got some strange movements they didn’t understand.

All in all, I like this progression of projects: 1) Maze game, 2) Felix & Herbert, 3) Ghostbusters, 4) Flappy Parrot, 5) Virtual Pet. It presents a variety of game types and hits some good basic concepts.  It leaves out a few of my favorites, though, like Chatbot. I also feel they need more basic coordinate knowledge (move, go to, glide).

(The problem with not blogging regularly is that when you do, you have too much to say and the blog gets really long, for which I apologize.)

Catch ’em

Week 2 for Code Club happened.

We did an old project game called Felix and Herbert which I’ve done before.  It’s not on the list of current Scratch project at Code Club World, but its simple concept with different movements- follow mouse movements- makes it a good second week project. It is a cat and mouse game and introduces some good game elements such as broadcasting and keeping score.

screen-shot-2016-10-17-at-6-31-44-pm

I allowed the students to pick any two Sprites – one to chase and one to be chased.  This let to some creative pairings.

screen-shot-2016-10-17-at-7-19-40-pm

It also became important in debugging to know which Sprite was which. When introducing the project I did point out where it says “Test your project.”  I let them know that this was a big part of programming.  I think I’ll need to emphasize that each time. I notice a lot of creative testing – playing with sounds, looks, speed, scoring, but not much debugging or referring to the project pages when things don’t work.

screen-shot-2016-10-17-at-6-29-48-pm

At the beginning of Code Club, I decided, we would add a bit of reflection to our meeting. On Wednesday I asked how the first code club went?  What were the successes and failures.  Many noted that they ran out of time or weren’t able to get the sensing of the edge of the maze to work.  I told them that it was a difficult task and if they were able to set up the Sprite to use the arrow keys, that was a success.

With Thursday’s group, I asked them to share one thing they found that they liked about Scratch.  This time I asked for positive responses mostly because they’d only played with Scratch and hadn’t really tackled a whole project yet.

I enjoyed this reflection time.  These are big groups and I don’t always get to connect with each student during our hour of coding.  Afterward Code Club I do take the time to look at the projects they save, highlighting a few here and noting any trending issues. And, of course doing my own reflecting on this blog.

I must say that my volunteers are awesome!  They work very hard fielding questions, debugging code, working with students. Even so, I think the students are asking for help too quickly.  They need to look at the project more closely and begin to do a bit more problem solving themselves.

screen-shot-2016-10-17-at-6-31-22-pm

 

Point of View

I am quite pleased with the variety of projects that my Code Club students are creating for our showcase in May. Everything from a maze, pong, virtual pet, dress-up to adventure and sports games.  There’s even a game of games project idea that will be interesting to see develop.

One duo was wanting to make a game where the hero stays mostly in the center and the background scrolls before he gets to the edge.  Something like Power Pete (or Mighty Mike) from Pangea Software  (those were good times, hours wasted)

maxresdefault

At first I recalled the scrolling demo project from Colleen Berekey. There are over 50 remixes of this project.  I showed the pair this project but it wasn’t quite what they had in mind.

Screen Shot 2016-04-23 at 9.29.11 PM

So I went home and thought about it and consulted my consultant – my spouse who’s a software engineer.  Like with other tricks to animation, coding this was a matter of changing perspective and looking at the problem from a different point of view.

If your Sprite stays in the middle, the background and chaser Sprites will have to move with the arrow keys. Or more specifically, against the arrow keys.

Here’s my quick take on the point of view problem.Screen Shot 2016-04-23 at 9.12.04 PM

Scratch Cat stays in the center and only points in the direction of the arrow key.  The stars move in the opposite direction briefly and then move back to center.  This took some fiddling with to get it to look half way decent.  In addition the octopus has to move in the opposite direction while still moving forward towards Scratch Cat.

Screen Shot 2016-04-23 at 9.12.28 PM

Octopus moves in the opposite direction of the arrow key pressed while still forever chasing Scratch Cat

Screen Shot 2016-04-23 at 9.12.47 PM

For added fun I included additional bad guy clones.