On-Site Ada Training

Originally designed as a "flexible yet portable language for real–time embedded systems" in U.S. Defense, Ada’s sound basis in good software engineering, and strong support for concurrency and large project development, have made Ada invaluable to safety-critical systems, large–scale information systems, distributed systems, scientific computation, and systems programming.

The 1995 ISO/ANSI Ada standard adds support for the object–oriented paradigm, and extensible system structure; also more efficient support for real–time systems, improved integration with "commercial off–the–shelf" software and other languages, and support for information management and distributed systems.

The 2005 ISO/ANSI Ada standard improved support for the object–oriented paradigm, extended support for real–time systems; and improved support for saftey critical systems.

The 2012 ISO/ANSI Ada standard adds aspects and contracts improving support for both reliability and understandapity of the code; refines support for the object–oriented paradigm, and extensible system structure; extended support for real–time systems; and improved support for saftey critical systems.

The following paragraphs describe our Ada course offerings. While normally we teach the latest standard, we can present the same classes for earlier versions of the language.

Class Descriptions

Ada for Experienced Programmers

Format: Lecture–workshop, 5-10 days

Intended For: Software development personnel, including their management and QA engineers, who intend to program in Ada, design for Ada, or review Ada code.

Prerequisites: Programming experience, familiarity with a high–level language.

Overview: This course is intended to jump–start experienced programmers in the use of the Ada programming language to develop reliable, maintainable software systems.  Students will learn how Ada supports software engineering principles, such as abstraction, information hiding, localization, modularity, and re–use, and how to apply these principles in Ada software development.  Students will gain experience with the Ada syntax and semantics for data and program structuring, error management, information hiding, object–oriented programming, and generics, tasking, and low–level programming. Finally, we will look at how the new annexes of Ada support domain–specific development: distributed, real–time, and information systems, numeric computation, systems programming, safety, and security.

The duration of this course depends on the topics that you need to cover to develop your system(s).

Developing Real–Time Systems in Ada

Format: Lecture–workshop, 5-10 days

Intended For: Ada programmers and designers, who intend develop real-time Ada programs.

Prerequisites: Ada for Experienced Programmers course or equivalent training or work experience

Overview: This course teaches how to design Ada implementations of real–time systems, and develop applications that have predictable schedules and resources.  It can be tailored to address the issues of embedded or distributed systems.  Students will learn to use Ada facilities for managing scheduling issues, including setting priorities dynamically, selecting scheduling algorithms and entry–queue protocols, and for system programming, including interrupt handling and shared resources.  They will also learn to design data structures that optimize memory and execution performance.

The duration of this course depends on the topics that you need to cover to develop your system(s).

Ada 2012 for Ada Programmers

Format: Lecture–workshop, 3-5 days

Intended For: All programmers, designers, and systems engineers.

Prerequisites: Experience with an earlier versiion of Ada

Overview: This course jump–starts experienced Ada '83, '95, '05 users into Ada 2012 by focusing on the new facilities that support object–oriented programming, programming in the large, interfacing with external systems, and the enhancements to the real-time model. The core Ada 95 language is explored more generally, introducing new capabilities and terminology where appropriate, and guiding the programmers through compatibility issues. Finally, a review of changes to annexes of Ada support distributed, real–time, and information systems, numeric computation, systems programming, safety, and security.

The duration of this course depends on which version of Ada your people know and the topics that need to be covered for your system.