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 Code.org 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 Code.org, but far more open-ended which allows for greater creative expression.

The first and second graders are likewise working in Code.org and using the Blockly language. Their work is also divided between computer-based lessons and unplugged activities. The courses designed by Code.org 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.