Scratch

Teaching Younger Kids Programming using Scratch

IMG_3452Learning to code is all the rage these days.  While I do not completely agree with teaching programming for programming sake, I strongly believe that computational thinking is a crucial skills for children growing up in the 21st century. Scratch from MIT is a platform designed to effectively teach kids, including college students, computational thinking via programming using Scratch. But how young can you start? After running after school Scratch classes for a few years with K-6 kids, this is what I found about getting younger, 6 -7 years old, to use Scratch:

Attention Span

Any parents of a 6 years old can tell you, getting a 6 years old to sit down and focus for more than 20 minutes is difficult. Doing scratch at home actually is easier as there are less distraction. But do not count on being able to create a large Scratch project on one sitting.

Reading Skill

IMG_3394

Scratch is very visual, and most basic blocks are color and shape coded. So one does not have to be able to read all the text on the blocks to use them. However it can get slightly frustrating if a child cannot find the blocks that she wants to use. One way to help is to prepare some basic blocks that the child may need, either by dragging them into the scratch area, or by printing them out on a piece of paper so that the child can just visually try to match the blocks.

Explain and re-enforce the color coding scheme: Block for movements, purple for looks (say blocks), etc will help.

Writing Skill

Similarly, if the child is going to have her characters say things (which is a good idea), she needs to be able to type, and spell. Some children gets frustrated, especially if they are aware that they “need” to spell the words correctly, when typing. Most often the parents get more frustrated as they see their children struggle to spell. My recommendation? Does not matter. What’s wrong with a character saying “trhjhirj ffweg3sffs” !!?

Mousing Skill

This can be a problem. Scratch is very much drag and drop. Depending on the amount and type of computer usage the child already has, using the mouse can be challenging. Drawing with the mouse is another skill that a child may not have developed. Here, Macs and one button mouse have an advantage. But a child will learn very quickly.

Drawing

For younger kids, sometimes just drawing sprites using the built in costume editor is fun enough. In a Scratch class, I usually get one younger kids that end up just using Scratch for drawing 90% of the time, and that’s fine.

Story Telling

The next step from drawing can be just adding say and wait blocks to their sprites. This way, one or two characters in a Scratch project can act out scenes, sometimes from their favorite book or TV (yikes) shows. At least this makes the child a digit content creator instead of a content consumer.

Scratch Cards

The Scratch team at MIT created a series of one page handouts called Scratch Cards. They are designed as mini activities that can be used in Scratch workshops. Because the activities are short, and usually the blocks are printed on the cards, they can be a great resource for quickly doing some project in Scratch. It always, always bug me that they do not just sell physical versions of these cards. Instead you need to download the PDF, print and laminate them. But they are very useful.

Remixing

A great way to learn Scratch, and it is built into the philosophy of Scratch, is to learn from each other by remixing each other’s project. Remixing is built into the Scratch platform. The only downside of learning by remixing is that often a child will get caught up looking for fun games to play on the Scratch website and forgets to remix. Especially for younger children some supervision is advised.

WeDo

IMG_1996

Lego sells a set of kits under the name WeDo that can be programmed using Scratch or their own software. I highly recommend this as another activity for learning to use Scratch. Unfortunately all the cool Lego stuff are only available from their education division. ( )But individuals can buy directly from them. The kits are expensive, but they are good. One small catch right now is that the new version of Scratch, because it is web based, does not yet work with WeDo. So you have to use the older version (1.4) if you want to use WeDo. See some examples in this video, pass the 2 minutes mark.

Learning to Learn

So there you have it. I have seen many young kids starting off struggling with Scratch at 5 or 6 years old, and turned into a very competent Scratchers in one or two years. The skills and fun they acquired make it all worth it. One of the most important skills a child can acquire is to learn to learn:

“The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn. ” - Alvin Toffler

Story Telling and Game Making with Scratch

This March I started a new Scratch class for K-6 at Einstein's Workshop (formally known as H3XL). Here are the class materials for the class so that parents can follow along at home if they wish.

Session 1 Introduce Yourself

Activity: The first session consists of two related activities. First, create a Scratch project to introduce yourself to the rest of the class. Second, create a Scratch project to tell a joke, possibly with two characters.

Learning Objective:

  1. Sharing projects onto the Scratch website (saving the project), need to know how to enter user name and password
  2. basic drawing skills, drawing a picture of yourself or something that represent yourself
  3. basic Scratch concepts: what is a block, what is a sprite, scripts, costumes
  4. import a sprite from the sprite library
  5. use the say and the wait blocks to coordinate telling a joke

Scratch Blocks

Example Program:

See my Hello project, and the knock knock joke project.

Session 2 Let's learn to fly!

Activity: Create a Scratch project to fly a plane (or other character) around the screen.

