Poetry Generator

While planning Wednesday’s Code Club during a snow day on Tuesday I came across the Code Club World project Ada’s Poetry Generator.  This is a new project for me and I liked the way it introduced and used lists.   Arrays and lists are extremely important data structures in programming – right up there with loops and variables. I’ve never introduced lists in Scratch before.  I also liked how this project wasn’t a game but had the potential for a lot of creativity and fun.

I mocked up a project with Scratch Cat instead of Ada Lovelace.  (I did talk briefly about Ada when introducing the project.)

Screen Shot 2017-03-16 at 8.45.33 PM

I added some “talking” animation to Scratch Cat by duplicating costumes and morphing the mouth into different shapes.  Then coding the costumes to change when the poem is “spoken”

Some students whined a bit about poetry and not a game but I ignored that because I knew they’d like it once they figured it out.  I’m hoping someone chooses to make a MadLib or something similar for the final project.  If not, I may see if we can use this in some language arts project.

Here are some nice examples:

Screen Shot 2017-03-16 at 9.00.09 PM

Computer generating poetry with lists

Screen Shot 2017-03-16 at 9.06.15 PM

This coder really liked gluteus maximus, and unhelpful list naming conventions.

Screen Shot 2017-03-16 at 9.01.11 PM

Awesome animated mouth

This coder is my animator to be.  He drew and animated the PacMan and Ghost being eaten costumes… then he coded the poem in the last few minutes.

Screen Shot 2017-03-16 at 9.02.52 PM

Future animator

These two below took the morphing a bit to the extreme but the coding (and poetry) is well done:

Screen Shot 2017-03-16 at 8.56.52 PMScreen Shot 2017-03-16 at 9.15.40 PM

I enjoyed reading all the funny randomly generated poems that the students created.  I was glad I choose this project for my Code Club.

Game State – Game Loop

This week we tried out Code Club World’s Desert Race project.  One Code Club member used this for his independent project last round, so we had one expert.  We used his final project to demo the game. Screen Shot 2017-03-12 at 11.20.11 AM

Desert Race is a fairly simple 2-person race to the finish.  The main concept in this game is setting a game state variable to control the action. In event driven games is important to control the allowable events – like when to start. And we don’t want anyone to cheat by starting before the start signal.  Setting up a game state variable, ‘racing’, like a Boolean with 0 (not racing) and 1 (racing) is the concept I was hoping they would take in while making a cool two person game.

Defining a Boolean for game state is the first step to building a Game Loop that programmers use when creating more complex games.

Scratch Wiki also refers to it here: https://wiki.scratch.mit.edu/wiki/Game_Loop.

My fourth graders may not ever get to that level of programming here in Code Club, but it is a powerful idea. I have used this programming technique in (non-Scratch) games I’ve created in the past and found it useful.

I also made a quick version of the project adding a bit of 3D perspective with my Space Race project.  The racers (cat and dog) get smaller as they head to be the first to reach the planet.

Screen Shot 2017-03-12 at 11.26.57 AM

The students made some nice games. Many customized their Sprites and a couple recorded their own “win” sounds.

This one below has some almost imperceivable pitfalls that send you backwards (the opposite of a booster).

At the end of the day a few students asked to be able to keep working on the Desert Race project for next week -they needed more time and were enjoying the project.  I think I’ll let them, but I’ll need another project for those who finished or want to move on.  So I asked one of the two girls in the Club what she would like to work on and she said, how about making an ebook.  I asked if she meant like an animated story?  I’d love to focus on animation more – there are some great techniques to making things look like they are moving – I love Tumbling Santa.  Also, I’m thinking I need to show her Bubble103’s Scratch projects.  Maybe she wants to make a tutorial (nonfiction ebook).  There are a lot of How To projects on the Scratch site.  I’m considering these two options for next week.

Also awesome this week was this project:

Screen Shot 2017-03-12 at 12.18.11 PM.png

This student’s race project was lost when Scratch 2.0 offline editor crashed. He was mostly done and he lost all his code. Instead of recreating it, he made this cool project. (It is a bit glitchy, but neat.)

Spring Code Club Session Begins

Code Club session #8 met for the first time on Wednesday.  There are eighteen 4th graders and two high school volunteers.  This is the second time I’ve had a mixture of students from both elementary schools in my city in one club.  Another thing that is cool about the Spring session is that I have returning Code Club members, or, as we call them, “experts”.  Only 5 students are new to Code Club and there was only one student I didn’t know.

screen-shot-2017-03-02-at-6-56-38-am

A New Scratcher’s take on Maze game

After introductions, I asked the “experts” what favorite project they had from the last session of Code Club.  They remembered and liked the Maze game, Space Junk and Chatbot from CodeClubWorld. They also enjoyed the projects they had created themselves, not surprisingly.    I like starting with the Maze game and had already chosen that project for our first meeting.  It’s a simple game with many ways to make it more exciting and complex.

