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.

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/

 

 

Super Scratch

Today was going to be the start of another round of Code Club for 4th graders but school was cancelled due to icy roads.  I have 18 students signed up for this session, my 5th.  For some students this will be their second round of Code Club and I will call them my “experts”. The rest are new to Code Club and may have little experience with Scratch, or none at all.

I started last year’s Spring session with the maze game with good results.  That will be my plan for this session’s first meeting which will be next week now.

In the mean time, I’ve been looking at some new resources to get ideas for new projects.  (I love the projects from Code Club World but it’s good to have variety.)  I found a project in the book Super Scratch Programming Adventure! from No Starch Press that I would like to try with my Code Club coders.  It’s the Space Odyssey game and the second project in the book.
Screen Shot 2016-02-24 at 11.45.54 AM

The book is nicely laid out and kid friendly with parts of it in comic book mode and downloadable resources. It even has an educator/parent guide.

I’ve spent the morning following the directions for Space Odyssey project and I think my students will like it.  It has all the elements that they are known to enjoy: cool graphics and sounds, step by step directions, customizability, and game play.Screen Shot 2016-02-24 at 11.44.57 AM

Maze Race Game

Last week’s Code Club took a lot of planning and preparation.  I’m going to write about it in 2 parts. Here’s part 1.

I introduced one last project for Code Club on Wednesday.  I wanted them to learn that Sprites can sense what they are touching, like a color, or the stage’s edge, or another Sprite. Collision detection is a fairly basic element in many computer games and not trivial to code for in many programming languages, in my opinion. Scratch makes it fairly intuitive. I found three different instructional resources that teach the creation of a maze or race game in Scratch.

Code Club World has a Boat Race project in beta form. It is so new, in fact, that when I went looking for a project of this type, it was only available from Code Club (for UK clubs only).  Looks like a fun project and I want to try it next time.

In Jeremy Scott’s “Starting from Scratch” guide, there’s a maze game that introduces collision detection. I like this resource from the Royal Society of Edinburgh.  It explains basic computer science concepts and ideas that the students will be exposed to using Scratch. That helps me use the correct terminology and know the “why” do I teach this behind the “how” do I teach this. The maze game instructions looked easy to follow to me, but it wasn’t in the Code Club format that the students had grown used to.

Maze game.

Maze game -use the arrow keys to reach the dragon. Don’t touch the sides.

I also came across Simon Haughton’s website and in his second Scratch lesson he has a car racing game. The goal is to cross the finish line without driving off the track.  Driving off the track sends you back to the beginning. I like how he has the students make their own race track in 3 simple steps: Flood the stage with color,  draw or erase the “track”, and draw a finish line in a different color.

My take on Race Game

I used his instructions first with a group of 4th grade students who have been learning a bit about Scratch during school.  We didn’t have time to do any extensions, like adding a timer, enemies or sounds, but a couple of students added a “crashed” costume to their car. Turns out if the new costume is bigger or a different shape than your original, you may be touching the edge of the track even when sent back to the start.  Another student was starting to add an oil slick, like my water hazard, before we ran out of time.

Unsure of how much coding time we’d have in Code Club this week, because we had a guest speaker coming talk about software development, I decided to started with Jeremy Scott’s Maze game instructions. We used the maze gif resource for the stage but I let them choose any two sprites for explorer and target. One student spent the whole time editing the sprite to his satisfaction -a graphic designer in the making, perhaps?  Next we set up the arrow key controls on the explorer sprite and added collision and target detection.   By the end of Code Club some were able to start a second level of their own design.

Second level student example

Second level student example

cp maze

Second level, student example

The jump to using different sources for instruction was hardest on my volunteers.  Our speaker stayed to assist and I had my high school student there as well. I had experience fielding questions with this after my 4th grade class earlier that day, but my volunteers were grasping the concepts at the same time as the students. Also the handouts weren’t as readable as they could’ve been. After a rough start, things settled down and the students seemed pretty independent.  Hey, I think that’s success right there.

What about that guest speaker, you ask?  That’ll be part 2.