in ascending order of complexity:

main phases

learning the basics by playing.
internalizing and extending the basic concepts:
e.g. what conditions have to be present, if we want the control-flow reach a certain branch.
modeling and understanding of standard algorithms (e.g. bubble sort)
parallel modeling and programming on a computer

increasing complexity during the main phases

each section has different complexity levels, e.g.:
while learning the basics:
subroutines will initially be games and slowly give place to subroutines that are built with blocks themselves.
while modeling and understanding standard-algorithms
complex actions like swapping two adjacent list-elements, i.e. swap(list[idx], list[idx+1]) will initially explained in words and later built with the blocks