Wednesday, March 16, 2022

Abstraction, Algorithms, and "Human Robots"

Sixth graders have been busy continuing work with abstraction and algorithms. We have spent the past two weeks creating abstractions to write our own computer language. On the first two days we reviewed base 2 to identify how many bits were needed to identify 4 parts of a lego brick: the color, the height, and the number of pegs to identify the width and length when holding the brick in portrait position, see "Brick ID Binary Key." Each class developed a lego brick binary string of 12 bits and agreed upon symbols to move our "robot arms" to build their lego sculpture, see "Brick & Robot Symbols."


Brick ID Binary KeyBrick & Robot Symbols

Example binary code for bricks


After modeling and practicing writing algorithms with each class using their abstractions, groups worked on writing algorithms of their own as they built a lego sculpture. Together they rotated through turns to ensure that everyone in the group was included. For example, person 1 would pick a brick, person 2 would place the brick, person 3 would write that line of code, and person 4 would check that line code. Then they rotated these jobs until everyone had at least one chance to contribute and participate. Some groups stuck with 4 bricks in their sculpture while others challenged themselves with some sculptures having 8, 9, or 10 bricks when they were done. 

Take a look at the sculptures they created in class.

On the fourth day, students were given another group's lego kit which included a new algorithm and possibly a slightly different key. They were tasked with reading this new code and key to rebuild the other group's sculpture. This activity made clear the importance of abstraction and algorithms. Without a common language and sequential sets of instructions, a "robot" could not replicate the same structure.

As a final review before we embark on our Root Robot journey, we reviewed some before and after builds using examples that needed some debugging. It is important to me that my students understand that mistakes are okay. In fact, most programs usually require  some debugging, especially in the early stages, or enhancements as time goes on. Having a common language and well written algorithms is critical in running a successful program.


Stay tuned for our upcoming robot adventures with RootBot and Root Robot!


No comments:

Post a Comment