Learn Ada At The Online University

Learn Ada At The Online University

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.

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.

Figure 1. The AdaCore University training sessions are video based.

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.

Figure 2. The interactive quiz asks you to find issue within sample Ada source code.

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.

Figure 3. The GPS IDE is simpler than using Eclipse with the GNAT plug-in. Both are free downloads.

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.

Figure 4. The bouncing ball application provides visual feedback highlighting Ada's ability to handle visual embedded chores.

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.

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.

 

Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish