Integrating Computational Thinking Using Scratch
March 15, 2012
Welcome to my workshop! In a few short minutes I hope to introduce you to the ideas represented in the concepts of Computational Thinking, recommendations for teaching them to our students and my journey that led to my discovery of these wonderful ideas. We'll then take a quick look at Scratch and how it supports creativity and computational thinking. In closing, I'll show you some of my favorite work that my second and third grade students have been able to accomplish and share with you some of the resources I use with them!
Our hour is going to go fast! Hang on!
What is CT?
Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlie the computer applications you use such as search, email, and maps. However, computational thinking is applicable to nearly any subject. Students who learn computational thinking across the curriculum begin to see a relationship between different subjects as well as between school and life outside of the classroom.
Specific computational thinking techniques include: problem decomposition, pattern recognition, pattern generalization to define abstractions or models, algorithm design, and data analysis and visualization.
These three sites contain all you really need to explore Computational Thinking in great depth:
This site presents computational thinking in an easy to understand and use format with LOTS of resources that are classroom tested and ready.
Geared more toward classroom teachers that might have only limited access to the computer, this site offers a multitude of activities and lesson plans for teaching computational thinking in ALL disciplines.
This is where it all started, however, the web site is not nearly as rich as the previous two. Keep an eye on this site, however, as Carnegie Mellong still leads.
ACM's recommended curriculum is a very large document. I've extracted just three pages from it that highlight their recommendations for K-12. This is a handy reference to use in your lab as you think about activities and units you might teach at each grade level. It utilizes NETS well, but clarifies the Computer Science components a bit better for me!
The following web sites offer so many absolutely incredible resources, they had to be listed separately:
CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.
Computer Science-in-a-Box: Unplug Your Curriculum introduces fundamental building blocks of computer science -- without using computers.
Scratch: A Powerful Programming Language for All Ages
It isn't about learning a computer programming language, but learning computer science principles and concepts.
Many years ago, when introducing a complex topic to my students I always tried to find picture books to help them learn the vocabulary and get their feet wet before introducing ever more complex books and resources. Scratch is all of these in one. It allows us to to introduce some very powerful concepts in a "picture book like way," but we can go a LONG way before hitting the edge. We can surely teach all the computer science concepts with Scratch.
I think Scratch may be one of the greatest tools ever provided to Computer Lab Instructors. It is a gift of immeasurable wealth! The following web sites will get you started:
Scratch Web Sites
|scratch.mit.edu||This is the main Scratch web site where you can download the program and find thousands of examples posted by kids ages 8 - 80.|
|scratched.media.mit.edu||ScratchED is THE site for educators using Scratch. Find discussions, resources, examples and help at this site.|
|Scratch Curriculum Guide Draft||A design-based introduction to computational thinking with Scratch written by the Scratch team at MIT.|
|WeDo Project Ideas||Ideas put together by Karen Brennan of the Scratch Team.|
|The Scratch Wiki||When you need to solve a problem or learn from more experienced Scratchers, this is the place! Complete reference for EVERYTHING!|
|Scratch Cards||Print these, laminate and leave out for quick tutorials for your students to use in the "just in time" learning moments!|
|Scratch Reference Guide||Great for the teacher and students to get a quick overview of how the Scratch environment works.|
|Scratch Video Tutorials||These can easily accompany the Scratch cards and allow some of your quicker learners the opportunity to take off! GREAT resource.|
|Programming Concepts Supported in Scratch||A nice two page handout.|
I have completed two successful projects with my students at St. Thomas.
After teaching Second Grade students the basics of Scratch and how to create and animate a sprite, I have them create their own Maze style games. They all have GREAT ideas and lofty goals and everyone feels successful when we finally have to stop taking Tech Lab time to work on the projects.
The Script Examples proved to be extremely helpful as we began to work on the games in earnest. In helping students understand the concept of an algorithm, I emphasized that once we had learned how to accomplish a task, or created the algorithm, there was little sense in re-creating it everytime. Just go back to the algorithm and modify it as needed. I would keep these projected on the front of the room at all times for them to refer to as needed.
Select from any of the five Scratch programs below to download and view some of my student's work from the 2011-12 school year.
Little Kitty (not quite finished but a fun start!)
Racing Cars (a two player racing game)
Our Third Grade students learn about the six biomes and I came up with this project as a way to counter the PowerPoint for everything syndrome! After selecting and researching a biome (using a research organizer I give them), the students recreate that biome in Scratch. They have to create Sprites from pictures they find on the Internet and then have the plants and animals tell about themselves (using the Say and Think blocks) and animate on the screen when it is appropriate!
Click below to view four animated biomes completed by students in the 2011-12 school year. These are representative of the work done by students, but these four showed particularly good attention to detail. You will need to have Scratch installed on your computer to open these files!
Tundra (done by a girl)
Tundra (done by a guy)
Tundra (with recorded sound)
I'm not sure why the Tundra was so popular with students this year!
In addition to the student examples here are others I shared in the workshop.
Music and Instruments (click on the button to hear the song played by different instruments)
Race Car Game (this is my version)
WeDo Helicopter Rescue using my own WeDo joystick
Lastly, just to make sure everyone understands that Scratch is a real programming language, not a game, I'm including an example of a visual sorting program I wrote one morning. I had just been reviewing the off line computer activities found in the CS Unplugged site and began thinking about sorting algorithms. In one of the introductory Computer Science courses I took while completing my Master's at the U of Oregon I had to write a program that visually demonstrates a sorting algorithm. It took me about 15 hours to complete that program because the graphic part was so difficult to program. I did this one in about 45 minutes one morning before school started. Same program, better learning environment! This program generates a list of 15 random numbers, then sorts them and draws color bars to show the sorting visually at each pass. Kids liked seeing it!
Some other ways I teach Computational Thinking
Technology Lab Essential Questions
I keep a list of essential questions in a 4' by 3' poster I created in Publisher posted in the front of the class. I refer to it on almost every project, especially the organization question. I find that is a key principle to work on starting in Primary (Kindergarten) and up. It is the essence to success, and for most students it is NOT a natural thing.
Other Ways I Directly