Algorithmic Thinking and Complexity
Algorithms are step-by-step instructions for how to transform inputs into outputs. This is the bridge between a theoretical solution to a problem and an actual implementation in code. Writing out an algorithm formally allows us to analyze it mathematically to understand how the algorithm will run. The main characteristic that we look for is the complexity of the algorithm, which gives a measure of how long it would take to execute the algorithm to obtain the solution based on the size of the inputs and outputs.
Algorithms are a language-agnostic description of what needs to be done to solve a particular problem. This is important because it might not be easy to translate from one language to another, but an abstract description means a new programmer does not need to unpick language-specific details. Being able to read, analyze, and implement algorithms is an important skill for every programmer. The ability to formulate your own algorithms...