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.

Sunday, March 5, 2017

Building Creative Confidence in K-2

The first two units of the year for kindergarten, first, and second grade were focused on computer programming and algorithmic thinking skills. They started with a unit of computer science, and then worked with robo-mouse and a bit of Scratch Jr. programming. I wanted their 3rd unit to move away from the computer for a while to do some hands-on building and making. I decided to divide the unit into two mini projects, the first focused on guided/directed building, the second much more open-ended.

The theme of week one was architecture. We began by reading the book "Iggy Peck: Architect". It's the story of an architectural prodigy whose singular passion for building at first causes friction with his classroom teacher, but ultimately saves the day. For this portion of the unit, the building materials were drinking straws and chenille sticks. My plan was to have students start by building basic 2D shapes, and then connect those shapes to make more complex figures. However, a number of classes (1st and 2nd grades) had students who independently discovered the technique of using 2 chenille sticks in one straw end to construct 3D figures. This led me to differentiate the builds a bit to account for the different levels of building acumen. For kindergarten, we focused mostly on 2D shapes and identifying their attributes. Kinder did try their hands at 3D building, but for some the fine motor coordination was too much. With first and second I stuck to my original plan of a 2D day, a 3D  day, and 2 building challenges.

Building challenge number 1 was to construct a tower that would hold a ball several inches off the table top. This challenge provided an excellent lesson in keeping one's focus on the intended function of the structure. In each rotation I had groups that built amazing towers over 2 feet tall, but that did not manage to elevate the ball because their focus was on building up, not for holding the ball. Another teachable moment from this challenge was that triangles are more stable than squares. Many groups built structures that could hold the ball, but that twisted and fell due to a lack of support when the ball was added. Some teams kept building past the point that was necessary because they did not think to test what they had built. That said, each class had teams who managed to build something to hold the ball.

The second building challenge was a bridge the could span a 12 inch distance between 2 boxes. Again, there were groups who lost sight of what they were building for and dismantled workable models because they did not take the time to test their structures. Some teams built simple beam structures, while others built triangular supports and overhead trusses.The most impressive part of the bridge challenge was seeing the students use what they had learned from failures in the first challenge to avoid making the same mistakes. As usual, with this and the first challenge, the students surprised me with their abilities and creativity.

The second part of this unit was themed on animal adaptations. We started by looking at a variety of animals and discussed their various adaptations and how they were suited to survive in their environments. Students were challenged to design an animal that was a mash-up of two or more animals, incorporating both animals' adaptations. They had to explain how each adaptation contributed to their imagined animal's success in its particular habitat. First, students drew and labeled pictures of their animals highlighting the adaptation they thought were most important. Then they built a 3D model of their animal based on their drawing using a variety of upcycled materials. Finally, they constructed a model of the animal's habitat using a file folder and the same upcycled resources they used for their animal models.

This portion of the the unit was hard on those students who are not yet fully comfortable with the creative freedom I strive to provide in the lab. They kept asking questions that started "Can I..." and "Is it OK if..." and so on. Building my students' creative confidence has been one of my personal goals this year and this unit has shown me that, while things are not yet where I would like them to be, we are moving in the right direction. From the beginning of the year to now, there is a noticeable decrease in the number of students holding their work up to me and asking, "Like this?". And that is what I call progress.

Saturday, February 18, 2017

We Need More LEDs!

We have had a busy start to the new year for the 4th and 5th graders in the STEM lab. Between half weeks, holidays, early dismissals, rain delays, and 5th graders going to camp; we have had to make some adjustments. However, we have persevered and filled our time with flashing lights and 3D design.

This unit has a two part focus, electric circuits and 3 dimensional design and printing. My goals for the electricity portion were to give the students more hands-on practice building circuits and to teach them to use bread boards and LEDs as a lead in to the physical computing unit coming up in the 4th nine weeks. As for the 3D design/printing, these classes have spent the year so far engineering and building with their hands in the physical world and I wanted them to have some exposure to designing objects in the digital realm.

