Scratch in Computer Science

Why Scratch in Computer Science?

  • There a very flat learning curve.
  • Revealing structure visually
  • Everything is visible or audible (nothing is hidden or mysterious), including program executio
  • Concurrency
  • Event-based programming
  • Lack of syntax problems: never any compiler warnings
  • Instant gratification: making changes immediately changes the environment
  • The peer-to-peer, environment allows you to learn quickly.
  • Scratch is fun


  • How can we respect the boundaries and limitations of Scratch and not force it to do things that are not natural in the environment
  • Knowing when to move beyond Scratch to other programming environments/languages
  • Debugging concurrent programs
  • What are meaningful ways of assessing Scratch projects?

Ideas and suggestions

  • Can we have a debugging system that would help to reveal the process of a running program with all the broadcasts and scripts? Is this a good idea?
  • Could we have a way of viewing scripts from different sprites concurrently? Is this a good idea?
  • A map of key CS concepts and examples of how they could be taught with Scratch
  • Sample
  • Rubrics of how to assess Scratch projects

Contacts for people interested in Scratch in Computer Science