This textbook introduces the Ada programming language in a manner suitable for students with little or no previous experience of programming. It shows how solutions can be systematically designed and how these solutions can then be implemented on a computer. The early parts of the book concentrate on solving small problems while the later parts show how packages can be used in the construction of reliable large programs. As Ada is a complex and versatile language, no attempt is made to cover it all. The author concentrates on central features such as data types, subprograms, packages, separate compilation, exceptions and files. He provides in addition a large number of complete Ada programs, all of which have been tested on the York Ada compiler. The final version of the Ada language (ANSI/MIL-STD-1815A-1983) is used throughout.