Re: Suggestions for topics in an Ada course?
- From: John McCormick <mccormick@xxxxxxxxxx>
- Date: Mon, 12 Nov 2007 07:53:10 -0800
I have been teaching Ada to students with C/C++/Java backgrounds for
two decades. I have gotten many of these students hooked on Ada.
Those students who have a strong dislike for software engineering
principles are the least likely to appreciate Ada.
I have some of my current course work on my web site
CS 810:059 Our CS1 course (no programming background assumed)
CS 810:063 A traditional data structures course for people with two
semesters of OO programming in C++/Java under their belt
CS 810:188 A special topics course on concurrent programming with
If they have enough programming skills, I would suggest you teach them
concurrent programming in Ada. Burns and Wellings have a new book out
that I plan to use this Spring - Concurrent and Real-Time Programming
in Ada, Cambridge University Press, 2007, ISBN 978-0-521-86697-2. I
suggest that you avoid GUI or graphics programming. The Ada tools are
simply not up to what they have seen in C++ and Java. This
observation is supported by a keynote speaker I heard at the SIGAda
conference last week. He said that the new en-route air traffice
control software now being installed is about 50% Ada and 50% C++.
The C++ is for the intense graphics needed by a controller. The Ada
is for the parts that can't fail.
I'd be happy to discuss any of my work with you on or off the
I have the luxury of teaching a course next semester that can be about
anything I want. It's a course on "special topics" and the content is at
the discretion of the instructor.
I would like to teach the students some Ada.
The students in question are already competent programmers (in the
college student sense, that is). They have taken two courses in C/C++
and so should be familiar with basic programming concepts, including
concepts like encapsulation, (operator) overloading, and inheritance.
The programs they have worked on so far have been typical programming
exercises given in first courses: nothing large or complicated.
The course I'll be teaching has two hours of lecture per week plus a
three hour "lab" period where the students can work on some sort of
project or assignment in a supervised setting. So there is a fair amount
of time available.
My thought was to cover the basics of Ada, the language, in the first
half (third?) of the course. My expectation is that because of their
background, the students will pick up the basic ideas fairly quickly.
The question becomes: in what direction should I take the rest of the
course? I would like to talk about something that shows the language in
a good light as well as captures student interest. Some kind of
introduction to a GUI library or network library might be good (the
students have never done any GUI or network programming before). Also
because I teach in a computer engineering curriculum, low level device
control applications would be reasonable and appropriate as well.
Anyway, I'm sure I can put something together. However, I thought I
would ask here to see if anyone has some suggestions for libraries,
tools, etc, that I might look at as I prepare materials for next semester.
In case it matters, I'll be using the GNAT compiler.
- Prev by Date: Re: A scary story from the real world.
- Next by Date: Re: Parallel Text Corpus Processing with Ada?
- Previous by thread: Re: Suggestions for topics in an Ada course?
- Next by thread: Re: Suggestions for topics in an Ada course?