Scratch

Scratch is a one of the best languages to learn how to program computers. The language is easy to learn while being surprisingly powerful. Often I meet students who want to learn how to create web sites or applications. They want to immediately learn Python, C#, or other other “practical” programming languages. My recommendation is to first learn programming basics using Scratch and then learn other languages like Python. Scratch lets you focus on learning the most critical skills. Often it is faster for a novice programmer to gain mastery by learning Scratch and then “a practical language” than to start with the language they ultimately want to use.

This post was inspired by meeting the teachers and students at Achungo. A WhatsApp Group for teachers and students interested in Scratch@Achungo.

I will be adding more to this page in the near future.

Getting Scratch

If you have a browser that was updated in the last year and an Internet connection, just click the “Create” button on the Scratch home page and you are ready to go. If Internet access is spotty or you are using an old browser you can download offline scratch for Macintosh, Windows, Chromebooks still under support, and Android powered devices. On Macintoshes you can also download scratch through the App Store.

The current version of Scratch does not work on older Chromebooks (like HP Chromebook Pavilion 14 at Achungo). I am working to get this fixed. In the mean time, Scratch 1.4 running inside Squeak does work on old Chromebooks. It takes awhile to load, it’s a bit slow, and some of the functions in Scratch version 3 are missing… but you can still write programs and create games in it!! There is a nice textbook about Scratch 1.4 which can be borrowed for free from archive.org. Here is the scratch site from 2012 (when Scratch was at version 1.4). Have fun.

Newer iPads can run Scratch in the Browser. There seems to be a full version Scratch in Chinese but it will be challenging to use by people who can’t read Chinese. There is a ScratchJr app which can run on iPads but it is missing most of the features of full Scratch. I will update this section if/when I find an English version of Scratch as an App for the iPad.

Scratch Tutorial Coding Game in the Macintosh App Store is a free + pay for additional features app which walks a student through the creation of games in a very easy to follow way. Warning: sometimes it is a bit buggy and you might have to restart the lesson.

Getting Started

I would recommend exploring scratch.mit.edu which has links to many resources. Some good courses that use Scratch:

  • Harvard’s Creative Computing Curriculum: Curriculum including workbooks, resources, notes for classes to use Scratch to learn to think computationally.
  • Harvard CS50 Scratch Module: Harvard CS50 is one of the best college level introductions to computer science. Once the basic have been mastered using Scratch, the class using C and Python.

Kenya has produced textbooks about programming scratch for grades 5-9 as well as training material for teachers.

Games

Games are fun to play, and can inspire creativity by providing ideas of things to build. There are many excellent games that have been created using Scratch. Not only can you play these games, but if you click the “See Inside” button you get to see the code which makes the game work.

Going Further

You will not be able to create cool games or really complex applications immediately. You will have to start with simpler programs and work your way up. There are skills that you will need to develop through practice. Often this practice can be boring… but it’s necessary, and will be worth the time you spend learning and practicing.

Once you have mastered the basics in Scratch a good second step is learning the material covered by the AP CS Principles Curriculum. In the spirit of Scratch is the language Snap and the excellent Beauty and Joy of Computing which covers the AP CS Principles Curriculum.

How to go from writing simple games in Scratch or Snap to being a software engineer who could work for companies like Google and Apple?

It is said that it takes 10,000 hours of practice to master a discipline. That’s 4 hours / day for 7 years. This can be seen in elite athletics who win in the olympics or play for professional teams as well as great scientists and doctors. They constantly learn and train to become the best. Practice is also needed to become a great programmer.

COMMON SOON: Next steps in mastering programming and becoming a software engineer.

There is a close relationship between thinking well, problem solving, and programming. Working hard at school, especially math and science will help you become a good programmer.

Where did Scratch Come From?

In the 1960s there was some amazing work done by a team of people at MIT led by Seymour Papert. They used computers as a tool for students to explore and learn rather than merely an automated tool for rout memorization or for teaching computer science.  The book Mindstorms described some of their work. The Logo programming language and “turtle graphics” were two of the technologies that were invented by this team. This work has inspired many other projects. In the 1970s a group of people at the legendary Xerox Palo Alto Research Center (PARC) created Smalltalk as an environment for children to learn and program. This simple language grew into one of the most advanced programming environment used by professional programmers. Years later a free version of Smalltalk called Squeak became a beloved environment for kids and professionals alike. Several members of MIT Media Lab’s Lifelong Kindergarten wanted something a bit easier to learn than Squeak. They invented Scratch which was initially a program running inside Squeak. The current version 3 of Scratch no longer depends on Squeak. The paper Scratch: Programming for Everyone explains what the creators of Scratch hoped to accomplish.

See Also

Leave a Reply

Your email address will not be published. Required fields are marked *