Howardism Musings from my Awakening Dementia
My collected thoughts flamed by hubris
Home PageSend Comment

If our goal is to help people develop as creative thinkers, we then ask ourselves "Well, where can we draw inspiration from? What are good models of how to help people develop as creative thinkers?" As we looked around, we found lots of inspiration from the ways children learn in Kindergarten, especially with traditional Kindergarten… Kindergarten has been a time where kids are constantly engaged in creating things in collaboration with one another in a playful way… kids in Kindergartens are constantly coming up with ideas, creating things playfully with one another. We've seen that that approach is a good way for learning some important concepts… but it's also a very good method to help kids develop as creative thinkers.

–Mitch Resnick, creator of Scratch

1. Introduction

Scratch is an exciting environment where students and children can manipulate their own artwork and media through programming. However, I never need to mention the word "programming" to the students, as they just think it is just part of the game. For parents and educators, Scratch is exciting in that it reinforces the math, problem-solving and other skills taught in the classroom.

To see just how dynamic and exciting this new computer system is, we just need to remind ourselves of where we've been.

History of Changes to Children's Education

In the 1800s, Friedrich Froebel developed a radically new educational method he called Kindergarten . It was an activity-based method of learning that engaged young minds so that they learned by doing. While the concept of kindergarten hardly seems threatening today, it was when compared to the educational system of its time.

Think back to your own childhood and education, and I bet your memories will be a mixture of nostalgia for subjects that interested you, and life-threatening boredom for everything else. Why do some subjects interest a student at the expense of other subjects? Clearly, a major feature is how engaged the student is in the subject.

Once upon a time, children taught themselves through play and exploration and by watching and mimicking adults. Quite the contrast to the stereotyped formal schooling which consisted mainly of memorizing lists– lists of Latin names, lists of the parts of speech, lists of times when to memorize lists.

Some of the more successful approaches to teaching that engages children have the following aspects:

  1. Children can be creative.
  2. Children have fun during the process.
  3. Children teach themselves.

What if we could supplement our current curriculum to reinforce what children are learning (especially their problem-solving skills), plus all three of these goals at the same time?

Welcome to the goal of Scratch and this book– a way to put the joy back into learning.

Benefits of Programming for Children

I learned to program computers as a young kid and am now a software engineer, so my motives and perspective may be suspect when I say that computer programming has many educational benefits for children. Of course, once you are teaching a room full of children whispering "cool, look what I just did", you will realize that the students aren't concerned about the these benefits.

Let me mention 4 benefits that programming computers can enhance what children are learning from our standard curriculum.

Application of Learning

One problem with much of our current method of teaching children lies in the lack of application. "Where will I ever need to know this?" is repeated often by many students that it could be a refrain. Computer programming allows a child to apply abstract ideas to concrete concepts.

For instance, students often struggle to understand the Cartesian coordinate system, as they can not see how this math concept is useful. However, when they want to move a "picture" across the computer screen to "talk" to another picture, they specify this with coordinates. Since the student has the desire to apply the concept, they are more likely to understand it.

I see the lights in their eyes when they realize that something they learned in math class suddenly makes sense when they are sitting in my class.

Teaching Others

It is almost a truism that "to fully understand how to do something is to teach someone else". Programming a computer requires explaining in minute detail the individual steps a computer must do in order to accomplish a goal.

Problem Solving

Tests and homework typically involve some adult attempting to come up with a "good problem" for a child to contemplate and solve. Why not let the child come up with his or her own problems to solve? Once a child is exposed to the possibilities of what they can do on the computer, they immediately start to imagine new projects. However, sitting down and thinking through the parts of the project and how these components should interact, is a developed skill.

I had a third grade boy who saw a picture of a building with a stairway in front, complete with a metal railing. He imagined a skateboarder doing tricks and found a picture of a boy who looked the part. He couldn't find a skateboard, so he drew one.

He then asked me how to make the boy and the skateboard move down the railing. I helped him out a bit, but afterwards, he asked how to make the boy fall off the railing. I just smiled and winked and told him that I had confidence that he could figure it by himself. It took him a few minutes, but he eventually had a small action movie and felt proud of himself for not only imagining the project, but figuring it out as well.

Increase Creativity

There was a time in our society when creative thinking was not encouraged or valued. But times have changed, as Nobel prize winning physician Albert Szent-Györgyi said:

"Discovery consists of looking at the same thing as everyone else and thinking something different."

While we now value creativity, we aren't always sure how to teach it or even how to encourage it. Art and music foster creativity, but in today's media-rich culture (coupled with personal frustration of the "I can't draw" variety), children don't always make the attempt.

In this book I will attempt to show how using today's computers with a program such as Scratch can be easy and exciting for children to generate something unique.

Brief Background of Computing for Children

My first job in high school was teaching programming to younger children over the summer at a computer camp. We taught Logo and BASIC – the two programming languages at the time for children. Both groups struggled with typing and syntax. In Logo, a child could type "right 90", in which case, they often misspelled it and couldn't understand why their turtle would not turn to the "rite". They could use the abbreviation and type "rt 90", but in trying to diagnose the problem, they would be confronted by lines of cryptic letters that didn't mean anything.

As computers increased in abilities– especially in the area of graphics and user interfaces– a number of engineers and educators decided to try a building block approach to computer programming. Here a person would see the available commands, components and variables, and connect them together without having to type.

