Ada is a structured, statically-typed, imperative, and object-oriented high-level programming language, extended from Pascal and other languages. It has built-in language support for design by contract, extremely strong typing, explicit concurrency, tasking, synchronous message passing, protected objects, and non-determinism.
| # | ADA | Topic | Description |
|---|---|---|---|
| PHASE 1: FOUNDATIONS | |||
| 01 | Overview | What Ada is, where it runs, and why it matters. | |
| 02 | Setup & Toolchain | Install GNAT, manage projects with Alire and GPRbuild. | |
| 03 | Curriculum | What will you learn in this series about Ada. | |
| 04 | Syntax | Lexical elements, declarations, and the spec/body split. | |
| PHASE 2: BASIC CONSTRUCTS | |||
| 05 | Data Types | Strong typing, scalar types, ranges, and derived types. | |
| 06 | Expressions | Simple and complex expressions, operators, and precedence. | |
| 07 | Conditionals | if/elsif selectors and the case statement. | |
| 08 | Loops | for, while, exit and next — repetition in Ada. | |
| 09 | Strings | Fixed, bounded, and unbounded string handling. | |
| 10 | Enumerations | Enumeration types, ordering, and representation. | |
| PHASE 3: DATA & LOGIC | |||
| 11 | Arrays | Constrained and unconstrained arrays, attributes, slicing. | |
| 12 | Records | Records, variants, and discriminants. | |
| 13 | Access Types | References, allocators, and Ada's memory model. | |
| 14 | Subprograms | Procedures, functions, parameters, and overloading. | |
| 15 | Input/Output | Text_IO, files, and streams. | |
| PHASE 4: MODULAR SYSTEMS | |||
| 16 | Packages | Specification, body, private parts, and child packages. | |
| 17 | Exceptions | Raising, handling, and propagating exceptions. | |
| 18 | Generics | Generic packages and functions, formal parameters. | |
| 19 | Visibility | use clauses, renames, and scope rules. | |
| PHASE 5: ADVANCED PARADIGMS | |||
| 20 | OOP | Tagged types, interfaces, and dynamic dispatch. | |
| 21 | Contracts | Pre/postconditions, aspects, and a taste of SPARK. | |
| 22 | Tasking | Tasks, entries, rendezvous, and protected objects. | |
| 23 | Standard Library | Containers, numerics, and the Ada environment. | |
| PHASE 6: PRACTICE & DEMOS | |||
| 24 | Lab Examples | Runnable single-file Ada demos, viewed in the code viewer. | |
| 25 | Study Projects | Larger multi-file worked programs. | |
| 26 | Open Source Projects | Interesting open source Ada projects worth studying. | |
| PHASE 7: REFERENCE | |||
| 27 | References & Resources | Free Ada resources: standards, tutorials, tools, community. | |
Verified free resources to keep learning Ada after the track — the full categorized list lives on the References & Resources page.
| Resource | What it is | Best for |
|---|---|---|
| learn.adacore.com | AdaCore's free interactive courses: Ada 2012/2022, SPARK, and embedded | Structured learning straight from the language vendor |
| Ada 2022 Reference Manual | The authoritative language standard, free online | Exact semantics of every construct |
| Ada Programming (Wikibook) | Community-maintained, comprehensive free book with examples | A second explanation of any topic |
| Alire | The Ada package manager and crate index | Starting real projects with dependencies |
| forum.ada-lang.io | The active Ada community forum (Ada Language Discord & Discourse) | Asking questions and reading real discussions |
| Rosetta Code — Ada | Idiomatic Ada solutions to hundreds of small tasks | Comparing Ada against languages you already know |