Introduction to Abstract Data Types Using ADA