Teaching Getting Unstuck

Last year I had the amazing opportunity to pilot the Creative Computing Lab’s Getting Unstuck curriculum with a fourth grade class. Our weekly coding sessions is what got me, the classroom teacher, and the students, through the year, honestly.

I started the class off with some introductory Scratch projects in the fall to get them familiar with Scratch online and some of the basics in preparation for starting Getting Unstuck in January. I created a class and Scratch usernames with my Scratch teacher account. The students use Chromebooks and Google Classroom so it was easy to share Scratch studio links, project instructions and GU journals whether we were remote or not.

Our starter projects for the fall were: Trick or Treat, Butterfly Gardens, and a Maze (for #CSEdWeek2020). These are some of my favorite, go to, introductory projects but they are all step-by-step, follow along projects that produce similar results. The creativity is limited and comes with boundaries. Still a great way to introduce Scratch and what you can do with it.

In January we started with the Getting Unstuck “When Clicked” module. I showed the introduction video, went over the design journal and we brainstormed about project ideas. We were going to look at the Inspiration studio next but ran out of time for that session. I met with them once a week for 30-40 minutes. It worked but modules took longer than I anticipated – mostly because the students, generally, wanted more time to work on their projects. At first it was hard to get them to share their unfinished projects in our class studio. I told them to consider them works in progress, or WIP, and that they could indicate that in the directions, notes or title. From my Scratch teacher account, I can’t look at projects unless they have shared them. Putting them in the design studio helps too.

Our first GU studio – so much creative coding!

In February we started the Getting Unstuck “Color Sensing” module. This one went better but the students had an idea of the process – how the journal works, the work flow and expectations. They had some experience sharing and reflecting. I also had a better understanding of the size and scope of projects they could create in the time I was giving them. Some of the students had such big ideas for projects and, as any coder knows, it always takes longer than expected to complete. Most of my students are novice coders but they were able to show so much expression, voice and creativity within this framework that I was happy to give them a little bit more time. I was also glad to see more reflection and more community (commenting and supporting each other) this time around.

Our third and final module was Getting Unstuck “Broadcast” module. I had planned to try the “Random” module as adding randomness to my projects is one of my favorite things, but I realized that my students weren’t ready. They were ready for broadcast and receive. One student had needed it for an earlier project. The students did a good job with this difficult concept and the GU unplugged activity really helped. The students had improved so much. They were seeing their own perseverance and growth (and writing about it in their journal) and were really enjoying giving and getting comments and especially the coding!

Commenting within a supportive community

That’s a quick overview of my experience. I also supported by the creators of the curriculum at the Creative Computing Lab and the other teachers piloting the project which was so helpful.

If you want to learn more, there’s a Getting Unstuck launch party! This party will take the form of a Twitter chat, using the #GettingUnstuck hashtag, on August 10 from 6–7pm EDT.

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/

 

 

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

Scratch Alternative Presentation

In one fourth-grade class students had a US state presentation project as one of the last assignments for school this year. I received the okay from the teacher to allow a student to make his presentation using Scratch.  He was a Code Club member and I knew he had the programming skill and drive to complete all the requirements for the project using Scratch.

While the rest of the class used Google Slides, he made this great Scratch interactive project to share.  He worked hard and I was impressed with the results.Screen Shot 2017-07-02 at 1.30.49 PM

He set the project up like a Chatbot project and used broadcast to change the backdrops. He also asked questions to keep the audience engaged.

I was available to help with the coding, but he worked pretty independently.

Screen Shot 2017-07-02 at 1.47.13 PM

I would have liked to see more picture Sprites. We also discussed recording some audio for a portion of the presentation but ran out of time. He made a bibliography backdrop but it didn’t get included in the version we uploaded. Before he presented this to his class, he made some last minute changes that are saved in his account offline and not published.

He has his own Scratch account now and I know he will continue to code and create in middle school.  That makes me really proud.

Screen Shot 2017-07-02 at 1.39.38 PM

He had a rough end of the year within his classroom and with the dynamics of some of the other students so I was glad to be able to give him some flexibility with this assignment and let him do something he enjoys and show his coding skills.

I would like to think that Scratch would be an acceptable presentation format for other school projects like this.  I have been thinking along these lines for a while and now have proof that it can be done and can show teachers what the results look like.

If Math Games, Then Hour of Code

Computer Science Education Week is upon us and my first batch of 4th grade Scratch math games are shared.  More will be completed tomorrow.  3rd graders have also been working on math games within my Scratch teacher account. I need to post those on our school website, too.screen-shot-2016-12-04-at-7-39-55-pm

I’ve been noticing a subtle misconception showing up with how my student are using the ask and answer blocks in their math quiz games.  When introducing the ask and answer block, I state that the two blocks work together. I talk about how the ask and wait is a Sensing block and is waiting for the user to type something and that something is held by the answer block.  I specifically say that these blocks come in a pair because I’ve had other issues with students type “answer” in the operator instead of using the answer block.

screen-shot-2016-12-04-at-7-26-27-pm

 

This year, I guess, the students have more complicated scenarios with multiple Sprites in play.  They set up one Sprite to ask the question.

screen-shot-2016-12-04-at-8-20-58-pm

and another Sprite to face the consequences of a right or wrong answer.

screen-shot-2016-12-04-at-6-57-26-pm

The logic seems okay unless you realize that other Sprite is not waiting for the input.  That is subtle for them to understand.

I realize that the answer block is a global variable and can be separated from the ask block. The code below works on a separate Sprite from the one asking.

screen-shot-2016-12-04-at-8-08-30-pm

However, my solution for the students was to create two broadcast messages: “correct” and “incorrect”. The broadcast event block is a powerful tool and a good block to get to know. Fourth grade teams were able to work on separate Sprites and code the ask/answer decisions in one and the receive broadcast events in the other and put them together to make cool projects.

screen-shot-2016-12-04-at-7-38-18-pm

 

Then, of course, there is what happens when you show a certain 4th grader how to make random math fact variables:

screen-shot-2016-12-04-at-6-54-49-pm

Yikes! I’m not sure how Scratch does it, but I love the fail soft aspects that make this a super awesome programming platform for kids.

More about Hour of Code as the week progresses.  I’m really looking forward to the week’s events.

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

 

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.

Paint It!

Screen Shot 2015-02-10 at 6.42.12 AMLast week Code Club was challenging. I gave my coders a difficult project. They did it, but it was probably not the best fit for the group because it has to be precisely followed with a long set up.  I used Paint Box, a project from Code Club World (We are a registered Code Club World club).  It introduces some key Scratch blocks and new ideas of how to use Scratch.  Hopefully some of those ideas will be useful.

Pen tools

Some pen tools

One of these objectives was to introduce the Pen blocks.  It’s one set of tools that I didn’t even talk about in the first round of Code Club.  I’m not sure why exactly. Perhaps because they remind me of Turtle Logo programming and for that reason, I couldn’t see how students would use them in a game of their own making. Still, the Paint Box project is pretty cool – you make your own paint program.

While Code Club hasn’t used the Pen blocks, I have introduced Simon Haughton’s Etch-a-Sketch project to some 3rd & 4th graders in a half-hour class/group setting.  So for Code Club, I went for the more challenging Paint Box project.

The second learning objective I found in this project was to see “broadcast” used in another way. I like Paint Box project’s use of the broadcast/receive code blocks.  This can be a powerful tool in coding with Scratch. It this case, it is used for simple button handling.  We have used broadcast-receive blocks before, but to see it used in a variety of ways will help them see how useful this command can be.

handling button clicks

handling button clicks

There were some unexpected behaviors in the code that the students kept calling glitches. I hadn’t noticed them when I worked through the project.  Again, we are still using Scratch 1.4 in the lab, for now, but it turns out what was making the pen “glitchy” was the placement of the Sprite center.  This was another learning objective – learn about “set costume center”.

set costume center is key

set costume center is key

The directions specify to set the costume center at the point of the pencil Sprite. If the costume center was over the drawing of the pen itself, the pen down action wouldn’t always work and drawing on the screen became “glitchy”.  It seems when costume center on the pencil Sprite combined with the mouse commands causing the Sprite to be under the mouse when “mouse down” is received, Scratch isn’t sure if you are interacting with the Stage or playing the game. If you run the program in projector mode, the glitches are alleviated and the pen works in any costume center placement. I found this out later when working through the buggy behavior with my spouse, the software engineer.

Student Paint Box project

one student’s Paint Box project

So this project was heavy on the learning objectives. By the end of the hour most of them had a couple of buttons. Only one was thinking about adding more – a rainbow pencil or “stamps”. They did it, but their creativity wasn’t tapped. I need to give them time for more creativity. Next two weeks we’ll be back to game projects then they’ll start their independent project.

Here are two coders during indoor recess working on an independent project. Yeah, they really can’t wait for the independent project to start.

Pair-programming -4th grade style - sharing the same chair.

Pair-programming -4th grade style – sharing the same chair.

One of them has asked repeatedly if this can be their project for this session and I’ve told him “Yes” each time.