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.

Virtual Code Club Projects

I’m running another round of my after-school 4th grade Code Club virtually again. We are halfway through our 10-week session and have one more learning project next week before the students start working their final showcase projects. Students from the other side of town have joined us with their Code Club coach, Ms. G, just like last year.

I had 19 students sign up and 4 from the other side of town and we average 16 students online each week. We’ve used breakout rooms to divide the group to be able to help more students while they are working through the learning projects. We’ve offered two different projects one week – Maze and Flappy Parrot to give the students some options. We are using Google Classroom to communicate, post materials, and share Scratch studio links. A few students have dropped out because the virtual environment is too hard or stressful to manage while learning to code. I’ve offered my time in person during recess to support students in person.

Favorite things example

We started with our favorite things projects the first week to get to know each other. It helped to work through some basics of Scratch, signing in, sharing to studios, etc. as well as a refresher on Google Meet protocols – raising hands, chat etiquette and presenting. Then 2 Chatbot, 3 Space Junk, 4 Maze & Flappy Parrot, and finally next week, Create your own world. Many of my favorite projects! Ms. G would create and share a studio. I would create an example or starter project and post the material to our classroom.

Flappy parrot or Mazes week

Code Club Showcase Like no Other

I just celebrated my 12th Code Club Showcase, virtually. Last year’s Code Club went virtual after three weeks due to the Pandemic and our school switching to remote learning. There was no Showcase because what the students needed at the time was a fun weekly code break and not another virtual project to work on. We were all overwhelmed.

This year, while we are now back to full-time, in-school learning, code club had to be held remotely due to school protocols. Students were more amenable to this set up this year and we reached our max during sign-up and had about a 60% retention from week to week. That meant at least 10 coders online for one hour each week.

Luckily, I was able to send home printouts of our Code Club learning projects for the students to work from. Those school Chromebooks have really small screens. I don’t like to code using them and I wouldn’t want to have to split my screen to see the learning project and Scratch at the same time. I sent home a variety of project resources, more than we had time to work through, in case the students were interested in learning on their own.

Virtual Code Club Chatbot projects

From Code Club I use the projects Felix and Herbert, Chatbot, Balloons, Scratch Cat Goes Skiing and Create your own world. I also used the Scratch cards for Make it Fly and virtual pet. This is a mixture of my standard learning projects (like Chatbot and Virtual pet) and some based on what the students told me they wanted to make (Create your own world). I put in Scratch Cat Goes Skiing as an example of a vertical scroller for a couple of reasons. One we were meeting in February and two I needed a break from the side-scrolling Flappy Parrot project.

Scratch cat goes skiing projects from virtual code club

I used Google classroom for announcements, meet links, materials and the Game design document, GDD for planning the Showcase project. It worked out well. Most students completed the GDD and I was able to find Code Club projects or Scratch cards to support their ideas. A couple of the girls didn’t have an idea for their Showcase project so I showed them (at school) what I projects I had available and they choose the virtual pet and space junk type projects to work on.

They worked on their projects for four weeks. I was able to help debug during our meetings. The students were pretty comfortable with sharing their screen so I could see their code and what was going on. There were a few tricky bits of debugging that I got caught up in each week. If we couldn’t solve it together during the meeting, I would work on the problem and post the fix (if I found it) in Google classroom. I let a couple students work on their projects in the lab during a rainy recess. This just reminded me how much better coding together in person really is. I hope we can get back to it again.

For the virtual Showcase, students took turns introducing their project and giving hints or background on how to play and why they made it. It was very informal, no parents, just all the club members. Then we would play their game. I encouraged students to “heart” like the project and leave a positive encouraging comment like a cool, or I like your music, Sprite, theme, etc. In school I ask them to provide more detailed, helpful feedback, but this wasn’t school but a club, so friendly feedback was all that was expected. Everyone did great. Everyone was positive and encouraging.

Showcase of projects from Virtual Code Club 2021

When we finished sharing and enjoying each others showcase projects, I share a studio I had put together a my pick for the Best of Code Club Showcase projects. During the prep for our showcase, I had gone back and picked a favorite project from each of the previous Showcase of Scratch projects and maybe one or two more that I find super fun.

Best of Code Club Showcase projects

It was a delightful way to spend our last virtual hour together.

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.

CS Concepts in Elementary Grades

2018 January Tech Expo LOGOThis last week I led a professional development session titled “CS Concepts in Elementary Grades” for my district’s Tech Expo.  It was one of several dozen sessions available for teachers during the day. I had just a handful of teachers at my session.

 

I started with this video from Code.org. It introduces “why CS?” better than I can.

Next, we took a quick look at the CS Standards at http://www.csteachers.org/page/standards, just to see that there are standards and where to find them.

Then it was on to try out Scratch.  (One teacher had mentioned this is why she signed up for my session.  She wanted to learn Scratch.)  I introduced Scratch by going over these concepts:

    1. Stage
    2. Sprites
    3. Script, Costume, Sound tabs
    4. Block menu

Then I let them try out the Virtual Pet project using the Scratch cards from https://scratch.mit.edu/tips.  I picked the Virtual Pet project as it hits all the concepts I wanted to introduce.

 

