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.
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:
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.
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.
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.
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?