Learning Objective:

  1. A simple understanding of the Scratch stage coordinate system (x,y)
  2. Use the "click" trick to fill in (x,y) value in any movement block
  3. drawing background onto the stage

Scratch Blocks

Example Program

See the flying around project.

Session 3 Simple Racing

Activity: Create a Scratch project to "race" two characters on the stage.

Learning Objective:

  1. How to tell a sprite to do someone over and over again (using the repeat block).
  2. optional: collision detecting by checking to see if one sprite touches a specific color
  3. drawing background onto the stage (finishing line)
  4. Start to incorporate knowledge of blocks learned from previous sessions.

Scratch Blocks

Example Program: See the simple racing and the racing with finishing line projects.

Scratch @ MIT 2010 Day 2 and 3

This is a picture of the the Event Space, the main presentation space. Besides the obviously very high ceiling, the room is laid out diagonally. It works. A simple idea. Brilliantly executed. The building really is designed (by Fumihiko Maki) with function in mind. Loneliness is failed Solitude

I find the most value at the conference not at the workshops and how-to sessions, but the more general education related sessions. Day 2 KeyNote by Sherry Turkle, Henry Jenkins and Marina Bers was great. Turkle presented her latest thought on the importance of Solitude. This frankly scares me. She has pointed out with our new constantly connected, constantly fed (with information) environment, would teens (and adults) know now to be alone? Not knowing the value of solitude, when one creates, and engage in deep self development, teens will be increasingly dependent on shallow casual interactions. Their phones become the center of their lives. They move from "I have a feeling; id' like to make a call" to "I want to have a feeling; I need to make a call."

Turkle ends with an encouraging note -- Do not use the word "Addiction" when talking about this connected world. Addiction implies that we want to get rid of the cause. We will not and cannot get rid of the Internet.  While many people falls into the fallacy that we are stuck with the current state, the Internet is actually very young. We can learn to live with it.

Referencing Thoreau, she encourages us to not live thickly - "Just because we have the net we do not have to live thickly".

Side Note: A funny moment at the start of her presentation, when Turkle says "you know when I say phone, I don't mean phone". Of course, she meant the smart phone/device that is used for texting, running apps connecting to facebooks, and seldom for realtime phone conversation.

2.0 is a Business Model, not a Pedagogy

Jenkins pointed out that the participatory culture is not new. Facebook is not the first social network. While Jenkin's studies often reference the fan fiction culture, there are many more examples. A "good" participatory community is not a pure consuming community. The "hanging around" group consume content, but also communicate with each other. The "Messing about" group contributes with self-expression and self-actualization. The "Geeking out" group tinkers and create for the community. A participatory community allows experts and beginners share a common interest and help each other.

"Not every member must contribute, but all must believe they are free to contribute when ready, and that what they contribute will be appropriately valued."

BYOB for No Ceiling Computer Science Education

Brian Harvey gave a short presentation on Day 2, and a long one on Day 3 on BYOB, the CMU developed variation of Scratch that has list of lists and "procedures" which turn Scratch into almost visual Scheme. Given these new first order data object, one can program much more advance concepts using BYOB.

Technically BYOB is brilliant and I can't wait to use it. Politically they are working hard with the core Scratch team to find a way to incorporate BYOB into Scratch. Harvey is extremely sensitive to no wanting to split the Scratch community into the beginners and the advanced users. I hope they find a way to do this as BYOB clearly is a good thing.

Useful Software Finds

By talking with different people in different disciplines, often from different parts of the world, I found a few new software and web projects that are of interest:

  • Animationish -- flipbook type of desktop app
  • mind42 - a free online mind mapping tool
  • prezi -- a web based and desktop presentation software with a twist

Scratch @ MIT 2010 Day 1

I have been looking forward to this Scratch conference. Last one was two years ago and it was a great event. This year it is held at the almost brand new Media Lab building. I had been there for various local events before in the evenings, but this is the first time I get to spend the day there, and we get to check out the view from the terrace. What a beautiful 90 million dollars building. Adapting Workshops for Informal Library Settings There are always too many good sessions and not enough time. I decided to skip most of the demo and workshop type of sessions and went for the big ideas. With my current involvement with schools and libraries, the first session I went to was a session by Jennifer Nelson of the Hennepin County Library and Keith Braafladt of the Science Museum of Minnesota. They Talked about their experience in adapting Scratch workshops from the paid Museum classes settings to free workshops in the library settings.

