BeetleBlocks Tower

My math students are coding a tower in BeetleBlocks.  This is a project that I have wanted to do since a 4th grader last year designed a tower in BeetleBlocks. He called it the Sears Tower.

Sears Tower

4th grader designed  Sears Tower

I set up the engineering project with the following constraints:

Engineering Task: Use the Shapes menu blocks cube and cuboid to build a tower.

Constraints: 1) You must use at least 5 Shapes blocks. 2) Each shape must stack on top and be smaller than the shape below (no overhanging blocks) 3) The total height must be 100 mm or less (but greater than 80mm) 4) the base must be 35mm x 35mm

When I introduced the project I said we would use the Engineering Design Process  (Ask, Imagine, Plan, Create, Improve).  I explained the constraints and let them ask questions. They would need a written plan of their design with a bit of pseudocode* before I would let them on the computers.

(*I used the word pseudocode and one student thought I said Sudoku.)

Drawing from the Center

Next, I explained a bit about how the beetle draws the shapes from the center.  This is the big concept for this project.  They would calculate the center height, move the beetle, draw the cuboid, move to the center of the next cuboid, etc.   I modeled an example of a plan and pseudocode on graph paper:

OLYMPUS DIGITAL CAMERA

Pseudocode on the left, block tower start on the right, z height line in the middle.

One thing I learned was drawing the model in 3d wasn’t necessary, in fact, it was probably confusing.   The students’ models were easier for all of us to understand if they drew them in 2d and just concentrated on z height and moving the beetle to the center of the next cuboid.

We spent the rest of the class period working on their plans. One student was going to use a repeat block and make a tower of all the same blocks, so I had to change the constraints to specify 5 *different* cuboids.  A number of students were stuck on the calculations from the center.  I suggested they move to the center, draw, move to the top, move to the next center, draw, etc, breaking the problem up into smaller parts.

The next time we met I reviewed BeetleBlocks coding and suggested they use Wireframe to see inside and the beetle at the center of their block.  BeetleBlocks also displays Position (the 3-d coordinates) of the beetle, so they know the z-height.

Screen Shot 2018-05-28 at 9.36.18 AM

Partially coded tower and wireframe displaying beetle at the center of the upper cuboid.

If they were happy with their paper plan they could go right to BeetleBlocks. About half the class finished their coding by the end of the class and I’m busy printing towers on our little Printrbot Play.  Another thing to note is that the minimum size of the cuboids should be 3 mm for ease of printing.

A few of them will need improving before theirs will be printed.  I noticed a few cases where the blocks were nested not stacked on top of each other.  This tells me the student is not coding z-height correctly, which is the concept I am trying to teach, beyond calculating centers of cuboids.

Screen Shot 2018-05-28 at 9.47.36 AM

Nested blocks showing me the student hasn’t coded z-height correctly.

Set versus Move (Change)

There are two different ways to code the beetle to change z height.  One way to set the beetle to a specific z coordinate and the other is to move or change z by a certain amount.  These are two different perspectives to use and I let them choose which way makes more sense to them.  Set versus change statements can be confusing when programming and cause unexpected results.  Here we can look at the model using the wireframe setting and see what is happening.

One student is making a pyramid of blocks, each block 1 mm smaller (width, length) and 2 mm in height than the previous.  He is hard coding each block.  I’m going to suggest he use a repeat block and a variable.

Screen Shot 2018-05-28 at 9.53.41 AM

Code suggestions on the left for the pyramid making tower code on the right.

This project is turning out well and I’m learning a lot along with the students. I can print each one in less than 2 hours by setting the infill to 10% and cranking up the speed.

I’m surprised no one has created a double tower or thought to rotate on the z-axis to give the tower a bit of twist.  Dare I suggest these things?

Advertisements

Presenting at Showcase #10

Today was my 10th Code Club Showcase. I am so proud of all my coders.

We had a variety of projects, most of them well put together.  It always amazes me when they come together.  I’m also amazed at the ease the students have to present to the parents. I don’t really give them a choice and they really come through.  Today was no exception and I got to see something wonderful happen.

