Sunday, September 23, 2018

A Foundation of Code

The new school year is well underway and work in the lab is humming along. It has become my habit to start the Kindergarten, first, and second graders with a computer programming unit to kick off the year. It serves as a good introduction and refresher on algorithmic thinking and problem solving skills which are an important part of everything we do in the lab.

For the Kindergartners, this unit is their first experience with computer programming. I start this group of with a number of unplugged lessons designed to provide concrete examples of algorithms and hands on practice with algorithmic thinking. We then move on to turning algorithms into programs in order to give directions to the computer. Students work with the platform using a programming language called Blockly. This is a block-based language that hides the computer code behind colorful blocks. Students use the mouse to drag these blocks into vertical stacks to create programs that solve different puzzles. The Kindergarten students are in a course designed for pre-readers, so they can create computer programs even though they are just beginning to read. This course also touches on staying safe online and on good digital citizenship. Later in the year, these students will be introduced to Scratch Jr., a programming environment similar to, but far more open-ended which allows for greater creative expression.

The first and second graders are likewise working in and using the Blockly language. Their work is also divided between computer-based lessons and unplugged activities. The courses designed by are leveled for each grade. They are appropriate for complete beginners but also for students who worked in the preceding course the year before. A difference between the blocks that Kindergarten and first grade use, and those used by the second graders is the amount of text. The Kindergarten/first grade block use arrows labeled with the cardinal directions. These initiate a turn as well as a movement in a particular direction. The blocks used in the second grade course separate the turns and the motions, which encourages them to create more finely detailed programs. These students were introduced to Scratch Jr. last year, and will use it later this year to share their learning about different topics. That is my main goal for the computer programming skills students work in the lab, that they learn to use coding to demonstrate their understandings and express their ideas.

Tuesday, August 7, 2018

STEM Lab Year 4 Approaches

August is upon us, and my teacher summer is almost over. I hope everyone had a great summer, and I am looking forward to seeing our wonderful Sinclair families at Meet the Teacher on the 24th. As the title of the post indicates, this will the be 4th year of the Sinclair STEM Lab. Time definitely flies when you're having fun!
Pi Camp Minecraft Selfies

Making friends at Smither Park Houston 
My summer was fairly low key compared to some other years. I spent a week leading a Raspberry Pi camp for middle school girls. That was a great experience. The girls learned several physical computing skills with both Scratch and Python. They built and programmed motion sensing cameras learned to render selfies in Minecraft blocks. At the end of the week the girls got to take everything home along with some resource books so they could continue learning.

Big Bambu at MFAH
I spent some time working on some personal making skills projects with an eye to adapting them to the lab. Some were successful, others I'm still working on. I also took time to see some of the great places in Houston, and beyond. I returned to Smither Park which is coming along nicely and visited the Museum of Fine Arts to see the Big Bambu and the Digital Worlds exhibits. I spent some time in Austin where I checked out the Blanton Museum and went to Corpus Christi to watch a hatchling sea turtle release at Padre Island National Seashore.

Posing with Lego Scratch Cat
At the end of July, my wife (also a STEM Lab teacher in HISD) and I traveled to Boston to lead a workshop at the Massachusetts Institute of Technology about how our students use the Scratch programming language to create interdisciplinary projects. Our workshop began with an overview of how we go about planning projects for our labs (all the teacher stuff). The second part was a gallery of projects created by the students at Sinclair and Piney Point. Many of these were interactive displays, and yes, we did cart 18 or so student work samples from Houston to Boston. We had about 50 people attend our workshop, which I confess is at least double the number I was expecting given how many amazing sessions were running concurrently with ours. I do not think it is overstating things to say that everyone was deeply impressed by the work of our students. So bravo Sinclair Superstars (and Piney Point Panthers)! Your work was on show at MIT and amazed the audience!
So many people 

Friday at 11, we're up
This was part of the Scratch@MIT Conference. Scratch was developed at the MIT Media Lab 11 years ago, so this was very much a pilgrimage to the home of one of the most central tools for the work we do in our labs. It was also a chance to connect with and learn from teachers, educators, and developers from around the world who use Scratch. It was a truly amazing experience, and we left with our brains completely overloaded with new ideas. 

Storm King Art Center is amazing!
On our way back to Texas we stopped here and there to visit family and friends in New York, Pennsylvania, and Ohio. These included stops at Storm King Art Center, the Finger Lakes, the Cleveland Museum of Art, and Beech Creek Gardens.