We started out by reviewing the maze design and refreshing our programming vocabulary.  What was the object of the game? How does the Sprite move (arrow keys or follow the mouse were options)?  What happens when you touch the edge of the maze?  How do you win?  Then we talked briefly about ways to make it more exciting – more levels, obstacles, villains, etc.

screen-shot-2017-03-02-at-7-08-28-am

Then they got to it. They were fairly independent coders, for the most part, and they helped each other a bit, too. My high school volunteers and I think we will be able to try some more complex coding  projects this round.  It was a really fun 75 minutes.

Thinking ahead, here are some goals for this session of Code Club:

  • Encourage more animation: We have some artists, so I’d like to share with them and encourage more creative uses of costumes for animation effects.

Screen Shot 2017-03-02 at 7.00.49 AM.png

  • Explore “more blocks”: someone is already exploring defining their own blocks.  I’d like to encourage more of this.  As well as random numbers.

Screen Shot 2017-03-02 at 7.02.18 AM.png

  • Clearing up misconceptions: We will have to revisit some concepts like the forever block and support better debugging habits
screen-shot-2017-03-02-at-7-03-35-am

Find the glitch in this code.

screen-shot-2017-03-02-at-9-58-30-pm

It seems this “expert” puts everything in forever blocks.

  • And finally – I want to use MakeyMakey‘s this time. I told them I want to use them with our projects – especially our final projects. Those couple of students who have played a bit with MakeyMakey’s were quite excited. I’m really excited (and a bit nervous). I don’t have much experience using MakeyMakey devices, with or without students.  Luckily that won’t stop me.

Scratch @ MIT 2016

Screen Shot 2016-08-12 at 11.20.28 AM

