Tuesday, November 14, 2017

Micro:bit = Macro:awesome!

Thanks to the the generosity of some wonderful people and Donors Choose, the lab now has a set of BBC Micro:bits. These tiny, programmable boards were first tried by our 5th graders during the first cycle of magnet classes. They only had a week on account of the late start to school. This cycle, the 4th graders are getting a more in depth experience with the Micro:bit.

I wrote about the Micro:bit in a previous post so I won't go on about it here. Suffice it to say that it is a marvelously user friendly board for students. It provides them with the opportunity to learn about a variety of inputs and outputs using a block-based programming language with which they are already familiar.

The unit started off with a scavenger hunt of sorts designed to help students become familiar with the most commonly used blocks in the palette. The Micro:bit is capable of some highly sophisticated programming and I wanted to steer students away from the more advanced block until they were familiar with the basics. So far, the classes I have seen so far have done a great job working through the tasks and connecting the work to their previous programming experience. Once the teams complete the scavenger hunt, I provide them with a guide to making a "rock, paper, scissors" game where the Micro:bit shows your choice rather than using the traditional hand gestures.

The next part of the unit incorporated the Micro:bit into a design and making challenge, the "micro:pet". Students worked in teams to design and build a pet with the Micro:bit playing some part in bringing the pet to life. At this point, only half of the 4th grade classes have completed this, but so far the results have been amazing. We have had all manner of creatures, both real and imagined, and some incredibly clever programming to go along with them. The wide variety of inputs available on the Micro:bit means students can create a number of behaviors for their pets.

The final part of the unit is for student teams to create a program with as many different inputs and outputs as possible. This is the point when I have given them more or less free reign to explore the palette of blocks and make use of whatever they can make work. Needless to say, most groups have gravitated towards the "Music" menu and there has been a lot of bleepy noise at the end of week two. Good times!

It has been great to the see the excitement students have for the Micro:bit. Personally, know all that is possible with it, I am excited for all the projects to come!

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.

Sunday, August 20, 2017

Welcome to Another Year of Amazing

The summer just flies by doesn't it? It seems like just the other day I was putting everything in boxes and locking the cabinets. Now I am trying to remember where I put everything as I set up for the coming year.

For those who are new to Sinclair, welcome! For those of you returning, welcome back! I am looking forward to another exciting year in the STEM Lab. This will be the STEM Lab's 3rd year and I feel pretty comfortable saying that it is going to be the best yet. I have a wealth of projects planned that will challenge the students to think in new ways and to build things they never thought possible.

Testing the Scratchboard with
Mitch Resnick of MIT
OMG! It's Colleen Graves!
I hope that everyone had a great summer. I sure did! A definite highlight was getting the chance to attend the International Society for Technology in Education (ISTE) conference in San Antonio. It was an exciting chance to meet and learn from some some of my educational technology heroes, and to see what is new and upcoming in the field. I attended a pair of workshops led by Mitchell Resnick, one of the creators of the Scratch programming language. I met the amazing Colleen Graves the inspiration behind so many of the projects we did last year. I finally got to meet the team from ScratchEd, Willa and Karen, who wrote an awesome article about the work Sinclair's students have been doing in the STEM Lab with Scratch. I presented some of the work students did last year on the Raspberry Pi computers we have in the lab at the ISTE Raspberry Jam. Also, as part of the conference, I got the chance to become a Certified BrainPop Educator. There were so many amazing things to see and people to talk to that I cannot possibly list them all. Suffice it to say that it was a truly awesome experience.
The ScratchEd Team, Karen & Willa

I spent big part of my summer visiting family and taking my daughter to visit colleges. It was great to spend some time traveling (which many of you know is a big part of my summers) and seeing new places.

It's Moby from BrainPop!
It is going to be an incredible year in the lab! Sinclair will once again have Schlumberger sponsoring our after school coding clubs. We will continue to participate in HISD's UIL contests. The robotics club will venture into uncharted territory with Dexter Industries' GoPiGo robots. Watch for information on these opportunities in the next few weeks. As always, let me know if you have any questions. Be sure to drop by the lab during Meet the Teacher on Friday, August 25, from 4:30 to 6:45. Check the Sinclair website for more information.

Sunday, May 21, 2017

Made with Scratch, and with Scratch Jr.

