Albert Einstein once said everything should be made as simple as possible, but not simpler. Einstein could have been talking about programming languages, as the landscape is strewn with “simple” languages that, several versions later, have 500-page reference manuals! The truth is that we expect a lot of our programming demand support for en- capsulation and abstraction, type checking and exception handling, polymorphism and more. Ada, unlike other languages which grew by the gradual addition of features, was designed as a coherent programming language for complex software systems. Ada for Software Engineers (ASE) is written to equip you with the knowledge necessary to use the Ada.