Get live training from some of the foremost experts on the Ada programming language and GNAT Pro technology. Experience has shown that Ada is an extremely learnable language and that programmers with basic knowledge in other languages can quickly get up to speed with Ada. For programmers who already have some Ada experience, AdaCore offers advanced courses in Ada and GNAT Pro/GPS designed to help developers get the most out of the technology.

For information regarding pricing, availability of instructors for scheduling, and customization of the training courses listed below, please contact

Need help on-site?

Learn more about our custom support and development services.

On-site consulting »

Ada Training

Ada Fundamentals

5 Day Course

This course provides a full introduction to programming in Ada. Classic programming features are discussed, with an emphasis on Ada’s support for constructing modular, portable, and reliable systems. Depending on the subjects of interest, this course could be specific to any version of the language, Ada 83, Ada 95, Ada 2005 and Ada 2012.

Target Audience
Programmers interested in learning the fundamentals of Ada software development.

Course Contents
The core content of the course include the following topics:

  • Fundamental data types: integer (including modular) types, enumeration types, real types, record and array types
  • Basic algorithmic features (expressions, statements, subprograms)
  • Limited types
  • Exceptions and exception handling
  • Modular program construction using packages, private types, and child library units
  • Overview of access types
  • Overview of generic units

In addition to the core contents of the course, an overview on one of the following subject can be selected:

  • Object-oriented programming
  • Low-level programming
  • Concurrent programming
See More

Ada Advanced Topics

5 Day Course

Advanced Ada users can improve their skill by learning advanced Ada programming techniques. Such course will be given in 5 days, and the contents can be picked up from the items below. Longer courses are possible if needed. Depending on the subjects of interest, this course could be specific to any version of the language, Ada 83, Ada 95, Ada 2005 and Ada 2012.

Target Audience
Programmers interested in learning advanced Ada software development topics. Programmers should be familiar with the content of the course “Ada Fundamentals”.

Course Contents
The core content of the course include the following topics:

  • Access types
  • Generic units
  • Predefined library
  • Runtime and user-defined checks

In addition to the core contents of the course, a special emphasis can be given to one or two of the following subjects:

  • Concurrent programming
  • Object-oriented programming
  • Low-level programming
  • Programming in the large
  • Specialized Needs annexes overview
See More

Tools Training

GNAT Pro with GPS

3 Day Course

This course shows advanced usage of GPS, and how to improve productivity by using its most advanced features. It’s composed of three independent days which can either be taken as a part of a GPS course, or separated and combined with other topics.

Target Audience
Developers interested in learning how to use GNAT Pro and GPS.

Course Duration
3 days, including (and possibly mixed with others)

Advanced GPS usage for edition and debug – 1 day

  • Edition features
  • Advanced navigation
  • Documentation generation
  • Code completion
  • Integrated Debugger
  • Integrated builder
  • Remote programming

GNAT toolchain and Project Management – 1 day

  • Understanding the GNAT toolchain
  • GNAT options and pragmas
  • Advanced setup of GNAT Project files
  • Scenario configuration
  • Usage of gnatmake and gprbuild

GPS customization – 1 day

  • Python basics
  • Existing GPS plugin
  • Extending GPS via XML
  • Extending GPS via Python
  • Driving GPS from the command line
See More

GNAT Pro Tools

5 Day Course

Through lectures and hands-on workshops, this 5-day course shows how to use AdaCore tools for improving overall code quality as well as for testing and debugging. It presents tools such as GNATcheck (style checks / coding standard compliance), GNATmetric (metric measurements), CodePeer (static analysis / vulnerability detection), GCov or GNATcoverage (structural code coverage analysis) and GNATtest (unit testing). It will also show how to make use of the GNAT compiler options and pragmas in order to detect certain kinds of errors early in the development process, and how to take advantage of stack usage data that can be extracted at compile-time.

Target Audience
Ada developers, project managers and quality assurance engineers interested in using and deploying static and dynamic analysis tools. Some knowledge of Ada is assumed; no previous experience with the GNAT Pro toolset is required.

Course Duration
3 days, including (and possibly mixed with others)

Day 1 - The GNAT Pro Environment

  • GNAT Project Facility
  • Insights and tips on the GNAT Toolchain and options

Day 2 - Static Analysis

  • Advanced usage of compiler checks and warnings
  • GNATmetric – metric computation
  • GNATcheck – coding standard compliance verification
  • GNATelim – unused subprogram elimination
  • GNATstack – static stack usage analysis
  • Custom static analysis tools using GPS or ASIS