So now I am home and feverishly planning for the upcoming year. Students at all grade levels will make and do amazing things. I am so excited to get back into the lab and see all of wonders the students create. There will be computer programming for all! There will be robots! There will be so much cardboard!

Saturday, May 12, 2018

Games 5th Graders Play

Last week was Teacher Appreciation Week. Along with with the delicious food, thoughtful cards, and other gifts, I received a number of notes from 5th graders thanking me for their time in the lab and in various after school activities. One expressed gratitude for teaching "programming and how make cool things", but also stated it was time "to move on to bigger and better things". Yes it is, and I fully expect to see great things from this group of 5th graders.

Before moving on though, the 5th graders got one last chance to the test case for a unit. (I usually experiment with new ideas and units using the 5th graders because they will be gone the next year, and they can mostly be counted on to give good feedback.) So for their final rotation in the lab 5th grade has been engaged in video game design with Scratch.

We started by making some familiar games and adding new elements like timers, bonuses, lives, and power ups. They experimented with different ways of controlling sprites to find the best one for their designs. Game elements that they take for granted like scores and backgrounds resetting when a new game is started had to be coordinated. Several wanted to make 2 player games which provided a host of challenges to overcome.

The second part of the unit required them to make a game that teaches or provides practice for a skill. I deliberately left this requirement open so that students could follow their interests. For the most part it worked out, but I did get an unnatural number of math fact practice games, probably because it is something they have done before. Still, many branched out making American history quizzes, a piano playing memory game, German language trainers, and one curiosity that purports to teach good tooth brushing habits. A few projects are embedded into the post, but the studio can be found here. There is one more group of 5th graders who have not completed the unit, so there will be more games in the next couple of weeks.

Come Fly With Us

The fourth grade project for this final rotation is out of this world! Students were challenged to create an advertisement for a vacation to one of the natural objects in our solar system. To ensure that I did not end up with nothing but projects about Uranus (ha ha), I created a topic randomizer in Scratch with 3 lists, the planets that are not Earth, moons that are not the Moon, and dwarf planets. When students pressed the switch, they were presented with 3 objects to choose from. 

First came the research. Students gathered basic data about their object like size, distance from the Sun, composition, and temperatures. While researching the basic information, they were also on the lookout for interesting facts and sights one might see there. They had to think about how they could use all of that information to to persuade their audience to choose their object for a vacation. I did not assign any particular product, so long as it was persuasive. I did give them some ideas and reminded them of projects they have done in the past. 

The most challenging part seemed to be need to be persuasive. As the groups and individuals worked, many needed to be reminded that they were not making a presentation to teach about their object. While some groups took to the idea of selling a trip into space easily, the majority needed some coaching in order to turn their raw information in to arguments in favor of making a trip. Another struggle for some students was making sure that their product was interesting to look at and that it could hold the viewer's attention. 

The freedom of choice I allowed in terms of work product yielded, for the most part, excellent results. There were dioramas showing the view from the surface, interactive posters leading virtual tours, a few wonderful skits, some excellent Scratch animations, and one that used a Lego tilt sensor and Scratch. 

This project is adapted from one I did with my class when I was teaching 3rd grade. Sadly, in the lab I do not have time to do the other part of that project with each class, learn to sing "Space Oddity" by David Bowie.

Teaching Environmental Protection

Third grade's final project of the year centers on the environment, specifically what students can do to help keep it clean. They then had to develop a way to teach what they had learned to others, specifically regarding how, say a first grader, could contribute to solving the problem. I allowed them to have a bit of choice in their product selection. These choices included an interactive poster, a game (digital or physical), or a skit/song.

We started with a discussion of what exactly is meant by pollution and what problems it causes. This was also to outline the difference between solutions and practises available to all people (even students), and those that are for adults and businesses. In one class, the suggestion was made to buy electric cars, which I had to point out was probably beyond the ability of most elementary school students.

Some students worked on their own, but most worked with a partner. They took notes in a T-chart with "problem" on one side and "solution" on the other. As they conducted their research, I number of excellent questions came up. These included, how air pollution becomes water pollution, how plastic gets recycled, and which of the three R's is the best one to do. All of these questions gave the students the chance to dig deeper into the information to find the reasons why they should carry an reusable water bottle or pass on the straw at a restaurant.

The students created, as usual, a number of awesome projects. When the end of the unit came along, each group got to share their work with a visiting first grade class and receive feedback from other students. They reflected in their journals and in a Google form about their work and how it could be improved for future iterations.

Tuesday, May 8, 2018

Stepping up to Scratch

This rotation sees the second graders transition from programming in Scratch Jr. to programming in Scratch. This is a pretty big step. Scratch introduces students to concepts like coordinate pairs, negative numbers, and variables well before they are covered in math class. This is the second year that I have finished with second grade learning Scratch, and I have not been disappointed in how well they have handled the change. In addition to the upper grade math and the need for increased vocabulary (Scratch blocks have text on them, not images, to indicate their function), there is the sheer number of blocks the students now have at their disposal. Their natural curiosity leads them to try everything. This is fine, but it can quickly lead to frustration when they discover that they do not know how to undo the effects they have created with their experimentation. Still, by and large, the students have accepted the challenge with a wonderful enthusiasm. I am excited to see what they will be ready to make next year when they will have their own accounts and are able to participate in the Scratch community.

And on something of a personal note, my wife and I will be presenting a workshop at the Scratch Conference being put on by MIT this summer. Scratch was developed by the Lifelong Kindergarten Group at Massachusetts Institute of Technology Media Lab and this conference brings together educators, developers, and researchers to discuss and collaborate. Work by a number of our Sinclair Superstars will be the focus of our workshop.

Sunday, April 8, 2018

The Youngest Programmers

The first post of a grading cycle usually ends up being about one of the upper grades. I'm not sure why, but it is what I have noticed after a short browse through my older posts. So for the final grading cycle of this most peculiar year, I will start with the early grades and work my way up to the 5th graders who will soon leave us for the exotic lands of middle school.

I wanted to finish up the year by introducing the kindergartners to Scratch Jr. and to start training the 1st graders to plan their digital projects before diving into the programming. Scratch Jr. a programming environment like Scratch, which the older students use, but it is suitable for pre-readers and beginning readers. It is an excellent introduction to creative coding for young learners and sets them up to begin working in the full version of Scratch (which is what the 2nd grade is doing this cycle.)

Before I do anything with kindergarten, I give them a day to explore Scratch Jr. I give them a brief introduction to the blocks (which they are familiar with from and the drawing tools and then set them free. It is awesome to see the excitement as they make discoveries and share them with each other. The unit activities start with a BrainPop Jr. movie about a particular topic. I start with parts of a plant because that is one of the topics they are working on in their classrooms this time of year. After watching the movie we make a digital anchor chart to review and to reference later. Then I guide the students through the making of a 4 flap foldable version of the anchor chart so they each have the experience of making their own plant model. The next day we start by reviewing the anchor chart and how to draw characters before I show them how to use the "when character touched" event block to make the characters do things. In the case of plant parts, I have them draw each plant part as a character and then program each one to say what it is when it is touched.

The rest of the lessons follow a similar pattern. The second topic is the seasons which I use to give them practice using the "switch background" block. They use the "when touched" block again, but add the "switch background" command so that the scene changed to the next season after the character names the current one. From there I change the topic for each class for the sake of variety and to see how the students represent different concepts digitally. I have used (or will in the coming weeks) states of matter, habitats, and weather. The students transfer their learning from to Scratch Jr. so quickly and are so excited to discover all they are able to do.

Most of the first graders have not done much with Scratch Jr. this year, so I start this unit with a pretty open ended assignment, though not a free explore like kindergarten. We watch the BrainPop Jr. movie about ancient Egypt and talk about some of the things they learned. I then give student pairs an Ipad with the instructions to make a Scratch Jr. project about ancient Egypt. The only requirement, aside from the topic, is that the characters have to say what is going on in their scene. Obviously there are a lot of pyramids, but it is interesting to see them draw hieroglyphics, people fishing in the Nile, and mummies. I leave a few minutes at the end of the class for them to share with the other groups which they always enjoy. The next day, I show how I would plan a Scratch Jr. project on paper. I draw a background and characters, then I add what the characters will say about the topic. We watch another BrainPop Jr. movie (insects, fish, rain forests, or something) and then the students go to the tables to plan a project about the topic. They have to detail the backgrounds and characters as well as what will be said by each. As they work I move around and talk to them about their plans and what code they will need. Once the plans are complete, the students begin working in Scratch Jr. to bring their plans to life. Again, sharing and collaboration is key to success. We move from there to a compare and contrast project based on animals or habitats usually which requires them to plan 2 backgrounds worth of characters and information. The final project deals with even more steps and a topic like life cycles of plants or animals. A project that complex requires them to use all of the programming skills they have developed and so far they have done some amazing work.