Designing Course Levels

This is Part 2 of the 4-part blog series “Bring coding into the classroom using Scratch.”

We developed a learning progression for programming with Scratch. Our Scratch courses are built on five course levels:

  1. Introductory Level
  2. Junior Coder Level 1
  3. Junior Coder Level 2
  4. Intermediate Coder Level
  5. Advanced Coder Level

Each course level focuses on achieving a set of competencies. Students discover the new competencies. They may take 1 or 2 terms to explore their new skills in various contexts and consolidate them in that course level. Afterwards they are able to proceed to the next level to discover, explore and consolidate new competencies.

Introductory Level

  • make the sprite move using arrow keys.
  • allow the sprite move randomly.
  • order the sprite follow the mouse pointer
  • change the screen background and add speech bubbles.
  • add sound effects.
  • write code that starts when I click on the green flag.
  • know that the computer reads the instructions from top to bottom, unless told otherwise.

Junior Coder Level 1

  • move the sprite using x-y coordinates (motion).
  • change the sprite’s costume and colour effect (looks).
  • animate sprites (looks)
  • draw my own sprite (sprite tab).
  • Instead of using the same blocks in the same sequence multiple times, I can use the ‘repeat’ block to repeat a set of commands (looping).
  • order the script that will run forever (looping).
  • check as to whether two sprites are touching (collision detection).
  • write scripts to start by pressing keys.

Junior Coder Level 2

  • relocate sprites to a new position and I can make them travel across the screen (go to vs glide blocks).
  • program the computer to make a decision based on conditions by using ‘if’ blocks (branching).
  • store data (numbers) in variables, e.g. set score to zero at start of game (variables).
  • change the stored data e.g. increase the score at certain events in the game, e.g. add 1 point when the player collects a collectible (variables).

Intermediate Coder Level

  • make the sprite to draw lines and shapes
  • change the pen line colour and pen size.
  • request user input i.e. I can ask the player of the game questions e.g. “What is your name?”.  The player can then type their answer into the game (ask and answer).
  • apply the user input which is stored in the variable ‘answer’ (ask and answer).
  • create variables to store words (data)
  • process variables to change the stored data
  • use calculations in my programming e.g. addition, multiplication
  • hide and show sprites as required.
  • write scripts to start by clicking on the sprite.

Advanced Coder Level

  • apply complex calculations and logic in my programming e.g. comparison (operations) and boolean.
  • use data in lists (lists).
  • make use of ‘broadcast messages’ in my coding to send messages between sprites and backgrounds (broadcast).
  • develop multiple levels in games by using ‘broadcast messages’ (broadcast).
  • control clones of sprites (cloning).
  • create new blocks (make a block).
  • use video and sound sensing (sensing).
Throughout each course level we also cover these skills and understanding:
  • Practise internet safety
  • Coding in the real world
  • Plan before starting (flowcharts or steps)
  • Test and retest before continuing on to the next step
  • Debugging
  • Exploring options to test a solution

Download a pdf version of course levels and competencies here. 

Part 3 of this 4-part blog series will show you how to design an 8-week course, which fits nicely into 9-11 week long school terms (in Australia).


Check out our free Scratch cheatsheet. Learn to code with Scratch in 30 minutes.

If you’re interested to find out more