Day 3 - Dynamic Analysis

  • Compiler switches and pragmas
  • Advanced usage of the debugger
  • AUnit and GNATtest – unit testing
  • GCOV – native coverage analysis
  • Ada 2012 for dynamic analysis
  • Advanced exception analysis

Day 4 - CodePeer

  • Run-time error detection
  • Logic error detection
  • Automated code review
  • Test vector and test case generation

Day 5 - Custom tools and quality follow-up

  • GNATdashboard
  • Scripting with Python
  • Using GNAT2XML to check rules
See More

SPARK Training

A five-day course for programmers, managers, and software assessment/regulation personnel, which presents the principles of high assurance software development and verification using SPARK 2014. The course explains the rationale of SPARK 2014, describes the language and the principles of static code analysis, and shows how to use the SPARK language and the SPARK Pro Toolset both in new projects and in the context of existing (legacy)systems.

Target Audience
Aimed at engineers, managers and regulators (assessors) involved with the development and verification of high assurance software. No previous experience with SPARK or Ada is required

Course Duration
5 days


  • The SPARK/Ada programming language - types, expressions, statements, subprograms, packages.
  • Introduction to static analysis and formal verification
  • Data dependency analysis
  • Flow dependency analysis
  • Programming with contracts
  • Modular / hybrid verification
  • Proving absence of run-time exceptions
  • Designing a SPARK program
  • State abstraction
See More

Other Training

This course covers the key concepts behind DO-178B/C avionics certification. It also summarizes the differences between DO-178B and DO-178C, with a particular focus on how to apply the guidance in the Object-Oriented Technologies and Related Techniques supplement (DO-332). One entire day is dedicated to presenting how to best use the Ada language and GNAT Pro tool suite to comply with the certification objectives, again applicable both to DO-178B and DO-178C.

Target Audience
Software developers and project managers. No previous experience with DO-178B or DO-178C, or with avionics programming, is required. Ada knowledge is necessary for the third day.

Course Duration
1-3 Day Customizable Course

Day 1 – DO-178B and DO-178C Basics
This session describes the DO-178C / DO-178C software life cycle model and its constituent processes. It presents common pitfalls and problems together with concrete examples showing how to address them. Topics to be addressed include:

  • Planning
  • Environment considerations (compiler, run-time libraries, tools, etc.)
  • Requirements and Architecture
  • Software verification process
  • MC/DC structural coverage
  • Determinism considerations (memory usage, Worst Case Execution Time, language semantics, etc.)
  • Differences between DO-178B and DO-178C
  • Overview of the DO-178C supplements
  • Introduction to tool qualification

Day 2 - High-Integrity Object Oriented Programming with the DO-178C OO Technology supplement
This session comprehensively covers DO-332, the DO-178C supplement that describes the vulnerabilities associated with Object-Oriented Technology and related techniques and shows how to address them. DO-332’s guidance can be used in developing High Integrity application in other domains besides avionics. Topics to be covered include:

  • Rationale for using OOP in certified avionics
  • New objectives and activities in DO-178C for OOP
  • OOP-specific vulnerabilities and verification
    • Inheritance
    • Polymorphism, dynamic binding, and local type consistency
    • Overloading
  • Virtualization vulnerabilities and verification
  • Memory management vulnerabilities and verification
  • Related techniques vulnerabilities and verification
    • Type conversion
    • Exceptions
  • Additional vulnerabilities and verification
    • Traceability
    • Structural Coverage
    • Component-based development
    • Timing analysis

Day 3 - Using GNAT Pro to meet DO-178B and DO-178C objectives
This session is specific to the GNAT Pro technology. It demonstrates how to use the Ada language (including new features of Ada 2012) and the GNAT Pro toolset to develop certified avionics applications. Sample topics include:

  • Considerations for tool qualification (DO-330)
  • Using Ada for certified avionics applications
  • Custom GNAT Pro Run-Time Profiles
  • Enforcing style checks and restrictions through GNATcheck
  • Unit testing with GNATtest
  • Code coverage with GNATcoverage
  • Understanding the GNAT switches to use with certification
  • Static stack analysis through GNATstack
  • Source to Object Traceability with GNAT Pro
  • Using CodePeer to analyze software vulnerabilities
See More