Saturday, November 14, 2015

Developing A Light Logo NeoPixel 24 Curriculum

Light Logo, created by Brian Silverman, is a version of the Logo language that is used to program a few versions of the NeoPixels, from rings to strips, through an Arduino. See Josh Burker's post for how to get started, and see my Instructable for how to get a 24 NeoPixel ring more-or-less classroom ready. I'm developing a curriculum for it with 8th grade students as my guinea pigs and here are some thoughts that have come up as I use Light Logo in the classroom.

The Curriculum

Here is the curriculum document. It is a work in progress and will continue to change as I use it with students and tweak it based on what I see.

Learning Goals?

Yes, there are some! Given some scaffolding, I want students to have time and incentive to play, and in so doing, develop their own algorithmic thinking. This can be at the most basic level ("If I do this, maybe this will happen.") and at more contextual levels with programming structures ("If I make the wait time shorter, then when it loops it should go faster") and math concepts ("If I repeat a 4 step sequence 6 times it should fit perfectly on the ring.").

The Incentives

Incentives are important. I teach in a girls school and through research and experience I find many of my students need an engaging purpose for exploring a technology. They can only tolerate so much frustration if they don't see a reason for tolerating it beyond learning how it works. The NeoPixel provides one immediate incentive in its amazing beauty. We turn off the lights in the classroom to let the NeoPixels be the focus and provide an environment of wonder. They love to see how the colors light up each other's faces. I'm highlighting that beauty by documenting it with still and animated GIF images on a blog. I and they like to see these ephemeral instances of beauty captured and preserved. The curriculum I'm developing focuses on two key assignment goals:
  • Creating and playing with patterns: This provides a hook into mathematical thinking and also allows them to find a pleasing order in the devices themselves.
  • Telling stories: Creating a narrative behind the colors and movement makes the devices come alive in a different way, taps different thinking and feeling areas of the students.

Decisions I've Made

Here are some decisions I've made as I've worked through and revised the curriculum:
  • As mentioned before, turn off the lights! 
  • Put up one slide of the curriculum slide document, discuss it, work with it, then move on to the next as a class, but provide the link for those who want to explore ahead. At first, I tried keeping everyone on the same slide but found slower students were holding back others eager to move on. Then I tried giving everyone the link and said go at your own pace and it became a chaotic mess. So the happy medium seems to be provide structure and instructions for most while letting a few who really get it explore ahead.
  • Attach the 3d printed shields to the Arduinos with rubber bands and, though it's hard to do, solder the pins to the holes in the NeoPixel ring. Any slight jostling can cause pins to lose contact which makes the board reset or flash randomly or go dark, which is unsettling to students. 
  • I put the slide on moving off the command line to write programs in a separate document much earlier than it had originally been. I didn't start right off with that because I wanted them to see they can get some nice things done on one single line of code, but will eventually need to break it up into separate lines to make it easier to see what they are doing. Initially I thought they could get all the way to the activities on randomness, but they got really bogged down as soon as they started using repeat, especially missing omitted parameters. So I moved it up to right after repeat so they could experience that problem and then learn that whitespace is a necessity for program clarity. 
  • Also regarding the above note, I found that they really quickly wanted to be able to make programs that animate, so they needed the loop command to do that easily almost as soon as they had learned to work with repeat.
  • Tip: If working on a Mac, TextEdit must be set in the preferences to plain text mode by default rather than rich text formatting mode.
This document is a real work in progress! At this time I haven't even worked with students past the One-At-A-Time slide, so I'm sure this original will still change.

No comments :