When we layer functions – with functions that call other functions – we are creating layers of abstraction. In programming, writing functions helps us create layers of abstraction that allow us to design and create increasingly complex systems.
We’ve seen layers of abstraction before in the design of Internet protocols, or in the binary encoding of information. Solving a fundamental piece of a problem that can be reliably reused in a different context frees us to think about more complex problems because we can trust the piece that has been solved and don’t have to worry about its details. Solving small problems – like how to send a single bit from one place to another – allows us to think about bigger problems, like sending numbers, or text, or images, to multiple people, over networks, in packets…etc., etc., etc.
Abstraction – Pulling out specific differences to make one solution work for multiple problems.
Function – A piece of code that you can easily call over and over again.
Top Down Design – a problem solving approach (also known as stepwise design) in which you break down a system to gain insight into the sub-systems that make it up.
Please complete tasks 2,3,4,5, & 6 in Unit 3, Chapter 1, Lesson 6 of Code.org