From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!watserv1!watmath!att!occrsh!uokmax!apple!usc!zaphod.mps.ohio-state.edu!rpi!uupsi!sunic!lth.se!newsuser From: collberg@dna.lth.se (Christian S. Collberg) Newsgroups: comp.lang.ada Subject: Ada for undergrads - summary. Message-ID: <1990Jun3.214759.15529@lth.se> Date: 3 Jun 90 21:47:59 GMT Sender: newsuser@lth.se (LTH network news server) Reply-To: collberg@DNA.LTH.Se (Christian S. Collberg) Organization: Computer Science, Lund University, Sweden List-Id: The following is a summary of the responses I got to my message regarding the use of Ada as a teaching language for undergraduates. I haven't done much editing, and include the messages pretty much the way I got them. Thanks to all who responded. Chris Collberg collberg@dna.lth.se -------------------------------------------------------------------------------- From: gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) At Waterloo, our main second-year course uses Ada. I have tried the following: Ada reference manual Barnes, "Programming in Ada" Watt, "Ada language and methodology" None of the above is perfect. Barnes suffers from lack of complete worked examples. Watt has some examples, is better at general design principles, but doesn't necessarily explain language features in enough detail. The LRM offends about half the class, but the other half like it, in conjunction with lectures that give motivation and show how the pieces fit together. Some of the 'intro to programming with Ada' look interesting, but wouldn't be appropriate for the course we teach. Similarly, I often show Gehani's book to my colleagues who want a tour through Ada, but it doesn't quite fit as a text for this course. There is a shareware ADA_TUTR program [Software Innovations Tech., 1083 Mandarin Dr. NE, Palm Bay, FL ... (407)951-0233]. I have made this informally available, and it appears reasonable, but I haven't expended the effort yet to decide whether we are going to start using it as an aid to the course. -- Gordon V. Cormack CS Dept, University of Waterloo, Canada N2L 3G1 gvcormack@waterloo.EDU gvcormack@uwaterloo.CA gvcormac@water.BITNET >From mfeldman@seas.gwu.edu Tue May 15 05:56:17 1990 We have taught Ada in a data structures and algorithms course since 1984. Since 1985 we have used "Data Structures with Ada" by Michael Feldman (yes that's me, sorry to seem like I'm pushing my own book). You can get it from Prentice Hall. I'd be glad to answer questions you may have about it. [...] Write to Carl Brandon (carlb@eleazar.dartmouth.edu) - he is the SIGAda education chair and conducted the survey about 2 years ago. I don't think there's anything more recent. Prof. Michael Feldman Department of Electrical Engineering and Computer Science The George Washington University Washington, DC 20052 +1-202-994-5253 mfeldman@seas.gwu.edu --------------------------------------------------------------------------- From: karl@grebyn.com (Karl A. Nyberg) I don't teach, but I have some thoughts on what I've heard. Norm Cohen's Ada As A Second Language, from Prentice-Hall, I think. My version of the Annotated Ada Reference Manual, complete with ISO annotations. I can send you literature on my book, including educational discounts, if you'll send me a mailing address. -- Karl -- -- Karl A. Nyberg karl@grebyn.com Grebyn Corporation +1-703-281-2194 Post Office Box 497 Vienna, VA 22183-0497 USA -------------------------------------------------------------------------------- >From ken@minster.york.ac.uk Wed May 16 10:57:40 1990 John Barnes' book (third edition) Ken -- Ken Tindell UUCP: ..!mcsun!ukc!minster!ken Computer Science Dept. Internet: ken%minster.york.ac.uk@nsfnet-relay.ac.uk York University, Tel.: +44-904-433244 YO1 5DD UK -------------------------------------------------------------------------------- From: xanadu@ada2.crd.ge.com (Rick Conn) I teach a Software Engineering with Ada course at the University of Cincinnati, and I've found the combination of the Ada_TUTR shareware program (available in the ASR) and "Rendezvous with Ada: A Programmer's Introduction" by David Naiditch (published by Wiley, 1989) to be a useful supplement. Both the program and the book cover the same topics in almost exactly the same order, and they supplement each other nicely. They are clearly to be used to teach the language only, but since my course is on SE with Ada, my main objective is the SE part, and students lacking in Ada can study these on the side as we proceed through the course. With this approach, by the time SE II comes around, all the Ada questions are gone, and we can explore topics such as reuse with Ada in depth. Rick -------------------------------------------------------------------------------- From: kassover@jupiter.crd.ge.com (David Kassover) In article <1869@sparko.gwu.edu> mfeldman@seas.gwu.edu () writes: [much good and interesting text on teaching of Ada deleted] |Really the best way to teach Ada to undergraduates is to skip the |intermediate step of Pascal and plunge in, right from CS1. The books |and the compilers are getting there. A problem we will face in |dealing with _good_ freshmen is that many of them will be able to |place out of CS1 through having taken an AP course in high school |and scored high on the AP exam. AP courses are almost always Pascal. |Suggestions for how to deal with these? Generate a good, stiff, set of problems (data structures, algorithms, software tools, software engineering issues), and insist that the implementations, for the purposes of the course, be written in an assembler or FORTRAN-66. I believe this will separate the good programmer/analysts from the "neat-features-of-the-language" selectors. To some extent, anyway. -- David Kassover "Proper technique helps protect you against kassover@ra.crd.ge.com sharp weapons and dull judges." kassover@crd.ge.com F. Collins -------------------------------------------------------------------------------- From: cathy@three.MV.COM (Cathy Segedy) May I make a suggestion? If you are going to teach Ada, don't teach it as 'just like Pascal except for....' From what I've heard, courses like this don't usually have the time to get to the 'except for..' parts, leaving the students with very little real knowledge. This is, by the way, not first hand experience. I saw little reason to take a course in it after helping write a compiler for it... cathy segedy cathy@three.mv.com (formerly 3letter) -------------------------------------------------------------------------------- From: mfeldman@seas.gwu.edu (Mike Feldman) In article <310@three.MV.COM> cathy@three.MV.COM (Cathy Segedy) writes: > >May I make a suggestion? If you are going to teach Ada, don't teach it as >'just like Pascal except for....' From what I've heard, courses like this >don't usually have the time to get to the 'except for..' parts, leaving the >students with very little real knowledge. This is, by the way, not first I will second Ms. Segedy's suggestion. I think the most important thing we can do is to know our audience. I teach Ada quite regularly to undergrads, grad students who haven't worked in industry, grad students who are currently in industry, and industry folks in 5-day seminars. I find that the more experienced students (rather, the ones who know other languages) appreciate the _analogies_ between parts of Ada and parts of other languages. A Pascal-er can see lots of Pascal in Ada, a Fortran-er can see aspects of Fortran, exceptions are like in Pl/1 but different, etc. etc. We in the Ada community often make the mistake of over-selling Ada as something NEW, UNIQUE, REVOLUTIONARY!! My experience with practitioners is that they are more open-minded to what is _really_ new in Ada after they understand that Ada is a nice integration of many things that are tried and true in other languages. This is the best way to counter the still-prevalent notion in industry that Ada is "risky" and "unproven." (It does require that the teacher be experienced enough with other languages to speak intelligently about them; it also helps to take a balanced and non-religious approach to all these languages!) Most of Ada is very well proven indeed; readers of this group know very well that many folks dump on Ada for being too _conservative_ to adopt each new thing that comes down the pike. It is no criticism of, say, inheritance, to point out that it scarcely existed in 1979 when the first Ada draft was published, and that Smalltalk was a proprietary (and still experimental) Xerox thing in 1983 when 1815-A was adopted! The point is that Ada is a rather conservative and that this is generally a good thing because most of its features are tried, true, compilable, executable, etc. So saying "this part of Ada was cribbed from Pascal (PL/1, C, Fortran...)" gives practitioners a frame of reference in which to understand where Ada came from, that it wasn't just cut from whole cloth. In my experience the approach works like a charm and disarms many of the criticisms right at the outset. Well, it turns out this works with students as well. Especially if we are doing Ada as a _second_ language, after Pascal. In fact, the "inner syntax" of Ada is so close to Pascal (but better IMHO) that I don't bother to teach it at all. I distribute a set of about 50 "little" programs that introduce the inner syntax and the IO libraries, tell 'em to go compile them and report back which ones don't work (1/3 or so of them are booby-trapped with compilation errors). Then we can get on, quickly, with what Ada is _really_ about. (Packages, generics, unconstrained arrays, tasking, exceptions, repspecs,...) (If anyone would like a copy of these programs, send me e-mail, and let me know if you can unpack a Unix shell archive). Really the best way to teach Ada to undergraduates is to skip the intermediate step of Pascal and plunge in, right from CS1. The books and the compilers are getting there. A problem we will face in dealing with _good_ freshmen is that many of them will be able to place out of CS1 through having taken an AP course in high school and scored high on the AP exam. AP courses are almost always Pascal. Suggestions for how to deal with these? Prof. Michael Feldman Department of Electrical Engineering and Computer Science The George Washington University Washington, DC 20052 +1-202-994-5253 mfeldman@seas.gwu.edu --------------------------------------------------------------------------- From: westley@corsair.uucp (Terry J. Westley) In article <1869@sparko.gwu.edu> mfeldman@seas.gwu.edu () writes: > I teach Ada quite regularly to undergrads, >grad students who haven't worked in industry, grad students who are >currently in industry, and industry folks in 5-day seminars. I find >that the more experienced students (rather, the ones who know other >languages) appreciate the _analogies_ between parts of Ada and parts of >other languages. A Pascal-er can see lots of Pascal in Ada, a Fortran-er >can see aspects of Fortran, exceptions are like in Pl/1 but different, >etc. etc. > >We in the Ada community often make the mistake of over-selling Ada as >something NEW, UNIQUE, REVOLUTIONARY!! My experience with practitioners >is that they are more open-minded to what is _really_ new in Ada after >they understand that Ada is a nice integration of many things that are >tried and true in other languages. yes, Yes, YES. I don't have as much experience teaching Ada as does Prof. Feldman, but in teaching 5-day courses to "industry folks" and "practitioners," I have come to the same conclusion. I get so many students who, when the light bulb really goes on, will come to me and exclaim over some feature that is "just like" such and such a language, only better. The "better" is usually that it can be used in combination with other features of the language to make the sum greater than the parts. I think I've really accomplished something when this happens. >Really the best way to teach Ada to undergraduates is to skip the >intermediate step of Pascal and plunge in, right from CS1. The books >and the compilers are getting there. A problem we will face in >dealing with _good_ freshmen is that many of them will be able to >place out of CS1 through having taken an AP course in high school >and scored high on the AP exam. AP courses are almost always Pascal. >Suggestions for how to deal with these? This is an interesting problem. I don't have a suggestion. If I could get a cheap enough Ada compiler on the Mac (that can access the Toolbox, etc.) for my 12-year-old son who knows BASIC and HyperTalk, I'd get it instead of THINK C. Then, at least, I wouldn't contribute to the problem. Meridian and RR, are you listening? Terry J. Westley Arvin/Calspan Advanced Technology Center P.O. Box 400, Buffalo, NY 14225 acsu.buffalo.edu!planck!hercules!westley ---------------------------------------------------------------------------------