Programming With Abstract Data Types

An abstract data type is a specification of the values and the operations that these 2 properties:
The Application:
the part that uses the abstract datatype
The Implementation:
the part that implements the abstract datatype