Decomposition - breaking a complex problem down in smaller problems and solving them individually
Abstraction - picking out important bits of information from the problem, leaving out specific details
Algorithmic thinking - a logical way of getting from problem to solution. If the steps taken to solve a problem can follow an algorithm, then they can be used to solve similar problems in the future