During our snack, I went over how the Showcase would go.  The parents will be the guests and they get to sit at the computers and play the Scratch projects. Each student will present their own project for the parents.  They will pick someone to demonstrate the project (play the game) on the interactive whiteboard while they stand up front and present.  I have them fill out a half sheet of notes about the project, including how to play, the goal, their favorite part and how they would have made it better if they had had more time.  It is basically the same presentation notes from Showcase #2 with an added line for who will play the game while they are speaking.

I had only one team of two students, the rest were individual project makers. This duo created Yharmin Boss Battle (which breaks my “no weapons” rule, but that’s another post).

Screen Shot 2018-05-06 at 7.26.53 PM

The duo started as a pretty good team with equal effort but the coding was done mainly by one student and the other spent a good amount of time “off task”.  I really felt he wasn’t holding up his end of the project, but the project got done.  I noticed when they were filling out the presentation notes, this same student was leaving it up to his coding partner to do the presentation.  I told him they needed to divide up the presentation so that each of them would have things to say, much to his chagrin.  When it was their time to present and they were standing up front, the coding partner suddenly froze and couldn’t speak.  I could see his anxiety on his face and so could his parent. I told the non-coding partner that he would have to step up and present for the team.  He started to tell me that he couldn’t but realized his partner was not capable of presenting right then. I was so proud to see him step up and really come through for his partner.  He began their presentation and by the time he got to their favorite part and what they would have added if they had time, the coding partner had recovered and both of them were talking and sharing their wonderful project with us. Bravo!

At about this time I noticed another student hadn’t filled out his presentation notes, so I gave it back to him to fill out. He is a natural in public speaking and he probably didn’t need prompts, but it is good to have just in case.

 

Screen Shot 2018-05-06 at 7.07.12 PM

Falling Down Game

 

Sometimes it is the simple games that are the most fun and addictive.  Check out Falling Down Game and Geo Dash for this group’s takes on some classics.

And thank goodness for girls who code for they add the puppies and unicorns to brighten the showcase.

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.

Snow Day Cancels Showcase #9

We had a snow day on the day of our Code Club Showcase, so it was canceled.  I decided not to reschedule it.  I sent an email to all of the parents to let them know.

I included a link to all of the finished projects with this note:

Please take a moment and have your child show you his or her project.  Give it a try.  They are all very creative and represent a lot of hard work on their part.  Well done, everyone!

We had 14 great projects this term with a lot of variety.

Screen Shot 2018-01-28 at 8.27.15 PM

Drop you, Cat Sweeper, and Parkour Cat are all difficult maze-type games. Riddler, Ghost Math and Penguin Trivia ask hard questions.  In addition, there are two virtual pet projects, three chase games, two catch games, and a fighting game.

 

Screen Shot 2018-01-28 at 8.34.31 PM

All original artwork is tons of work.

 

The creator of Kung-fu Master spent a lot of time designing his Sprites with different costumes for different fight poses.  He uses different keys to control each character and has a computer-controlled character for the user to battle.  He worked independently and did an amazing job.

 

Screen Shot 2018-01-28 at 8.44.26 PM

Cat Sweeper, a chase, maze hybrid

I admit I was hoping to see Cat Sweeper presented so I could find out more about it. This was another independent coder who worked really hard and shows a lot of coding skill. It even has a one or two player mode. I ‘lose’ a lot every time I play it.

 

Screen Shot 2018-01-28 at 8.53.58 PM

Space Adventures

The creator of Space Adventures wanted to make a Try Not to Laugh project as well but instead concentrated on a fun, challenging catch game.

I found time this week during 4th-grade recess to have the Code Club members invite a school friend to join them and test out the games they all made.  It was not the same as having a showcase presentation, but their games were played and enjoyed by all.

OLYMPUS DIGITAL CAMERA

I certainly enjoyed coaching them and watching them develop their coding skills. Well done, everyone!

 

 

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.