AdaCore: Build Software that Matters
I Stock 2160033374
Learn with the Experts_

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 Today
Training_

Explore Our Training Programs

All of our expert-led courses can be conducted remotely or on-site and customized to your requirements.

  • Ada Essentials
  • Ada Advanced Topics
  • Rust Essentials
  • SPARK Essentials
  • GNAT Static Analysis Suite
  • GNAT Dynamic Analysis Suite
  • Hands-On with GNAT Studio
  • 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.

    Binary code

    Unlock Your Team’s Potential

    Contact us to learn more about how AdaCore's Enterprise Training can be customized to suit your workflow.