I was at my first Scratch Conference at MIT Media Lab last week (#ScratchMIT2016). It was fantastic!  I met so many awesome Scratchers, educators, researchers, developers and enthusiasts.  It was wonderful, inspiring…  “I came for the workshops and stayed for the community.”

I met the awesome Scratcher Bubble103 and her mom the very first evening and didn’t even know I was meeting a Scratch rockstar.  I met people from all around the globe and had great conversations in between keynotes and workshops and during breakfast and lunch breaks. I have made so many connections, it is quite awesome.  The Scratch team is brilliant, kind and adorable.

Screen Shot 2016-08-12 at 11.35.09 AM

Dinner was quite fun, too.

Here are some take-aways from the conference that I hope to implement during the (fast approaching) school year.

  • read Seymour Papert’s Mindstorms
  • work on parent involvement plan – the keynote about Pathways to Participation helped me understand that I need to support students beyond the school environment.
  • more collaboration with the art teacher.  This is the year when art and math and code will collide!  I’m going to introduce Beetle Blocks and the watercolorbot.  From Art Alive there was the interacting with art using Scratch and MakeyMakey piece that we might delve into. I hope we’ll do more Scratch animation, too.  STEAM on.
  • introduce the development of cheat codes to help debug Scratch at Code Club.  Rik Cross’ workshop Practical Debugging in Scratch  was super informative. Students will enjoy the idea as well.

    practical debugging

    Photo from a @Raspberry_Pi tweet

  • Scratch Jr and the Writer’s Workshop in 1st grade. Scratch Jr has come along way from the first time I saw it and I’m excited about it again. I already have a homeroom assignment with 1st grade teacher who’s tech savvy so this will not need a big sell.
  • Mathematical Simulations in Scratch.  I know my students are NOT high school math level students but I liked the way Patrick Honner was able to embrace the tools the students knew (Scratch) to work on real math problems.  I’d like to try some math modeling in Scratch -like the Monte Carlo method.  I’m going to have to see what comes up in 4th grade math class and the Math Forum Problems of the Week and see if anything looks like a good candidate to model using Scratch.
  • Continue to develop this community. Now that I’ve met all of these people I want to keep in touch whether on the internets (Twitter, Facebook) or at a ScratchEd meet-up.  I am definitely thinking about visiting Mags in Ireland.  Who knows, maybe there’ll be a Scratch conference in the UK or Europe next year.

 

 

This all looks doable and like hard fun.

(Note: there are things I will have to get, too- embroidery machine for TurtleStitch, 3-d printer for Beetle Blocks, more Makey Makey‘s.)

Scratch On!

 

Cloud Project

With the success of the 3rd grade Superhero Scratch project in March, I decided to see if 2nd graders could make a similar project and be successful.  They study cloud types as part of their science curriculum so that’s the direction I went.

Screen Shot 2016-05-04 at 7.17.20 PM

This project was very similar to the 3rd grade project but the drawing was easier – simple background and a white cloud – although even that turned out tricky.  I trimmed down the code required to 5 lines.  Still it took a while to complete.  I have 2 of the 3 class videos completed.  The other class just needs to Record Project Video and I’ll have all of their clips ready to put together.

Step 1:  Introduction to the project:  I showed the class what the project was going to look like and laid out the steps we were going to take.  Many were excited that they were going to be on YouTube.

Step 2:  Draw the Background: In the computer lab we used Paint to draw the background.  I modeled drawing a horizon line, then using the fill bucket to fill in the sky and the ground. This could be done in Scratch as well.  Save the Paint project and research clouds while everyone finishes up.

Step 3: Draw the Cloud: We used Paint to draw the cloud.  I modeled filling in the background with gray or light blue and then using different Paint brush types in white to draw the cloud they had chosen: cumulus, stratus or cirrus were the 3 types that we ended up using.

Screen Shot 2016-05-04 at 7.13.45 PM

 

Here’s where Paint and the different brush types helped add texture to the clouds.  Save again.  (I basically did one step per lab time, just so I didn’t lose anyone)

Step 4:  Import the Assets into Scratch 2.0 (offline editor) – this was their first time in Scratch so we had to look around and notice the Stage and Sprites, code blocks… etc.  Then we “cut” the Scratch Cat away and imported our background to the Stage (our Paint file didn’t quite fill the Stage, but that turned out not to be important when the video was cropped to  wide-screen in production)   Next we added our cloud Sprite.  The Sprite included the gray or blue background but we removed that with the fill bucket by filling in “nothing” or “invisible” over the background.  I’m not sure what is the best term to give to setting the alpha channel. This was a bit of a tricky part.  Also resizing the cloud. Save the Scratch project – I had them save it in their picture folder where the background and cloud files were.

Screen Shot 2016-05-04 at 7.12.58 PM

Step 5: Coding the Animation: It’s only 5 lines of code.  When the green flag is clicked, the clouds says it’s name and then floats to the left or right forever (bouncing off the edges). When I modeled this, we noticed that 10 steps at a time is too fast for a cloud.  1 step is more cloud-like. I made half-sheet printouts of the 5 lines of code.  I wrote the cloud names on the board so they could spell correctly.  Saving really seemed to be our biggest issue.  I did spend some time troubleshooting clouds not to flip upside-down or go off screen.

Screen Shot 2016-05-04 at 7.18.18 PM

Step 6: Record Project Video:  The last step.  I wrote up a detailed step-by-step for my sub, hoping it would happen. The other two classed did a great job but occasionally would forget to click the green flag, so we got 20 seconds of a un-animated cloud.  Having the 2nd graders do this step is a big time saver for video production.

Screen Shot 2016-05-04 at 7.14.47 PM

The next step was for me to convert the project files from .flv to .mov or .mp4, (I used Free MP4 Converter  software) put them together in movie making software (I use a iMovie at home, but WinMovieMaker at work), find some cloud music –Ferde Grofé’s Grand Canyon Suite seemed to fit the bill. And finally, upload to YouTube.  I showed one class their video today and they were pleased, although some couldn’t pick their cloud out of the group.  -hmmm, maybe a bit more customization of the background…

 

Here are the links to the YouTube videos:  MacNeil’s Class Video & Horne’s Class Video

I will see next year when these students are 3rd graders if making the Superhero project is easier or if we can do more with it.  I wasn’t able to do this project with all the 2nd grade classes, but it is a start.

Oo-Ah-Animation

The Scratch project we tackled last week was not a game but a straight-forward animation project. We tried the Fireworks project from Code Club World resources.  Not all of my Code Club students will want to make a game for the final independent project.  Some may want to do interactive storytelling with animations instead.  One of my goals is to expose them to some of the different types of things you can make with Scratch so when it comes time to design their own project they can say, “oh, yeah, we did something like that.” Or, at least, I can say, “Remember when we did such-and-such.  That sounds a lot like what you want to do.”

My parent volunteer introduced the project, talked a bit about animation, and gave them the choice to design their own rocket sprite and many of them did. I know I want them designing their own stuff, but give them an option or two and they’ll run with it. Have I mentioned that they are a creative bunch? They are little testing testers, too, and have no qualms about setting speed to a very large number or having a screen full of sprites.  Kudos for Scratch for not crashing in these cases.  Just goes to show that Scratch was built for and tested by kids.

What will this do?

How students test code.

The only misunderstanding I came across with this project was with the iterative approach to code building.  The directions had you start with a simple bit of code and then you built on it, testing as you went.  For example, the rocket starts with the simple scripts on the right (in the picture below) then you add the loop and conditional to improve the behavior and end up with the script on the right. I noticed a few of students who had all the different stages of the script in with their sprite and it was interfering with the expected behavior.

Iterative coding

The script on the left side is improved to become the script on the right

We only have time to try one more project before they start designing their own and there are a couple – maybe three – different projects I want to introduce. Now I have to decide.