Functional Abstraction
As noted in Lecture 4, Slide 5, “functional abstraction” is a powerful tool for algorithmic thinking*
“Functional abstraction” means formulating the basic operations of a solution to a task in a more abstract form, i.e. independent of specific details, so that they may be reused, i.e. applied in many situations
The important points --
- Identifying the key operations of a task -- core logic of solution
- Generalizing from the specific details -- parameterizing
- Formulating the package for reuse -- assigning name, coding
That’s very conceptual; consider some examples
* These concepts are covered in Chapter 4 of Great Ideas in CS