Computer Science Concepts in Scratch

Michal Armoni and Moti Ben-Ari

Copyright 2013 by Michal Armoni, Moti Ben-Ari, Weizmann Institute of Science.

This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. To view a copy of this license, visit or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

This book will familiarize you with the Scratch visual programming environment, focusing on using Scratch to learn computer science. The book is structured as a collection of tasks. Each chapter teaches a new concept, but the concept is introduced in order to solve a specific task such as animating dancing images or building a game. Each chapter starts with a simple task, but as soon as we solve one task, we add additional tasks to extend the existing task. The sequence of tasks will require a new construct of Scratch or the use of constructs you know in new ways.

The textbook was written for Scratch 1.4. We have also written a supplement that explains the changes and additional features in Scratch 2.0.


The textbook is available in three formats:

  1. with equal margins for screen display and one-sided printing;
  2. with margins for two-sided printing and binding in the left margin;
  3. with a large font on a small text area that enables better accessibility by magnifying the pdf.

The layout was carefully done for the full-size pages and will be suboptimal in the small format; we have no plans at this time to improve this format or to produce other formats for ereaders.

  • Textbook for Scratch 1.4—version 1.0, 5 May 2013:

Our other learning materials for Scratch

Moti has created many Scratch projects that can be used as learning materials:

  • Implementations of the activities of Computer Science Unplugged.
  • Projects on robotics: implementations of Karel the Robot and Braintenberg's vehicles, projects for the LEDO WeDO kit, and simulations of the Thymio education robot.
  • A game for learning mathematics.

You can find the Scratch projects on the MIT Scratch website.

Research publications

  1. Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2011). Habits of programming in Scratch. In Proceedings of the 16th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, (ITiCSE11, Darmstadt, Germany), 168-172. 
  2. Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2013). Learning Computer Science Concepts with Scratch. Computer Science Education, 23(3), 239-264.
  3. Armoni, M., Meerbaum-Salant, O., & Ben-Ari, M. (2015). From Scratch to “Real” Programming. ACM Transactions on Computing Education, 14(4), 25:1-15.
  4. Statter, D., & Armoni. M. (2016). Teaching abstract thinking in introduction to computer science for 7th graders. In Proceedings of the 11th Workshop in Primary and Secondary Computing Education (WiPSCE2016, Münster, Germany), 80-83.
  5. Statter, D., & Armoni. M. (2017). Learning abstraction in computer science: a gender perspective. In Proceedings of the 12th Workshop in Primary and Secondary Computing Education (WiPSCE2017, Nijmegen, the Netherlands), 5-14.
  6. Statter, D, and Armoni, M. (2020). Teaching Abstraction in Computer Science to 7th Grade Students. ACM Transactions on Computing Education, 20(1), 8:1-37.

Questionnaires used in the research described in paper 2: pre-questionnaireinterim testfinal test

Questionnaires used in the research described in papers 4-6: pre-test,  post-test 2015 , post-test 2016

Hebrew language website

Contact: Please send comments and suggestions to