Picture
Many individuals find the computer science classroom to be a confusing place.  Majority of students assume that the main objective of the class is to learn programming (and in my classroom, that would be to learn Scratch),  while actually the predominant 21st century skills that I am teaching my students are;  creative problem solving, computational thinking and collaboration.

This week in the fifth grade classroom we started the process by learning about algorithms.  Students experienced firsthand the importance of clear, precise instructions and a common vocabulary.  The goal (objective) was for the students to "program" (write a set of instructions) for their robot (a fellow student) to move a stack of cups from a starting position to a final configuration using ONLY six symbols. Almost immediately the students realized that they needed to agree on what the symbols meant based on the final layout of the cups.  For example, which symbols or set of symbols, would get the cups to be face up .  We agreed that the turn 90 degrees would accomplish that task.  The other thing that we agreed on, was that (at least for now) every time they need another cup, they would just say pick up cup, and it would bring the "robot" back to the stack.  

The students worked in groups of three or four. Each student had to assume a specific role to complete the activity.  Even though they would all have a turn at each of the roles, for some of the groups,  assigning the initial roles caused some tension. Thankfully after some assistance, all of the groups managed to get at least one "program" completed.  I enjoyed watching them work through the problems, I overhead some insightful conversations and found that they had discovered that collaboration was key.  I look forward to seeing them tackle more challenging problems in the future!