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

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

Junior Coder Level 1

  • I can move the sprite using x-y coordinates (motion).
  • I can change the sprite’s costume and colour effect (looks).
  • I can animate sprites (looks)
  • I can 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).
  • I can write a script that will run forever (looping).
  • I can check as to whether two sprites are touching (collision detection).
  • I can write scripts to start by pressing keys.

Junior Coder Level 2

  • I can relocate sprites to a new position and I can make them travel across the screen (go to vs glide blocks).
  • I can program the computer to make a decision based on conditions by using ‘if’ blocks (branching).
  • I can store data (numbers) in variables, e.g. set score to zero at start of game (variables).
  • I can make changes to 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

  • I can use the sprite to draw lines and shapes
  • I can change the pen line colour and pen size.
  • I 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).
  • I can use the user input which is stored in the variable ‘answer’ (ask and answer).
  • I use variables to store words (data)
  • I can process variables to change the stored data
  • I can use calculations in my programming e.g. addition, multiplication
  • I can hide and show sprites as required.
  • I can write scripts to start by clicking on the sprite.

Advanced Coder Level

  • I can use complex calculations and logic in my programming e.g. comparison (operations) and boolean.
  • I can use data in lists (lists).
  • I can make use of ‘broadcast messages’ in my coding to send messages between sprites and backgrounds (broadcast).
  • I can create multiple levels in games by using ‘broadcast messages’ (broadcast).
  • I can create and control clones of sprites (cloning).
  • I can create new blocks (make a block).
  • I can 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