We all succeeded in getting Byte to complete the activity, but the code was not the most elegant in many cases. When we convened on Tuesday, we decided to group up in small teams of 3-4 students to see if we could come up with better algorithms that effectively decomposed our problem into set of useful functions and to more efficiently use for-loops.
The game plan: actively immerse ourselves into the puzzle.
If you want to understand Byte and his world, you have to walk in his shoes, in the land of switches, gems and portals.
In each team, one student was given the role of pretending to be Byte while acting out the commands of the other two students. The other two students took turns ‘Pair Programming’, one imagining and mentally creating an algorithm while the other documenting the algorithm on the marker board. Make sure to provide dry-erasers for this as there is lots of refactoring of ideas.
Prior to class, we made PDF files of the gems, switches and portals so that students could lay them out on the floor creating the challenging ‘cluster’ formations that were giving them so much trouble in their homework.
In the end, the in-class team activity proved very fruitful as both groups collaboratively came up with different algorithms that were much more elegant than any of the students’ individual work.
Best advice for instructors … hand out the materials, explain the task and GET OUT OF THE WAY!
Also, check out video solutions we generated here: http://buildingrainbows.com/swift-playgrounds-videos/