•To cope with complexity, the human mind engages in abstraction-the act of separating the essential
qualities of an idea or object from
the details of how it works or is composed.
•To manage complexity, software developers regularly use two important abstraction techniques:control abstraction
and data abstraction
•An example of control abstraction is a function call.
Ex. 4.6 + sqrt(x)
•We use data abstraction when we define a new type. We concentrate initially on its logical properties and
defer implementation details.