1 Introduction
Welcome to Ada Skills Sharpened. You are a scientist, engineer or a computer science enthusiast who is looking to get an exposure to Ada. Perhaps with some prior programming experience in C or C++ or maybe Python. Ada is a great choice - another tool to add to your arsenal. It may (or in most cases may not) be a language in your daytime job. Does not matter. It is not the syntax or the IDE that is going to be beneficial to you. It is the discipline of engineering software with extreme precision, with proper separation of specifications and implementation, the strong data typing and the depth of help provided behind the scenes by the compiler and the runtime that you are going to take away.
The emphasis in this book will be in doing. Design and development projectlets, to meet clear, simple objectives will be outlined with annotations on the programming language features that can be used to stitch a solution.
A projectlet is a small project that can be realized in a very short time. The functions can contribute to your personal library. Arguably with many limitations and perhaps not quite ready for worldwide application. But the techniques you learn will contribute to building robust tools given the requisite resources.
The learnings are not very specific to Ada. The specifications have been implemented in other programming languages as a learning method. Go, C#, Python are some of the other languages that have been used. In my professional life, I used to assign a small selection of these projectlets to new team members to sharpen their skills and to demonstrate proficiency before being assigned more challenging tasks.
I invite you to exercise the sample code provided, make suggested improvements and even tackle the stretch projects. If nothing else, it is a lot of fun. The sample solutions are not necessarily without issues; not the best way to get the results very likely. They can all use improvements. It would delight me no end to receive criticisms and even better an improved solution. Docker containers are provided as appropriate for even bolder experimentation.
1.1 Reference Implementation
All the annotated code fragments in this book can be accessed from one of the following repositories:
The book is accessible in multiple forms:
https://rsrinivasan.quarto.pub/techadabook/ |
https://github.com/RajaSrinivasan/assignments/blob/master/Ada-Skills-Sharpened.pdf |
Comments, reviews, corrections may be submitted directly in the repositories or emailed to me at rsrinivasan@alumni.iitm.ac.in.