We began our work on circuits by reviewing what students already knew about the topic. The students are all well versed in the vocabulary of electrical circuits, conductor, insulator, open and closed circuits, switches, and so on. We discussed the various components that we would be using and how they fit into the students' existing knowledge. New terms included resistor and breadboard. Most had heard of an LED but were not familiar with what it stands for, light emitting diode. We examined the breadboard and sketched out how the different sets of holes are connected. Then I talked the students step by step through setting up a complete circuit. The best part of this unit so far has been the loud "oohs" and "aahs" that have accompanied the moment that first LED begins to glow. From there students build circuits using the remaining LEDs and resistors. In the next lesson, students are introduced to adding a button that turns their lights on when it is pressed. This exercise provides a great teachable moment in debugging circuits because there is always a group or two that wires the button in such a way that it turns the lights off by creating a short circuit when it is pressed. Once the students master the button, I have them add a buzzer. (Truth be told, these buzzers are much louder than I thought they would be when I ordered them.) The final challenge is then to connect all 5 LEDs and the buzzer to the button. Because of the small size of the breadboards we are using, the students must figure out how to use both halves of it in order to connect all of the components.



The materials for this part of the unit were provided by the generous individuals who supported my Donors Choose grant earlier this year. I cannot thank them enough.

The other half of this unit centers on the principles of 3D design and 3D printing. Students use a series of lessons provided by Project Ignite to learn hoe to use the tools in Tinkercad. This elementary computer assisted design program allows students create 3 dimensional objects digitally. These can then be printed on the classroom 3D printer. Students must complete the lessons and demonstrate mastery of the vocabulary and tools before being allowed to design and print an original object. One issue that keeps cropping up is that students get distracted designing some truly amazing things mid lesson and lose track of what they are supposed to be doing. (I suppose they are staying true to the spirit of tinkering.) A number of students have been able to print so far, and many more have completed the lessons and will be able to design and print during the next rotation. Moving forward, this year and into next, I will have students design and print objects not for their own sake, but as parts of other projects.

Sunday, January 1, 2017

Tales of a Third Grade Robot

