What is Scratch?

Scratch is a graphical programming language, developed by the Lifelong Kindergarten group at the Massachusetts Institute of Technology Media Lab. It is provided free of charge.

With Scratch, you can program your own animations, interactive stories, and games — and share your creations with others in the online community. 

Scratch Interface

Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century. It allows children to learn coding concepts and create interactive projects without needing to learn a text-based programming language. This means they won’t be slowed down by their keyboard skills or the ability to remember complex code.

Elements such as variables, conditions, and loops are offered as puzzle pieces that kids snap together to write code. It will help the students to focus on their goals to create applications instead of struggling with the syntax of a programming language. It’s a bit like the programming equivalent of LEGO!

If children have a Scratch user account then projects can also be shared online with the Scratch community, giving children a real audience for their creations.

Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating and sharing Scratch projects.

When children are ready they can try text-based languages such as HTML & CSS or Python, but there’s plenty of opportunity to develop useful skills in Scratch first.

Programming concepts that you can learn during the Kids can Code classes include:

  • Sequential Processing. This involves the processing of application code blocks, in the order that they are laid out, starting at the beginning of a script file and continuing to the end of the script.
  • Iterative Processing. This involves the repeated execution of code blocks to process large amounts of information or to control the repeated execution of code blocks required to direct the execution of a game or application.
  • Event Handling. This involves the initiation of script execution based on the occurrence of predefined events, such as the pressing of keyboard keys, the pressing of the green flag key, or the receipt of a synchronization message.
  • Conditional Programming Logic. This involves the conditional execution of code blocks based on data collected during application execution.
  • Use of Variables. This involves the storage, retrieval, and modification of data during application execution.
  • Program Synchronization. This involves the passage and receipt of messages between application scripts for the purpose of coordinating the execution of different parts of an application.
  • Interface Design. This involves the development of user-friendly and intuitive application stage layout, making it easy for users to interact with applications.
  • Application and Game Development. This involves the creation of different types of computer application projects.
  • Sprite Programming. This involves the use of sprites as the basis for developing graphical programs.
  • Application Troubleshooting. This involves the identification, location, and elimination of programming errors, or bugs, that prevent applications from executing as they are supposed to.