Create Your Own World

I don’t usually blog in the summer, but I’m running a weekly summer code club at the library in July and I’m being a bit reflective about the monthly one that I helped lead this last year.

Earlier in the year, I introduced a new (to me, too) project to the Lebanon Library Creative Coders. We decided to take two of our monthly meetings, February and March, to work on the Create Your Own World project from Code Club World.  I knew this middle school age group would enjoy creating a platform game. One of them even continued to work on it for a third month and was able to add a lot of detail like hit points, inventory list, and bad guys.

 

Screen Shot 2018-06-29 at 8.05.47 AM

World detailed with inventory, hp, weapon and bad guys.

The first meeting we focused on setting up the player movement.  We remixed Code Club Rik’s Resources for this project so we could jump right in with the coding.  When I was prepping for our meeting, I went ahead and changed the character from a square to an overhead view of a guy walking.  One of my original groups of students created Showcase projects called Tomb of Terror and Shadow Swamp with Hatty McWalker.  That’s who I was thinking of with this guy.

Screen Shot 2018-06-29 at 7.49.15 AM

Overhead view of my player.  I added a costume with the mirror image and a “next costume” block in my code to make him look like he is walking.

The Creative Coders were certainly creative with the movement options.  I’m used to using arrow keys for movement, but these middle schoolers liked ASWD and this creative ghoulish option with side arrows for turning and up for forward:

 

I’m finding it useful to look at the code more closely.  There are some interesting, creative coding going on and I’m seeing some misconceptions that will help me help them debug their code.

Screen Shot 2018-06-29 at 7.27.01 AM

Well coded ASWD movement and wall checking

I’ve seen this forever-forever coding before. Something is not working like they expect and they try to solve it with nested forever loops.

Screen Shot 2018-06-29 at 7.27.37 AM

Nested infinite (practically) loops didn’t fix the problem – switching to the “play sound until done” block did.

Or they are checking for an event and forget to put in the forever loop:

Screen Shot 2018-06-29 at 7.55.25 AM

One time event checking?

This wall checking code has been separated from the key-press event giving no response.

Screen Shot 2018-06-29 at 8.02.31 AM

If touching wall move in all directions at once.

A couple of the coders explored more blocks where you can define your own.  This led to a teaching moment for me to explain how these function blocks worked.  It turned out less useful than my right-click to duplicate code suggestion.

 

 

All in all, they impressed me. In the moment I’m not always sure what is going on with everyone and even at the end when we stop to share what we’ve accomplished I don’t always know how they did.

Some of them didn’t want to continue what they had started the month before, but they were self-motivated and independent enough to work on their own projects.

I love that this crew is supportive of each other and willing to share their ideas and compliments.

Screen Shot 2018-06-29 at 7.23.54 AM

I appreciate good, supportive commenting

Some of the same students have signed up for the summer session. I’m looking forward to it.

Advertisements

Make It Your Own

My 10th after school Code Club started at the end of February.  This is a small group of 10 4th grade students, which is nice for a change. It is great to have three girls in the club, too. A couple of the students were in Code Club in 3rd grade and a couple students also come to the monthly Library Code Club.

For our first project, I presented an old Code Club project “Felix and Hebert” which I did not find on the Code Club World site when I went to link to it. It is a simple chase game where one Sprite is controlled by the mouse, the other chases after it. The project gets you a simple game with very little coding. It is a nice way to introduce Sprites and Events and I saw some creative projects.

For our second meeting, we started with an Etch-a-sketch project with the option to add a maze game to it.  Some students stayed with the Etch-a-sketch project, just having fun messing around with drawing on the screen. It was a nice twist to start with the Pen blocks and directional controls, then add the wall color sensing code for a maze game. I feel these two projects transition nicely into each other instead of doing one project or the other.

Screen Shot 2018-03-10 at 8.35.37 PM

This student just enjoyed making a drawing program.

Screen Shot 2018-03-10 at 8.36.10 PM

Etch-a-Sketch code

Another student changed the arrow keys commands to generate interesting curve drawings. The up arrow moves the Sprite forward as normal but the left and right keys turn the Sprite.  Hold two keys at once for drawing curves.

Screen Shot 2018-03-10 at 8.32.59 PM

Up arrow for moving forward, Left and right for changing direction. Plus the trail of the chaser bot.

 

