Saturday, October 28, 2017

How Fast Can the LED Blink?

This highly unusual school year has settled down to the point where things feel more-or-less back to normal. So I will be going back to my rough schedule of one post every couple weeks, each highlighting the work of a particular grade level. This post starts at the top with 5th grade.

Physical computing refers to using a computer to control the actions of physical objects. It is a chance for the 5th graders to combine their computer programming skills with their knowledge of electrical circuits. The computer gives them more control of their circuits than a typical switch. For this unit, students used the Raspberry Pi computer. It is a low cost, single board device that has all of the functionality of a typical desktop, but with a set of 40 input/output pins that allows users to connect and program components like LEDs, buttons, buzzers, and motors. The Pi operating system includes a number programming languages for students of all levels. We started with Scratch, a block- based programming language with which students are already familiar.




The unit began with an overview of the Raspberry Pi itself, with attention to how it is similar to and different from a traditional PC. Following that, we reviewed the use of components like LEDs, resistors, jumper wires, and breadboards. This group of students used these parts last year, but it was necessary to explain how their use differs on the computer. Over the course of the first week, students worked with partners to build increasingly complex circuits controlled by Scratch programs. The final "test" was to build an LED traffic light and program it to run the sequence from red to green to yellow and back to red at the push of a button. The teams quickly realized that this simple sounding task is not quite as easy as it sounds. Getting each part working in the correct order took more planning than they expected, but each group got their lights going eventually. Then, as usual, they set the wait time to a decimal and competed to see who could get the LEDs blinking the fastest.




Once they were feeling confident with physical computing using Scratch, I introduced them to Python. This is a professional level programming language that is user friendly enough for 5th graders. We repeated the same circuits they had built for their Scratch programs so that they could compare programs that achieve the same end with different means. After a couple of days, most students say they prefer Python to Scratch for physical computing. Some say that it's faster to type the Python than to move all the Scratch blocks around, while others feel like Python is more real. In any case, everyone has done well with their taster lessons on text based programming.




For their culminating project, the student teams returned to Scratch to create some kind of quiz game that incorporated the electromechanical components studied. Most of the teams in this block opted to make multiplication games, and one decided to make a world capitals quiz instead. This was the first of the 4 groups that will come through the lab for this unit and I am excited to see how it goes with the others!


Sunday, October 8, 2017

Time flies when the year starts 2 weeks late!

What a year it has been, and we are only 4 week into school! It certainly has been a whirlwind, and for me, it feels like we have been marching double time to get caught up on the days we missed. Usually, students spend a 2 week block in the STEM lab which allows for great project based learning. Starting the year on hurricane time has meant cutting that block back to 1 week for the first grading cycle. It took some creative adjustments to my plans, and overall things have gone quite well.

My typical STEM lab updates focus on a single grade level. However, with the last week of this first rotation set to begin, I am going to give an overview of what each grade has been up to for the start of the year.

Kindergarten, first, and second grades have started the year with Code.org coursework. For Kindergarten, this is their introduction to computer programming. They have learned about algorithms and programs. Some have taken to coding so well that they have gotten to the point where they are learning to use loops. We have also talked about the importance of persistence, not just in this unit, but in all STEM lab projects. 

For first and second grades, this unit has been a review of the computer programming principles that they learned last year. I was actually considering not having second grade of Code.org this year since it would be the same course for a third year. However, the Code.org team performed a massive upgrade to their course structure over the summer which made the second grade course a perfect bridge between the early reader puzzles and the more advanced work I will have them doing later in the year.

The third graders spent the first couple of days this rotation learning about digital etiquette and cyberbullying with Brain Pop. They watched the movies while taking notes in their journals. When they were done, they worked in small groups to make graphic organizers with Brain Pop's "Make-a-Map" tool. This was a set up for the second half of the week when I introduced them to their Scratch accounts and to the Scratch commnity. Scratch is a block based programming language developed at MIT to allow children to use coding as a means of creative self expression. Scratch is also an online community that allows the students to collaborate on projects with helpful feedback and encouragement. The students were so excited to make their first projects and share them to the class studio.

Fourth grade also spent some time studying good digital citizenship habits and getting reacquainted with Scratch. Their main project however was creating cardboard automata, a project inspired by the Tinkering Studio at the Exploratorium in San Francisco. These simple devices use two cams and axles to change the direction of rotational motion. Students built their machines using reclaimed milk cartons and cardboard. Once they managed to get the rotation working, they unleashed their creativity and decorated their work. We have had a sea of spinning butterflies, dancers, rocket ships, banners, and more! I have been amazed with the work and attention to details that I have seen, and I am looking forward to what they create in their second rotation through the lab.




The unit I originally had planned for fifth grade absolutely requires 2 weeks, so I pushed that back to the next grading cycle. Thanks to the generosity of several marvelous people and Donors Choose, the lab now has a class set of BBC Micro:bits to program. These tiny microcontrollers have a 5x5 LED matrix, 2 built-in buttons, input/output pins, an accelerometer, and Bluetooth communication. All that, and they can be programmed using the Blockly language with which the students are already familiar. The fifth graders have had the opportunity to be the first students at Sinclair to use these fantastic boards. They have a have a great deal of programming experience at this point and I have been so impressed with how they have been able to adapt their previous learning to a new device with little to no trouble. Among other things, groups have made "rock, paper, scissors" games, animations, "mood badges", and a host of silly, though nonetheless impressive, projects hilarious to 5th graders but bemusing to me.



Finally, this past week saw the beginning of the various after school digital making and robotics clubs. There was an overwhelming amount of interest this year, far more than I could accommodate. I am working to be able to expand the reach of these programs so that more students are able to participate. More information on that will be forthcoming in the next month or so.