Frankly, I debated a bit about which robots to use with the 3rd graders this cycle, the robo-mice or the Ozobots. In the end I decided that, though the programming would be challenging for many of them, to go with the Ozobots. These smaller-than-a-golf-ball robots have 5 optical sensors in their undercarriage. The robot uses these sensors to follow dark lines against a light background as well as to read color codes that initiate a variety of pre-programmed behaviors. The Ozobot can also be programmed using blockly (as in, but I opted not to introduce that with 3rd grade.
Students began with an introduction to the Ozobot and how to handle it correctly. Then I gave them some time to explore its use with the games and code stickers in the starter kit. The second day I distributed markers and a guide to all of the color codes that Ozobots can read. Teams practiced drawing good lines and neat codes on the back of scrap paper. This hand drawing was where I anticipated students having the most difficulty and that concern was not unfounded. Ozobot is sort of flexible about lines and codes, but not too much. The sensors lose sight of lines that are too thin, and color codes that are not uniform do not register as codes. Students with a natural inclination towards neatness were creating great codes in no time, while others needed a bit of practice. Eventually everyone was able to create a line with several embedded codes that worked.

Once the classes had gotten to know the Ozobot and the codes, I assigned puzzles for them to solve. At first these were printed and placed in a plastic sleeve and student teams used the code stickers from the kit to test their solutions. This saved paper and made debugging a much simpler process. I gradually increased the complexity of the puzzles, some of which had multiple solutions. Finally, we conducted an experiment to determine if the turn choices made by the Ozobots were indeed random.

To conclude the unit, students were challenged with a language arts themed project. Their task was to use the Ozobot and a team created story map to retell a familiar story. I showed a couple of examples and lead a discussion of how different codes might be used in different stories. For example, use the "nitro boost" for Goldilocks running from the bears, or "tornado" when the wolf blows down each little pig's house. Each team was allowed to choose whatever story they wished and used the design process recording sheet to brainstorm, plan, and document the creation of their map and pathway codes. Groups had 3-4 days for this project, so they had to make the most of their time. 

Not every group was able to get a polished story map and presentation created within the time constraint. Some teams were overly ambitious and took on too long a story. Others got carried away with background details and neglected to adequately test their lines and codes so that when it came time to present, the Ozobot did not behave as intended. Regardless, of exactly how much they got done, each team did an amazing job of working through the parts of the design process. Time may have prevented some from finishing, but everyone learned something about project management which I saw in the unit reflections they submitted. 


Sunday, December 11, 2016

First Attempt In Learning = FAIL: Picademy Reflections

I spent last Thursday and Friday failing repeatedly, and it was the best teacher development I have ever had! The facilitators encouraged us to fail, they expected it, and were not in the least dismayed when we did. All 40 of us failed over and over, and rejoiced in the freedom we had to do so. However, over the course of the 2 days, all of our failures added up to enormous success. This was Picademy, where F.A.I.L. stands for First Attempt In Learning.

If you are not familiar with the Raspberry Pi, you can check it out here. Basically, it is a small, but versatile computer designed by the Raspberry Pi Foundation in the UK to introduce children to computer science and coding. It comes pre-loaded with several coding languages like Scratch and Python. It also has accessible input/output pins making it possible for students to experiment with physical computing; controlling lights, sounds, and motors using code. We have 6 of these in the STEM lab which have heretofore mostly functioned as extra computers. I knew that I had not been using the Pi to its fullest, but as it does so much, I had no idea how or where to begin with the students. Then I learned about Picademy.

In September I found out that there was to be a Picademy in Austin at the Texas Advanced Computing Center (TACC), I applied immediately and then crossed all of my fingers and toes that I would be accepted. Frankly, my hopes were not too high. Only 40 educators are selected for each session out of hundreds of applications. I was pretty sure that my tremendous lack of experience with computing, educational technology, and digital making would get me a very nice "Thank you for applying, but..." letter. To my immense surprise and joy, on Halloween, I received an email that I had been selected to attend Picademy.

I spent the 5 weeks between that email and this past Thursday and Friday pondering just how out of my league I would find myself when I arrived in Austin.


Day one started with that most Texas of teacher training traditions, breakfast tacos. After a brief overview of the coming days and introductions all around, our facilitators taught us the Picademy motto: FAIL. They warned us that we would make mistakes, that we would feel overwhelmed, and that we may feel uncomfortably out of our depth. However, a fail, we were constantly reminded, is just a first step in the learning process. Assured that we had the freedom to fail, and that we would have the support to keep trying, they lobbed us into the deep end of computing with Raspberry Pi. We blinked LEDs with Scratch and Python, first one, then a set of traffic lights. We made music (or in my case discordant noise) using Sonic Pi. In Minecraft Pi we teleported, built towers, and turned everything we touched to gold with Python. With the Pi Camera we took pictures and movies, we used the Explorer HAT to drive motors and control more LEDs. And, and, and!


PiCamera photo booth

That afternoon, we toured the Texas Advanced Computing Center which was amazing. It is part of the University of Texas and is home to some of the fastest computers on Earth. Most are used to run simulations and forecast models of events like hurricanes, black hole collisions, and chemical interactions between materials. They have projects dealing with machine learning, public health issues, and genetics. It is a fascinating facility.

PiCamera photo effects
Our final assignment on the first day was to brainstorm project ideas. The second day of a Picademy is largely devoted to applying what one learned on day one to a project of some kind. This proved to be a tough task as I was in the throes of a full scale information overload. I was trying to think of a project that I could work on that would, in some form, be within the abilities of the the students I teach once they were more familiar with the Pi. Still, I did what I could to think of ways to apply my learning and hoped that I would be able to remember enough of it to use on Friday.

Day 2 started with some amazing speakers. Marc Scott talked about the open source educational resources movement. Amanda Haughs discussed using Raspberry Pi in the K-5 classroom. We heard more about the work done at TACC from the director, Dan Stanzione. Finally we heard from a 14 year old entrepreneur from Houston, Ethan, who started his own computer company, PCs for Me. He sells Raspberry Pi starter kits and accessories. Ethan talked about some of the projects he is using Raspberry Pi for in his classes this year.

After that healthy dose of inspiration, it was time to form a team, select a project, and get started. Matt, our lead facilitator, likened it to one of those cake baking competitions they have on TV. Teams would have 4 hours to work. At the end of that time, they would have to transport their project to the auditorium and present their work to the rest of the cohort.

Whiskers ready to dispense teaching wisdom
I was lucky to have my partner in all things also be accepted into Picademy (something that we never thought would happen). We had worked out an idea that morning as we drove to TACC. Our aim was to build a robotic virtual teaching coach who could dispense advice any time a teacher might need it. When they gave the word, we grabbed some art supplies, an Explorer HAT, a couple motors, and a handful of jumper wires and got started.

We elected to use Scratch as our programming language because it is something with which we and our students are very familiar. The Explorer HAT was selected because it can be programmed using Scratch, and can control both LEDs and motors simultaneously. To summarize the process, there was much failure. Our code needed a fair bit of debugging before it functioned to our liking. We needed help from just about every facilitator in the room and several cohort members as well to find the correct commands to light our lights and move our motors. Then there was the actual construction of Whiskers and his mountain top temple of educational wisdom. We did not have time to get all of the sound effects in that we wanted, but in the end we were pretty happy with our work. Whiskers asks for the user's name and then offers them a chance to ask a question. He then thinks for a moment and says helpful things like, "Let's talk about that in PLC next week", "You're an amazing teacher, you've got this", and "Have you tried Donors Choose?".
Set up and ready to share our project

The other presentations were great! There were several projects that used Twitter. One tweeted when a program monitoring temperature reached a certain level. Another took a picture and tweeted when a student left class for the nurse, office, or restroom. There was even a motion activated classroom pet movement camera that sent tweets. There was a Minecraft project that used the Sense Hat to search for gold underground so that the player would know where to dig. Another Minecraft project used the Pi Camera to take a picture and then rendered it in Minecraft blocks. One group built a station for creating audio books, another gutted a stuffed bear and fixed it to play lullabies and take pictures when shaken, and one built an Explorer HAT controlled scribble-bot. It was truly inspiring to see so much success after all of our first attempts in learning. Frankly there were too many amazing things to describe them all here. You can watch them all here. FYI, the movie is about an hour long.

After all teams had presented, we were officially recognized as Raspberry Pi Certified Educators. We took turns walking to the front to be presented with our certificates and pins to the stately strains of Elgar's "Pomp and Circumstance". Then it was time to pack up and head for home. I cannot say a big enough thank you to the whole Picademy team. Matt, Marc, Amanda, Matthew, Courtney, and Venus, along with the wonderful people from TACC, made this one of the absolute best trainings I have ever had the pleasure to attend.

My brain is still a little bit overloaded with ideas that will need to be tamed and organized over the coming days. I am already working with other participants from the Houston area to have a get together in January so that we can continue to inspire and help each other to move our Raspberry Pi plans forward. The people were pone of the best parts of Picademy. There are so many dedicated, brilliant, and inspiring educators out there that I am so excited to learn from. For the classroom, I am working on Pi lessons for my after school clubs having gotten so many great ideas about where to start. I am working on developing a unit to teach to my 5th graders during the 4th nine weeks. Lessons learned from that experience will help me to adapt the unit for 3rd, 4th, and 5th grades next year. Doubtless more ideas and plans will follow as I continue to reflect on Picademy and engage with the wider Raspberry Pi community.

If you are a teacher looking for the best STEM training around, go to the Picademy USA website and register your interest. They are hoping to hold 7 or 8 Picademy USA sessions in 2017.