1.
Removing unnecessary details, leaving only what is important
2.
Breaking down complex problems, into smaller manageable parts
3.
A precise and unambiguous set of step-by-step instructions.
4.
Spotting similarities between parts of code and using these to make our code more efficient
5.
Repeating a set of instructions
6.
A program’s decision to run code based on meeting certain conditions
7.
The order in which the code runs