Programming progressions can be a complex issue. Many of these concepts can be taught in a simple or more complex way. This is a concept group best fit progression designed around block based programming for primary pupils. Some concepts inside some groups are more complex than the proceeding group but generally the first column goes from top to bottom. I don’t recommend teaching these concepts outside of a context of making programs that do something meaningful but enabling pupils to have accurate programming language provides them with a hook to hang their experiences and creations on. All programming projects use more than one type of programming construct. Teachers can use this guide to work out approximate project complexity.