Data Abstraction
An abstract data type is any type you want to add
to the language over and above the fundamental
types
For example, you might want to add a new type
called:   list
which maintains a list of data
the data structure might be an array of structures
operations might be to add to, remove, display all,
display some items in the list