The end of the 6th grade first rotation is quickly approaching.   I must say that the past 12 weeks have been the fastest on record.  Hard to imagine, but I will actually miss my students!

Over the course of the rotation, we have explored a lot of computer concepts together.  Their final "task/challenge" is to combine all of the pieces into one "Mangnum Opus".  The basic premise of the culminating program is to create a game that will help students practice their math facts (addition & multiplication).  The students had the freedom to decide what format they wanted to engage the user, thus letting their creativity have free range.

The variety of projects speak for themselves.  The students learned a wide assortment of computing concepts and computational practices over during the rotation.  They have successfully begun the process of identifying themselves as computer scientists. They are now ready to begin exploring more advanced concepts.  I hope they avail themselves of the opportunity and continue to study computer science.  They now have a strong foundation for their future programming experiences in high school.

Below is a few sample programs from the final project.  Group A & Group B studios contain a link to all of the projects.   I strong recommend that you take some time to not only try out the programs but to peak "under the hood"  
Computer science concepts as told through fairy tales - by Jeremy Kubica
In an effort to reinforce important computer science concepts, I shared a brief fairytale with the 6th graders today.  The short-story, "The Importance of (Variable) Names", focuses on the need to create clear, meaningful variable names in writing understandable and maintainable code. 

By the time Princess Ann had reached the northernmost outpost within the kingdom, she was losing hope. Her father, King Fredrick, had sent her on a quest to save the kingdom from impending darkness almost a month ago. So far, Ann had found nothing. Meanwhile reports of roaming dragons and hordes of goblins increased throughout the kingdom. Ann felt completely demoralized.

The outpost of Garroow had been hit particularly hard by the recent chaos. The goblin attacks had been increasing in recent weeks. The commander, Sir Aat, had sent word to Ann's father that the outpost was in desperate need of reinforcements. At a loss for better stops on her quest, Princess Ann headed north to Garroow.

The situation in Garroow was worse than she had expected. During her first night at the outpost, a small goblin attack almost overwhelmed it. The fifty person garrison barely held off just three, relatively lethargic, goblins. She heard the captain shouting orders at his solders: “Ut, guard the South wall. No, I meant Ot. Ut, stay where you are.” “Drex, swap places with Plex, we need an archer on the wall not a blacksmith.” “Et, secure that door.” .........

After listening to the story, the 6th graders quickly identified the important concepts and were able to make strong connections with their Scratch programs.  In addition to realizing the need to assign descriptive names to variables, it is also important to do the same for other pieces of code (messages in the broadcast command, names for sprites, costumes and backdrops).

6th Grade Scratch Projects - demonstrating loops and variables

The sixth graders spent the week working on their "What's My Number" program.  For many of the students it was their first time working with loops and conditional statements.  

Below is a list of Computational Concepts that students were exposed to while working on the Random Number Guessing "Game":
A common refrain from the students was - "Its not working".  What does that mean?  Computers only do what the programmer (which in this case was the students) tells it.  Was it a case of the computer not listening, or more accurately, the programmer not communicating clearly? Or, did they not understand the concepts I was trying to teach?  Since this was their first time working with loops and conditionals in Scratch, I would bet that for many of the students the answer would be a mixture of the two. 

One of the major skills necessary for writing good code, is the ability to break a problem down into smaller parts and to then translate it into commands that the computer can follow.  This important 21st Century Skill is known as Computational Thinking.

CSTA and ISTE define Computational Thinking as:
  • Formulating problems in a way that enables us to use a computer and other tools to help solve them.
  • Logically organizing and analyzing data
  • Representing data through abstractions such as models and simulations
  • Automating solutions through algorithmic thinking (a series of ordered steps)
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
  • Generalizing and transferring this problem solving process to a wide variety of problems

For the purposes of this assignment (program) students had to focus on developing a solution that not only solved the problem, but solved it in the most efficient and effective way possible.  To this end, we created a rubric to help them identify the varying levels of completion (for their finished program).  To help them internalize these levels, the students had to evaluate their own programs as well as the program of one of their classmates.