Illustration of showing an example program in Scratch Three popular applications that follow this approach are Squeak (eToys), Alice and Scratch. As you can tell by the illustration on the right, a typical program in Scratch is very readable, even to a child in 2nd or 3rd grade.

History of Scratch

Scratch came from the creative mind of Mitchel Resnick and his group at the Lifelong Kindergarten group at the MIT Media Lab. He came up with the concept of a programmable brick that formed the basis for LEGO Mindstorms. He took his "bricks" and added some drawing capabilities to create Scratch.

The name, Scratch, came from hip hop culture where a disc jockeys would scratch a record on a turntable to add to the music that was already playing. Hip hop musicians often take snippets of music from past artists and add rhythmic beats and other "loops" to compose original music. Resnick imagined a programming environment where photographs, drawings, music, sounds and interactive objects were easily imported and combined to create something original.

Scratch is built on top of another programming language and environment called Squeak (a variant of Smalltalk), which has its own colorful history. A major advantage to using Squeak was that it was easily portable to other platforms and gave a level of stability.

Scratch began in earnest in January 2003 by Resnick's students at MIT. After some preliminary releases, the first official version (1.1), was released in May 2007. This release came with its own project sharing website, scratch.mit.edu.

About This Book

This book has two goals: First, it is a tutorial for educators, older students and parents who are not familiar with software programming to understand Scratch and learn software programming concepts in order to teach this material.

The second goal is to present a course outline, overhead presentations, and example projects that can be used in a classroom setting.

Roadmap

Part 1 gives an overview of Scratch and its environment. It covers all of the getting started basics like downloading Scratch and using the online help system.

Part 2 discusses the media, both importing artwork made by others and how to create your own. It also contains a chapter on animation and how to demonstrate the concepts to children.

Part 3 covers beginning programming. During these chapters, we will build a number of fun projects that will help illustrate particular programming concepts.

Part 4 covers more advanced programming concepts. In these chapters, we will build a couple of games. This information in this part of the book may be left out when teaching elementary school children.

Each chapter includes a step-by-step tutorial for building a project. As I introduce a programming brick, a reference note is placed in the margin.

Audience

This book is written for people with little or no experience programming computers. This book is for beginners. This book, like Scratch itself, is very visual and full of examples, for that is how most of us learn. Educators already familiar with software programming may find this book useful for the course structure and supplementary material.

There are points in this book where technical terms from software engineering are used, but I will fully explain their meaning as well as provide links for additional information and background material. Most terms and concepts will be explained as part of the book's material.

This book is for the faint of heart, but jump in. I must warn you that you may find yourself having as much fun as your students.

What's in This Book

This book is chock full of goodies, but specifically, you will find:

  • Tutorials. Lot of step-by-step examples with explanations building from simpler ideas. Many chapters assume you understand previous chapters and build upon the ideas and projects.

  • Call-out Bricks. In the margins on the side of the page, you will find the bricks available in Scratch with a brief explanation. While you can use this book as a reference, I would suggest the more compact Reference Sheet available from the Scratch Website.

  • Code samples. The only way to learn Scratch is to do Scratch, so each chapter contains example code to duplicate in your project. In the first chapter, I mention where each brick is found and how to connect it to others. In the following chapters, I assume you will be able to find and connect the bricks without this help.

  • Software Engineering Concepts. Many chapters have an advanced section that will discuss advanced ideas and software engineering. While these sections are optional, it may be helpful when trying to build larger and more complex projects or to see how Scratch can serve as a foundation for moving on into software engineering. These sections are identified with a little Engineer Icon off to the side.

What's On the Website

I made a website to accompany this book. It contains the projects described in the book as well as the artwork that you can download and use. The website is at ScratchItBook.com

  • Projects. Each project described in the book is available in its completed form. Often the projects may have been embellished a wee bit. It is just too tempting to add things to a Scratch project.

  • Sample Artwork. None of the projects in the book require particular images, however, the artwork used for the projects in the book is available for use in your own projects.

  • Presentations. If you are teaching programming concepts using Scratch, I have created a series of presentations that can be shown in your class. The presentations are built using OpenOffice, a free application that runs on most platforms.

The contents of the website are copyrighted, but I allow you to use them in your own free projects and classes if you purchase this book. How's that for being reasonable?

What's Not in This Book

A single book can't include everything related to Scratch. The following are things you won't find in this book:

  • How to Make "Good" Artwork. While in Part 2, I cover how to make artwork, don't expect that your artwork will necessarily be good. There are many books available to help you make your artwork better.

  • Complete Scratch Reference. This book doesn't contain a good Scratch reference section for the individual bricks and interactive environment. However, the index can be used to look up the section on particular programming bricks. Also, the Scratch application has an excellent context-sensitive help system. A printable Scratch Reference manual is available online.

How to Read/Use This Book

I would suggest you go through the book's tutorials cover to cover before you attempt to teach. I have never had a class session where a student didn't ask about a feature I would be covering in a future class.

My classes typically involve presenting one or two subjects (usually with a projected presentation) and then turning the students loose with an idea of a project to work on. At the end of a class session, I would give the students an idea for a new project to either complete or at least think about before the next class session.

Scratch is flexible enough that once you understand how to use it, you will find it easy to adapt it to your own needs.

Contact the Author

While I'm not available for children's parties, I would love to hear your comments and experiences with Scratch and with this book. You can contact me at: scratchit@gmail.com

Continue to the next chapter that describes the uses of Scratch, or return to the Table of Contents.
Tell others about this article:
Click here to submit this page to Stumble It