For the final rotation of the year, I decided to introduce the 2nd graders to full size Scratch. I had done a few lessons with them using Scratch Jr. which is a programming tool for early readers. These lessons focused on how to use the various commands to create different movements and actions. The great successes the students had with Scratch Jr. led me the decision to take them to the next level. In doing so, I hope to have them ready to use Scratch as a means of expression in their work next year.

During the first week of the unit I had students work through the built in tutorial lessons found in Scratch. After a brief introduction to the user interface, drawing their attention to the various palettes and drawing tools, I set them to work on the "Animate your name" lesson. Students worked in partner groups as pair programmers, taking turns as drivers and navigators. This partner work helps by lending each project 2 sets of eyes to read the directions and to watch for mistakes. Over the next few days, the students made a number of different games that employed a variety of programming techniques including different kinds of loops and conditional statements.

The second week began with an introduction to using broadcasts to control the flow and action in the programs. I started with a whole group example program using a knock knock joke. In the program the sprites each say their portion of the joke at the appropriate time. This is accomplished by coding each statement the sprites say as separate script, each initiated by a broadcast. The first task I set the groups was to program a simple conversation. Many elected to copy the knock knock format, but others decided to try to create an original conversation. Keeping their broadcasts in order proved challenging to many students. As the conversations grew in length and complexity (thanks to the addition of more sprites), the number of broadcasts also grew. They worked on programming conversations and stories all week. There was some frustration when all of the sprites started talking over each other. However, there was a lot of excellent debugging practice as well. By the end of the week, most groups had succeeded in creating a story with conversations, movements, and scene changes. No two stories were alike, which is the most wonderful thing about Scratch, the amount of creative freedom students can have while still working on the same assignment.

As I had done with second grade, I also taught Scratch Jr. lessons to the kindergarten and first graders. The focus was on using the various tools and giving the students time to explore and experiment. During this final unit, I wanted to begin to teach them how to use Scratch Jr. to show what they have learned about a topic similar to what the 3rd and 4th graders have been doing. So each day we started by watching a Brain Pop Jr. movie about a different topic; parts of a plant, frog life cycles, the seasons, etc. and made some kind of illustrated foldable paper display for the information gathered. The next class, after reviewing the previous day's topic, student pairs then worked in Scratch Jr. to create a program that shared what they knew about that subject. I offered some guidance about getting started for each topic, but most of the creative choices were left to the students. They had to learn about drawing their own sprites and backgrounds. They also had to master the Scratch Jr. version of broadcasts to initiate scene changes and sprite conversations. The most truly wonderful part of watching the students work on their programs was the moment each day when a student made a discovery and called to his or her neighbor and said, "Look at this!". The neighbor would inevitably ask, "How did you do that?" at which point the first student would teach what they had learned. In this way, discoveries spread across the room from all directions like ripples in a pond.

In the end, I am so proud of the amazing work these young coders have done and I am so excited to see where they will take this learning next year.

Friday, May 5, 2017

Makey Makey-ing Interactive Displays

For the final STEM Lab rotation I wanted 3rd and 4th grade to employ all of the skills they developed this year. They constructed cardboard arcades and costumes for robotic story retells. They created a variety of Scratch projects, some to share content area knowledge, some just for fun. So I planned a unit that would require both their physical and digital making acumen. Enter the Makey Makey.

The Makey Makey is an input/output board that allows students to create circuits that act as keyboard presses. Using the programming language Scratch, students are able to create projects with an interactive dimension. The end product of this unit is an interactive poster or display that responds to the user's touch to activate the different parts of the program.

Students were organized into pairs and then used the project selector to be assigned a topic. This was the first introduction to Makey Makey for most of them. The project selector is a Scratch program I created with several lists of topics. Students pressed one of 4 foil switches left over from our STEM night, and the project told them their topic. (Third grade received a science concept, 4th was assigned an influential woman from history.) This was followed by a day of research. Student teams recorded their information in journals and then planned their Scratch projects. They grouped their facts plotting what images or animations would be on screen at the time. The teams also had to plan their physical display pieces. I showed the classes a few half done versions of the projects to give them a starting point. Most groups ended up far exceeding  my ideas in terms of creativity and skill.

