Previous Table of Contents Next


10.3.2. Education and Ada

This section briefly discusses the Ada 95 textbook literature and surveys the use of Ada in college and university education.

10.3.2.1. Ada 95 Textbooks

At this writing, 17 published books, at different levels but with Ada 95 as their focus, have appeared since 1995. Anyone wishing to learn the language has an excellent range of books from which to choose.

The Ada 95 Reference Manual (Taft & Duff, 1997) and Rationale (Barnes, 1997), both available on the Web, but until recently only with difficulty in paper form, have now been formally published as books.

Five texts (Culwin, 1997; English, 1997; Feldman & Koffman, 1996; Lopes, 1997; Skansholm, 1997) introduce Ada to first-year students and other readers with no programming experience. Two works (Beidler, 1997; Feldman, 1997c) focus on data structures and algorithms, and one (Smith, 1996) deals specifically with object-oriented programming. Two texts (Burns & Wellings, 1995, 1997) discuss concurrency and real-time systems. An interesting work in French (Rosen, 1995) discusses software engineering methods with Ada 95.

Finally, four works (Barnes, 1995; Cohen, 1996; Naiditch, 1995; Wheeler, 1997) introduce Ada 95 to experienced programmers, and one book (Johnston, 1997) introduces the language specifically to readers experienced with C or C++.

10.3.2.2. Ada as a Foundation Programming Language

Since 1991, I have tracked the colleges and universities that have adopted Ada as a “foundation language,” that is, in one of the first few computing courses taken by students majoring in the field.

Computing curricula are far from standardized, and there is much variation from institution to institution depending upon local needs and politics. The courses I have tracked are

  The introductory-level course taught to majors in the first year (some refer to this as “CS1”)
  The second course, which follows the “CS1” course, which is, in general, devoted mostly to algorithms and data structures (some refer to this as “CS2”)

In some institutions, one or both of these courses are “pre-major,” so the third course is the first one taught specifically to majors. This is often a more advanced data structures course or something similar.

Given the local variations, it is difficult to write a one-size-fits-all definition of the courses I follow, but I choose to keep track of precisely these courses because they are taken by majors in either first or second year and thus early enough to serve as a foundation upon which to build a large portion of the software curriculum. The following chart shows the trend since 1991:

10.3.2.3. The Ada IC CREASE Database

The Ada Information Clearinghouse maintains a WWW database called CREASE (Catalog of Resources for Education in Ada and Software Engineering) that keeps track of Ada-related courses in both academic institutions and training companies. They send occasional canvasses, follow up to ensure that their data is current, and make an electronic questionnaire available at the site. At this writing, 445 organizations are present in the database, describing 799 different courses.

10.3.3. Ada 95 Compiler Availability

Ada 95 compilers are readily available for all the popular computing host and target platforms and many specialized targets as well.

For example, at this writing freely downloadable ports of GNU Ada 95 (GNAT), with full source code, exist for

  Sun Solaris (Sun SPARC and 80x86/Pentium)
  Sun OS (Sun SPARC)
  IBM OS/2 (Warp), Windows 95 or NT, DOS, Linux (Elf object format); all for 80x86/Pentium
  IRIX (SGI)
  Digital UNIX (OSF), OpenVMS (DEC Alpha)
  AIX (PowerPC/RS6000)
  HP-UX (HP PA)
  MachTen host, MachTen and MacOS targets (Power Mac)
  Sinix (Siemens Nixdorf)

These can be downloaded from various FTP servers and are included on the Walnut Creek Ada CD-ROM.

A fully functional Aonix ObjectAda development system for Windows 95 and NT is included on a CD-ROM with at least two textbooks (Feldman, 1996; Johnston, 1997).

Other suppliers offer proprietary compilers for popular host platforms, supporting targets for these platforms as well as for various bare boards, real-time operating systems, digital signal processors, and so on. Two suppliers—Aonix and Intermetrics—support a Java Virtual Machine target, and a GNAT version targeting the JVM is under active development. At this writing, the official Validated Compiler List (available on the Ada IC Web site) shows over 80 validated implementations from 10 different suppliers.

10.4. Programming

I introduce programming in Ada using a series of complete examples, which serve better than rules and fragments to illustrate the use of the language. Each of these programs has been compiled and tested. In each case, I have numbered the lines so that I can refer to them in the discussion; the line numbers are not part of the programs themselves and are not entered into a source file.

The first several examples introduce the basic structure of an Ada program; the rest introduce more interesting concepts of program construction using modules, object-oriented programming, and concurrent programming. Each program introduces several new concepts.

10.4.1. Examples of Basic Structure and Syntax

Two of the most fundamental Ada concepts are the type and the package.


Previous Table of Contents Next