Learn Ada At The Online University

Sept. 25, 2013
The AdaCore University is a great way to learn Ada and its free. That includes the GPS IDE and Ada compiler.

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.

Related Articles

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.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!