Open source training has been getting a lot of publicity lately with organizations like the MIT OpenCourseWare and Khan Academy leading the charge. I have even set up a KA-Lite site at a local school that replicates the Khan Academy videos and lessons on the local server. This is because many of these platforms deliver video content and having a dozen or more students streaming video can bring an Internet link to its knees compared to a gigabit Ethernet link within the school.
- Ada 2012: The Joy of Contracts
- Ada Offers Advantages Over C And C++
- C Programmers, Time To Try Ada
- New Java ME Targets IoT Embedded Devices
- Ada Gets Eclipsed IDE
MIT and others address some programming languages but Ada tends to be one that gets left out. I have written and recommended Ada in the past (see C Programmers, Time To Try Ada) because I think that it is a great platform for embedded development. It is better than C and even C++ in many ways except that most schools teach C and C++ or even Java although Java is getting more of a push in the embedded space again (see New Java ME Targets IoT Embedded Devices).
So what do you do if you want to learn Ada? Well check out the free AdaCore University, supported by AdaCore of course. It is free, and, like most of the open source training sites, it is covered by the Creative Commons license.
Like most video-based training platforms there is the player (Fig. 1). The PowerPoint slides are available as a download too. I find the slides to useful for paging back and forth while watching and listening to the presentation.
At the end of each session is an interactive quiz (Fig. 2). There is a description of the problem or issue and then the user selects an area where the problem occurs. The approach uses a simple interface but it works.
The training sessions address Ada but they are designed for testing on a real system. The sessions utilize the GNAT Programmable Studio (GPS) IDE (Fig. 3). GPS can be downloaded for free from Adacore Libre site. This has a number of other free and commercial downloads including an Eclipse IDE plug-in.
The training sessions and sample applications include the usual data manipulation but graphics do come into play. The bouncing ball application (Fig. 4) is only one of a growing number of graphical examples. The source code is available for modification and enhancement. Functionally there will be no surprises for those familiar with graphics primitives.
At this point, the overview winds up with 10 bouncing balls. The training sessions address the basics from types, arrays to subprograms and packages. More will be added in the future but this is a good starting point. I am hoping that Ada's contract support (see Ada 2012: The Joy of Contracts) will be one of the next items added. Starting with good programming practices is the best way to learn a language.
I suspect that SPARK will be a future addition as well. SPARK is to Ada as MISRA C is to C, sort of. SPARK is much more. It is a subset of Ada that can be used for system proofs. That tends to be rather important when one is designing flight systems or powerplant control systems. Another is the Ravenscar profile.
Until then, the Technical Papers section contains these papers that I recommend.
- Ada for C++ or Java Developer
- Safe and Secure Software: An Invitation to Ada 2012
- Ada 2012 Rationale
- High-Integrity Object-Oriented Programming in Ada
You may not wind up using Ada in a production environment. Switching an organization from C to any language let alone Ada is not easy although the long term benefits can be significant.
So if making robust, reliable and safe programs is something you need to do then check out the courses at AdaCore University.