
Enterprise Training in Ada, SPARK, and Rust
AdaCore’s Training programs offer expert-led courses designed to help teams master everything from programming in Ada, SPARK and Rust to effectively applying our tools to new or existing code. From foundational concepts to advanced topics, our hands-on sessions equip developers with the skills needed for high-integrity and safety-critical software development.
Enquire TodayExplore Our Training Programs
All of our expert-led courses can be conducted remotely or on-site and customized to your requirements.
This course is a five-day course giving a full introduction to the Ada language. The course starts with the basics:
- Fundamental data types (numeric, enumerations, arrays, records)
- Basic algorithmic features (expressions, statements, subprograms)
- Modular program construction (packages, data abstraction/hiding)
- Exceptions and exception handling
- Access types
- Generics
And then can be customized with choices from the following topics:
- Object-oriented programming
- Low-level programming
- Concurrent programming
- Design by contract (subprogram and type contracts)
Other topics can be added upon request.
Students are expected to have knowledge of software engineering core concepts; experience in any compilable programming language is a plus.
This course is three to five days and goes into greater detail on Ada topics chosen by the customer. It is designed to expand on any of the topics introduced in the Ada Essentials course, including:
- Access types
- Generics
- Type system and “Design by Contract”
- Concurrent programming
- Object-oriented programming
- Low-level programming
- Specialized Needs annexes
Additional advanced topics can also be covered, including, but not limited to:
- Run-time and user-defined checks
- Predefined libraries
- Ada Containers
- IO Packages
- Architecting Large Ada Applications
Other topics can be added upon request.
Students are expected to have a good, working knowledge of Ada, via the Ada Essentials class and prior coding experience.
This course is a three-day course giving a full introduction to the Rust language, starting with the basics, and then finishing with more advanced concepts, including:
- Fundamental data types (types, values and control flow)
- Data structures (tuples and arrays, user-defined types)
- Ownership and Memory Management (borrowing, lifetimes, smart pointers, references)
- Abstraction and Organization (methods and traits, generics, standard library traits/types, modules)
- Advanced Concepts (pattern matching, iterators, error handling)
This course can be further customized with choices from the following topics:
- Embedded Rust
- Distribution
- Concurrent programming
Other topics can be added upon request.
Students are expected to have knowledge of software engineering core concepts; experience in any compilable programming language is a plus.
A three-day course for programmers, managers, and software assessment/regulation personnel, which presents the principles of high assurance software development and verification using SPARK.
Introduction
- Formal Methods and SPARK
- SPARK Language
- SPARK Tools
Proving Code
- Flow Analysis
- Proving the absence of runtime error
- Specification Language
- Subprogram Contracts
- Type Contracts
Advanced SPARK
- Advanced Proof
- Advanced Flow Analysis
- Pointer Programs
- Auto-active Proof
- State Abstraction
- SPARK Boundary
Other topics can be added upon request.
Students are required to have experience in Ada. If you have no previous experience with Ada: please refer to the Ada Essentials course in order to establish a foundation of knowledge in Ada prior to considering this training.
Through a mix of training, dedicated “mini-mentorship”, and customization work, AdaCore can help you set up a fully functional static analysis workflow on your codebase, adapted to your use case. This course is three or more days, depending on customization.
At a minimum, this course includes the basics:
- Introduction to static analysis concepts
- Applying a standard configuration to your development environment
- SAS tools overview covering rules for coding standards and source code analysis
If customization unique to your workflow is required, please let us know in your AdaCore request. We can tailor this course offering to include such options as:
- Customizing coding standard rules for your development environment
- Updating codebase standards (e.g., from Ada 95 to Ada 2022)
- Generation of reports (and integration into your review workflow using CI) covering coding standard violations, code metrics, and runtime and logic issues
Other topics can be added upon request.
Students are expected to have prior knowledge and familiarity with a compiled language (C, C++, Java…) and knowledge of Ada is a plus.
A current license and installation of GNAT SAS is required.
This course is three or more days and shows how to adapt and configure the GNAT Dynamic Analysis Suite tools so that you can quickly get set up and start seeing results. The course covers
GNATcoverage
- Basic Workflow
- Advanced GNATcoverage Capabilities
- GNATcoverage from GNAT Studio
GNATtest
- Usage
- Controlling GNATtest
- Advanced Testing Techniques
GNATfuzz
- Overview
- Basic Workflow
Other topics can be added upon request.
Students are expected to have prior knowledge and familiarity with a compiled language (C, C++, Java…) and knowledge of Ada is a plus.
A current license and installation of GNAT DAS is required.
This course demonstrates advanced usage of the GNAT Studio Integrated Development Environment (IDE), and how to improve productivity by using more of its advanced features.
GNAT Studio for Editing and Debugging
- Editing features
- Advanced navigation
- Code completion
- Intro to the integrated debugger
- Intro to the integrated builder
GNAT Toolchain and GPR Integration
- Configuration and integration of the GNAT toolchain
- Advanced build capabilities covering GNAT Project Files (GPR), an intro to structure and syntax, using gprbuild, and scenario configuration
- Integrating with Version Control Systems (VCS)
Advanced GNAT Studio
- Customizing your GNAT Studio environment
- Extending GNAT Studio via Python
- GNAT Studio plugins
- Advanced Debugging
Other topics can be added upon request.
Students are expected to have a working knowledge of Ada and some hands-on programming experience.

Unlock Your Team’s Potential
Contact us to learn more about how AdaCore's Enterprise Training can be customized to suit your workflow.