Screen Shot 2018-03-10 at 8.32.28 PM

It was very cool to see curves drawn instead of the usual straight lines and square corners of the Etch-a-Sketch. Some of the other students wanted to copy this movement style.  I was proud to see the students share their code ideas.  Later I saw one student sharing a way to make your own code blocks. He thought this code was how he made the Sprite stop moving.

When I looked closer, I noticed he didn’t have any blocks under the define hat.  He was sharing his code but it wasn’t code that was affecting anything.  I am impressed that he choose to design his own code block when he couldn’t find the block he wanted, even if he doesn’t yet understand how to do that.

Next week we are going to try the Chatbot project and I’ll have to explain how the “Make your own blocks” work.  I have been wanting to show students how those work, now I have a good excuse.

Screen Shot 2018-03-10 at 8.37.18 PM

In this project, you can teleport to the rainbow.

 

Screen Shot 2018-03-10 at 8.37.11 PM

Touch yellow to be teleported to the rainbow. Touch black to return.

This is a creative and adventurous group.  Should be a fun 10 weeks.

We Love Winter

It was another snow day today which reminds me of a recent project made by a 2nd-grade class. They missed Hour of Code Week activities so their teacher asked me to do a coding project with them.

Screen Shot 2018-02-07 at 7.25.49 PM

Over the course of three 25 minute computer lab times, the 2nd graders created these winter themed projects.  They include 3-4 clickable sprites and one sprite that introduces the project and gives directions.

Screen Shot 2018-02-07 at 7.30.31 PM

This was a true first project for these students.  I introduced all the different aspects of Scratch: Stage, Sprites, Code blocks, events, etc.  We started with making the Sprites ‘clickable’ – meaning they would do something when we clicked on them.  We did a few different Sprites do different things.  There was some confusion around having the Sprite “say” hello.  The students expected to hear “hello” spoken, not written on the screen. I guess I need to be more precise when describing that action.

We did add a Sprite that plays a Sound when clicked, and one that turns, one that changes color.  And one that glides.  I decided that the glide block would work better in our interactive project than a move block that might eventually move off the stage.

Screen Shot 2018-02-07 at 8.22.06 PM

The last Sprite we added was one that would introduce the project and “say” the directions.

Screen Shot 2018-02-07 at 8.25.27 PM

I thought they did a great job on their first project.

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/

 

 

Catch with Creative Coders

Last week I presented the Catch Game project to my group of coders that meets at the library once a month.  This group has a different vibe than my weekly Code Club.  Some of these coders are a bit older, some were in my Code Club when they were in 4th grade and we have new members each month.

We are also using online Scratch accounts on the library Chromebooks instead of Scratch 2.0 offline editor.  I’ve set up a teacher account and a class. Members can use one of the pre-set 15 student accounts or their own Scratch account if they have one.

Each month I set up a studio for them to add their projects. Then we can all try out and play their projects at the end of the session.   I’ve had a bit of trouble with adding studios.  Sometimes they have not been available to the students to see or to add their projects, but I think I’ve figured out why.  There are two ways I can set up a studio in my Scratch Teacher Account – under My Classes and under My Stuff.  If I can set up a studio inside My Classes, that will automatically allow my students to be curators of that studio.  If I set up the studio under My Stuff then only I am set up as a curator of the studio.  Interestingly, I can see all of the studios from My Studios. The difference appears when I look in the Curators tab.

Screen Shot 2018-01-13 at 10.16.53 AM.png

We emphasize creativity in their project design and encourage sharing and playing each other’s projects at the end of each session. I like to display each one on the big screen as well, as we want to celebrate each coder’s hard work. So I was a bit frustrated when no one could see the studio I set up.  One student helped me out on Monday by setting up a studio from his student account and adding to it all the shared projects.

 

Screen Shot 2018-01-13 at 10.21.57 AM

Catch the snowflakes

 

 

Screen Shot 2018-01-13 at 10.34.17 AM

1000 bonus points for catching the soccer ball!

 

They are a pretty creative bunch and didn’t have much problem with the project.  One student seemed to strive to annoy everyone with “creative” sound effects.  Others were making the screens fill with falling pugs or watermelons.

One student asked about keeping a high score list.  I think I’ll need to look into that request.  I know I’ve seen instructions about that somewhere.

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