Some highlights:

  • it is difficult to gain focus of the teenagers at the information settings, often they are distracted by having to baby sitting a younger sibling at the same time, for example
  • as a free workshop, best goal is to introduce enough concepts so that it will extend their interest, or give them enough knowledge so that they will try it themselves later
  • personalize the experience to spark the interest / gain their attention
  • music is big with teenagers, not video games -- start with project that use their own music
  • "all about me" project is a good example (didn't we do this at Kindergarten?) -- personalized story telling
  • this session also reinforce for me the importance of community library, especially at an urban settings like ours
  • BTW they have a book coming out, and this is their new public website containing useful resources

Computational Thinking

Why do I attend these conference? To learn outside of my usual circles. This is what I consider Computational Thinking to be the next New Big Idea. The educators and the computer scientists are still debating what exactly is Computational Thinking. Yasmin Kafai, Mitchel Resnick, Karen Brennan and Barbara Ericson described the many aspect of this new idea. You can also read the initial paper by Jeannette Wing to get some background. I am going to let you read all the current articles and decide exactly what is Computational Thinking. At a computer scientist and an amateur educator I think this new direction is going to be big. The Workshop Report is available, and you can download a free copy there.

LEAD Creative Classes in Hong Kong

It is always good to hear what's going on in Hong Kong, especially about education. Who knows, we may head back there some day! Dr. Felicia Tsang gave a wonderful review of their efforts in integrating Scratch and other creative classes into the core curriculum in Hong Kong's local primary and secondary schools. Some of her observations:

  • Don't make mistake of running workshop for the teachers, get them involved at the beginning
  • being so test driven, these classes stop after Form 3, because they are then focused (sadly) on the public exams
  • Parents thought negatively on why the teachers are doing "unusual" things with the kids instead of teaching them the old way (just like what the parents went thru in the old days)
  • While HK Government fully back the ideas and funding and equipment is not a problem, often schools ended up locking up computers because they don't know what to do with them
  • parents (and sometimes teachers) are intimidated because the children will ended up knowing more then what the adults know
  • the traditional Chinese localization is not good, the blocks are translated literally, and often do not make sense. They ended up using the English interface once they learnt the system
  • Scratch is introduced through non technology classes, starts with art and English classes.
  • Starts with all girl schools, then challenge the boy schools with the impressive results

Dr Tsang showed off an amazing robot that some student built, taking a year, from parts sourced from street vendors from the electronics district. (The old Aplui street? I spent many weekends there during my school days).

3 year old is programming Scratch sprite

It happened. Once they discovered the drawing tool for sprite, they are all over drawing. "The Art Thing" the three year old calls it. She doodle some lines, and then want to make it move. I showed her once or twice that she needs the "flag" orange block and the "loop block" first, then stuff it with some motion blocks. The only thing that she has to remember to add is the "bounce if edge" block. After only a few tries she can assemble a basic "repeat forever, move, turn, move" type of scripts herself for all her sprites. One interesting thing is that she wants to keep adding sprites, so now her program has some fifteen sprites on it, all dancing around the stage. I asked her to draw more complicated sprites and use less of them, but she won't have it. She like to keep creating new ones, and the messy screen is appealing to her. For some reason, the four year old is less interested in the whole thing.

I have a video of her "programming" that I'll have to upload soon.

Scratch Conference at MIT

Scratch is a programing language and environment designed by the MediaLab for used by young children. It is best described as a tool for making programmable media. It is used not just for programming as you know it, but for making games, telling stories, making dynamic artwork.

Education and Computer is an interest of mine. I have been watching Scratch grow for the last two years. This is their very first conference. How was it and what did I learn from the conference? It was attended by educators and researchers from all over the world. There were interests in, obviously, using Scratch to teach math and science concepts. But Scratch is also uniquely suitable for generating other programmable media -- arts, story telling, and music. One of the main theme is to use it to enhance learning in all subjects. Lots of teachers are looking for help, ideas, lesson plans, and examples for using Scratch in the classroom.

CompuGirls

There are several notable use of Scratch in high need, under served communities to get kids, especially girls, interested in learning. The Compugirls program for example, using the idea that these programs need not only to be gender relevant, but cultural relevant. The CompuGirls program ask the girls to create project that has a social justice theme relevant to their own communities. The presentation was given by two of the CompuGirls and they were most impressive. The presented a project that explains, and call for action, on the effect of gentrification on the school system.

Harvard University

On the other end of the age group, Harvard uses Scratch on their first week of undergrad Computer Science CS50 class. Using something accessible like Scratch helps them retain more students during their shopping / audition period. They also confirmed that Scratch is too simple and limited to be used in more than the first week of their class, for computer science students. While there are negative feedback from students who are already knowledgeable in programming, some of them also pointed out that while it is not useful for them personally, it was useful for "the others". It also offers an opportunity for them to "show off".

Deep Thinking at Grade Level Another use of Scratch was presented by an elementary school at the Portola Valley School District. This is an affluent school and they use Scratch to let high achievers explore deeper within their own grade level, instead of the traditionally "pushing them into higher grade" approach. This approach let the student develop "deep thinking at their grade level".

Teach Tips from Research

Colleen Lewis from UC Berkeley presented some perhaps not obvious problem when introducing Scratch programming to 7th and 8th graders. Some of the "obvious" concepts to us may not be obvious to a child. For example, the concept of turning -- i.e. changing direction in place, is not obvious. In the real work, turning usually includes forward movement. Turning left in a car goes forward and left.

Even the simple idea of sequencing, each Scratch block is executed in sequence, is also not obvious. Since it is hard to demonstrate and learn that concept using sprite movement, she suggested one should use sound output first to demostrate sequencing.

Another big area of problem is how to teach the children to plan before doing, and to debug their program when there are problems. Many other teachers contributed their solutions to this very common problem. Funny because this problem exists in the "real world" as well for professional programmers. One of the key take away for me is the importance of "storyboarding" as a planning tool/step.

The Scratch Website and Social Networking This was one of the surprises for me at the conference. Most Scratch users will be already familiar with the website. But I wasn't. When Mitch Resnick and Andres Monroy Hernandez (the person responsible for the website) presented what has been happening on the Scratch website since it's launch, I see an immediate parallel with the main stream social networking sites.

The Scratch site originally was created for sharing projects. Then it evolves, on its own, creating many different uses that one easily recognizes from Diggs, Facebook, Etsy, and the like:

- collaboration of efforts, forming companies, groups of users contributing to a project using their own area of expertise, "consulting". - developing highly personal content -- creating greeting cards for friends - story telling with episodic story series - expert meta content created to help others - tutorials on how to use the site, tutorials on programming - media meta content -- news channel showing news about the site - engage users -- create survey and experiment and invite user participation

These are wonderful ideas that we see in different social networks today.

During a session specifically on the website, many people asked Andres why he seems to be pushing the feature set in his own direction and not borrow many things from the common social networking sites, and sites like Amazon which has a strong social component to it. Initially I thought the same. After listening to the discussions I concluded that the Scratch team is right. The purpose of the Scratch website is not to create a general social network, although the user base benefits from some level of networking. The main purposes of the Scratch site(s) is for sharing project, teaching and helping each other to use Scratch. For those purposes, they are developing better ways to search and group projects, and to develop more ways to decentralize content control.

Computer Club House

The Scratch project were initially developed and tested for the Computer Club House projects, an after school club house to engage children in use of technology. These club houses provide students access to many different computing media, not just Scratch. The club houses are staffed sometimes by short term volunteers, and sometimes by longer term volunteers. The sessions on the Computer Club House was not as much about Scratch as the dynamics of the club house environment. The club house wants to move from "community Technology center", where typical instructions are on basic computer skills like typing and word processing, to facilitating creative design.

As expected, it was not easy to motivate the children to start getting involve with the computing activities. To get the kids away from gaming, they developed an informal system of "club bucks". For working on design projects, the kids will earn "club bucks" that they can use to buy gaming time.

Geetha Narayanan and John Meada

The closing keynotes of the event was a two part keynotes, first by Geetha Narayana and then by John Maeda, on "Learning to Design", "Designing to Learn" . Geetha is of course as inspiration as ever, talking about her projects at the Srishti School of Art, Design and Technology in India. She gave a beautiful and inspirational presentation, looking at the problems with the under served children in India and how to help them. The title, "Creating new Leonardos and Developing Urban Arcadias" sums it up very well. One of her keyword is "Slowness" -- a simple word that has deep meaning in this context.

John Maeda recently left MIT Media Lab to become the president of RISD. His presentation is funny and punchy as always. He threw hundreds of ideas and questions at us with very little answers, provoking much thinking.

Scratch with Young Children

This is a first of a long series of post, documenting my "experiment" of introducing and using Scratch with two young kids, G, a four year old boy and M a three year old girl. First introduction

Taking in all I have learnt from other educators, I first introduce the Scratch environment simply by showing them the program. Since (unfortunately) both are familiar with games, they immediate ask whether it is a game and what game can they play. I redirected that by telling them that these building blocks like Legos that they can use to build things. I prep the workspace with several sound blocks, and the start block. I have to explain that since there is a green flag on the start block, it means if you build the blocks under the green flag, then press the green flag, you can see what you have made.

The Lego analogy works and the four year old very soon refer to his creation as a "tower". That held his interest for a little while but he keeps asking for what games can I do. We switched to the sprite drawing tool, since he loves to draw. He drew a car. So I decided to intervene and put in a little script to make the car move across the screen. Then I ask him to draw more cars and we ended up with a simple "racing game". Pressing the green flag and the cars glide across the screen with a randomized time, "racing".

That little game held his interest for about 10 minutes. Then he is distracted and went to do something else. I then added a sound sensing feature so that when you shout "go" (or anything) the race starts. Both kids got interested and played with it for a few more minutes then left.

Lessons learn: Lego analogy works fine. Still searching for a way to get them interested.