Screen Shot 2018-01-22 at 7.36.58 PM

Code from a student-made Virtual Baby project

 

These are the concepts I think are important for elementary students to be introduced to:

    1. Computational Thinking
    2. Algorithms
    3. Commands
    4. Events
    5. Initial Conditions
    6. Decisions / Conditionals
    7. Iteration, Loops and Forever
    8. Coordinate knowledge
    9. Data and variables
    10. Debugging – Checking for errors

I had one Kindergarten teacher attend my session, so I handed her an iPad with Scratch Jr. on it.  She had a great time playing and exploring Scratch Jr. while the rest of us working on our Virtual Pets.

The Virtual Pet project turned out to be pretty complicated for a first time Scratcher. They had a hard time with Broadcast and Recieve, just like my Code Club members when they tried the Virtual Pet project. I guess I knew this would be a difficult concept but it is so powerful. I like all the things you learn when trying this project out, even if it is a bit overwhelming.

After some success, we moved on and I showed them some student work.  I wanted them to see examples of how to incorporate Scratch into their curriculum.

    1. Intro to Scratch was independently made by one of my former Code Club members https://scratch.mit.edu/projects/177914932/
    2. Infinity and Beyond shows how a research topic (math topic in this case) can be shared using Scratch https://scratch.mit.edu/projects/22933952/
    3. Apple Inventory is another case of using Scratch to demonstrate understanding  https://scratch.mit.edu/projects/66568488/
    4. Math Games by students for Hour of Code week  https://scratch.mit.edu/studios/3616910/
    5. Winter Fun is an introductory project I’ve done with students https://scratch.mit.edu/studios/3664546/
    6. Spirograph Studio (reminiscent of the old Turtle paths play)  https://scratch.mit.edu/studios/3984733/

 

Screen Shot 2018-01-22 at 7.32.51 PM

Using Scratch to show your math solution.

 

I have many more, but as we were running out of time I quickly went through some Debug-It projects I found on the Scratch site.  I think it is important that teachers feel confident in helping students when they get stuck.  Knowing how to debug Scratch projects can help.

Debug it

  1. https://scratch.mit.edu/projects/23267245/
  2. https://scratch.mit.edu/projects/24269007/
  3. https://scratch.mit.edu/projects/2042712/

I didn’t really pick the right Debug it projects for my attendees.  These were more challenging for my audience than I thought they would be.  I wish I had chosen easier ones or left this for another session altogether.

I hope my session left them with an idea of how to start using Scratch in their classroom.  I also hope they will reach out to me if they would like support facilitating Scratch projects in their classroom.  I worry that they were a bit overwhelmed with all I presented. They were a pretty quiet bunch, but I guess I’m used to a room full of rambunctious 10-year olds.

Oh, and I also compiled this list of resources:

Resource List

ScratchJr:  http://www.scratchjr.org/

Scratch online: Scratch.mit.edu 

Teacher accounts https://scratch.mit.edu/educators/

Scratch cards & Educator Guides https://scratch.mit.edu/tips

Offline editor https://scratch.mit.edu/download

Starter Projects https://scratch.mit.edu/starter_projects/

ScratchEd online community http://scratched.gse.harvard.edu/

Creative Computing Curriculum using Scratch http://scratched.gse.harvard.edu/guide/

Code.org Teaching Computer Science Fundamentals PD

https://studio.code.org/s/K5-OnlinePD

Code.org Lessons: https://code.org/student/elementary

https://code.org/educate/curriculum/elementary-school

CS4NH resources:

http://www.cs4nh.org/resources/framework-standards/

CSTA K-12 Computer Science Standards, Revised 2017

http://www.csteachers.org/page/standards

CS for All Teachers 7 “big ideas”:

https://www.csforallteachers.org/computer-science-principles

CodeClub.org:  https://codeclubprojects.org/en-GB/scratch/

K-12 Computer Science Framework: https://k12cs.org/

 

 

Checking Up on Individual Projects

We have two weeks until our Showcase of Projects and I’ve been checking in with all of the Code Club members to see how they are doing.  There are no team or pair projects this round which I find surprising but this year’s 4th-graders are very much unique individuals.  I tried putting two students together on one project, but they just couldn’t work together.  So they each have a similar project.  This does mean that there will be a lot of projects to present at the Showcase.

 

Screen Shot 2018-01-07 at 2.50.43 PM

Keep away from Bendy

 

The character Bendy from Bendy and the Ink Machine game is featured in a couple of chase games.  How these nine-year-olds know about this horror game, beats me.  I hadn’t heard of it, but then again, I don’t like scary things.

 

Screen Shot 2018-01-07 at 5.09.06 PM

Virtual Pet Dragon

 

Most of the students are in good shape.  The two virtual pet projects just need a few tweaks. The trivia and math quiz projects seem fine.

 

 

 

Screen Shot 2018-01-07 at 2.47.26 PM

Answer the riddles 

The Riddler is well coded, but I think I need to show this coder how to make his own blocks for the “you answered it wrong”.  He has duplicated his code in each “else” loop. Perfect opportunity to teach code reuse or refactoring. Now I finally have a reason to show them how those dark purple blocks work.

 

 

Screen Shot 2018-01-07 at 2.49.42 PM

This code shows up in each of his “else” statements.  

 

 

The flying cat and maze games could use some more work, but now that I’ve seen the state of everyone’s code, I think we might spend some time this week talking about game testing, how important it is, how to do it well and how to fix the glitches.

Equally important as testing for bugs, is to test for fun-ness.  We want our games to be fun.  Yes, we do.

Computer Science Education Week

Hour of Code 2017 is here.  I’ve got a lot lined up this week for my school and clubs. There will be Hour of Code activities from Code.org available for all classes K-4 during the week in the computer lab.  In addition, I’ve got plans for some 3rd graders to draw a letter (like the first letter of their name) and learn about coordinates using Scratch.  Some 1st graders will begin using Scratch Jr. to make a winter project on iPads.

Each of the 4th-grade classes is starting a different Scratch project – Math game, Labyrinth and Ada’s poetry Generator, or Beetle Blocks project – print your name.

The library club with be trying out the Virtual Pet project from Scratch tomorrow and my school club will be starting their individual projects.

maze game

Labyrinth – reach the dragon. Don’t touch the sides.

Screen Shot 2016-03-29 at 9.30.23 PM

My Penguin Pet

 

screen-shot-2016-12-28-at-7-25-50-am

Name in Beetle Blocks

Screen Shot 2017-03-16 at 8.58.41 PM

Ada’s Poetry Generator Project

 

I’ve done some of these projects before but I’m hoping to blog about some of the new ones in more detail. This is just a preview of the week to come.

 

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

Dress Up for Showcase #5

Tomorrow is our fifth Code Club Showcase.  We have eleven projects to present.  They are solid projects.

Over the last two weeks I wasn’t sure if we were going to be ready, but here we are.  I’m actually impressed with the variety and the effort.  Many students choose to work with a partner and those partnerships worked well.  I would have liked to have seen more coding effort and algorithmic thinking but everyone seemed to have fun each week working on their projects.

New this time are projects like dress up. I haven’t seen a dress up project before in Code Club, but I think these two turned out well.  The idea is simple.  Pick the clothes for the Sprite and then decide on the Stage.

Most of the time was spent designing clothes, which has got to be the most fun in the mind of these two girls.  Each of the clothing Sprites have the same code behind them.

Screen Shot 2016-05-17 at 9.54.26 PM

The code sets the initial conditions and then makes a decision not to disappear if the Sprite (named Kate) is wearing the piece of clothing.

I can see improvements to the scripting to allow the Sprite to move in the chosen outfit. As well as other ideas that turns the Dress Up project into more of a Virtual Pet project.

We did a Virtual Pet project one week this session and one student decided to make a full blown virtual pet project for her individual project.

Screen Shot 2016-05-17 at 9.40.02 PM

It is really cute and well coded.  I find the directions she gives quite funny.

 

Virtual Pet Event

I realize that my last two blog posts have not been about Code Club but Scratch projects that happen during school.  Code Club has been going pretty well, so let me catch up on that front.

We tried a Pong game project the second week, which I have written about before. I recall them being a bit needy during the project but I just might be remembering the whiners. I’ve seen some successful projects in the subsequent weeks from those very same needy seeming students.

There is some free time at the beginning of Code Club while we wait for the bus to bring over the coders from the other elementary school.  This gives some of them a few minutes to bring up old projects they’ve started, remember what they were doing, tweak them or show them to a friend.  Once everyone is there, we have snack and discuss the current project of the day.

Screen Shot 2016-03-29 at 8.38.56 PMThe week after Pong we tried “Create a Virtual Pet” project that is under the Tips tab of Scratch 2 Offline Editor.  I was looking for a non-game project similar to Code Club World’s Chatbot project, which some of these students did last Fall, as I have written about, twice.  One of my goals is to expose these coders to a variety of project types. I think these types of projects appeal to the non-gamer types, (dare I say girls?) and shows other ways to use Scratch coding.

“Create a Virtual Pet” is also a great way to introduce the power of broadcast and receive. I feel like I didn’t cover broadcast and receive well in the Fall.  This project concentrates on the Events code blocks:  “when this sprite is clicked”, “broadcast”, and “when I receive”.

We also got to use and get to know the “glide” block.  All very useful.

I showed the students the Tips tab that they could use as a resource but I also printed out some screenshots from “Create a Virtual Pet” for them to use. I did try looking for a pdf of this project.  I found a video tutorial, a Scratch project tutorial and a 41 page pdf from We Can Code It which looks fabulous, but more than I needed.

I took some time to introduce this and showed my take on the project at the beginning.

 

I prefer to let them discover their way but I’ve a feeling this group could benefit from more introduction.  I think the number of lines of code it used, although mostly glide blocks, put them off a little.

Most of the students were not able to get all the way through the project and some seemed disappointed by this when Code Club was over so soon.  I was pleased with what they got done and told them so and that this would make a nice project for the Showcase if they chose.

The designs for those independent projects are due real soon.