With their research and planning finished, the teams began creating their Scratch projects and displays. Students learned how to insert photographs and other graphics from their research into the program. They also learned about proper citations of sources and images. The Scratch presentation required students to build scripts around key press events. For example, when the space key is pressed the background changes or an animation begins and a sprite tells a piece of information about the topic. Other key press events cause different things to happen in the program. The displays could be anything from posters to paper sculptures. There was a wonderful variety of display pieces; posters like protest signs, a 3D submarine, a model of the UNIVAC, and a diorama of the jungle.

Once both parts, digital and physical were complete, the groups used copper foil tape with a conductive adhesive to "wire" their projects. Metal fasteners were used as buttons on the outward side of the display with the wires on the reverse. The Makey Makey uses alligator clip wires to connect the contacts on the device to the copper foil wires. Each contact is designated as a particular key, space, the arrow keys and 6 letters. The user touches a ground point on the display with one hand and one of the buttons with the other, thus closing a circuit. Makey Makey signals the computer that a key was pressed. The act of wiring and testing that touching the display caused the correct response in their program was an excellent exercise in basic circuits and debugging.

As always, I have been deeply impressed with the work the students produced. Now that they are familiar with using Makey Makey I cannot wait to see what they do with it next year!

Tuesday, April 11, 2017

That is so cool! Physical Computing with Raspberry Pi

Last year I added Raspberry Pi computers to the STEM lab. My main reason for doing so was to have more computers available for my after school coding club. The more familiar I became with these amazing devices, the more I wanted to teach a whole Raspberry Pi unit to my regular classes. The problem was that I was not quite sure where or how to start. Then I was fortunate enough to be selected for the Picademy training held in Austin this past December. (I wrote about that amazing experience here.) This unit is the result of what I learned there. It is a work in progress, a "first attempt in learning" as they say at Picademy. I will take all of the lessons from this unit, including student feedback, and use that to plan Raspberry Pi units next year for at least 3rd, 4th, and 5th grade.

I decided to put the focus of this unit on physical computing, using a computer to control or respond to events in the real world. During the previous rotation in the lab, 5th graders learned to use a breadboard to build circuits using LEDs, buzzers, and buttons. These circuits were battery powered, so the set up was a little different. (That was the first thing I learned in fact, be explicit about the differences between wiring a circuit to a battery and to a Raspberry Pi.)

We started our physical programming adventure with an overview of the Raspberry Pi, paying special attention to how it differs from a "normal" computer. The Raspberry Pi was designed specifically for teaching computer programming and digital making skills to children and comes loaded with a number of programming tools and languages. One of those pre-loaded languages is Scratch. The students are already quite familiar with using the "broadcast" blocks in Scratch to tell stories and control the action of their projects. These same blocks are used to configure and control the GPIO pins that make physical computing possible. I started them off with blinking LEDs and then button operated LEDs. As red and green LEDs blinked to life, the room was filled with surprised gasps and exclamations like, "It worked!". It was one of these beautiful teaching moments when you know for certain that every student is engaged and genuinely excited about what they are doing. After their initial successes, students went wild adding LEDs and tinkering with the blink speed. The final challenge was to build a traffic lights arrangement of LEDS, operated with a button. This is a fairly complicated task, not because the sequencing of the lights is difficult, but because of the large numbers of broadcasts that are needed. I am proud of how the students I have had so far have persevered and succeeded. This part took a day longer than the two that I thought it would take, but that has not been a problem as it allowed the students extra time to experiment with their code.

.From Scratch, we moved on to Python which is text-based, unlike Scratch which uses blocks. I set them essentially the same tasks, blinking LEDs, buttons, and traffic lights, but this time they had to type everything. This took the necessity of careful attention to details to a whole different level. Python is extremely user friendly for students, but syntax and indentation does matter. At first, there many error messages. Once again, I had reason to be proud as my students, albeit with much grumbling about commas and capital letters, stuck to their work and overcame the challenges. Students having an understanding of the two languages also provided an excellent opportunity to compare them to highlight their similarities, and to dig deeper into computer science concepts like abstraction.

The final two days of the unit are a mini project in which students apply what they have learned to another program. The first group created a multiplication quiz game in Scratch with LEDs that light when the player answers, red for an incorrect response, green for the correct one. This the end of the second rotation and the students are just starting these final projects. I am experimenting with giving them a choices of final product. A few selected the multiplication quiz (those with a pronounced preference for Scratch), but most elected to work through a tutorial on programming Minecraft Pi with Python leading up to combining physical computing with events in the Minecraft world. I am so excited to see how these projects turn out, and to see what the next 2 groups achieve.