mfeldman@seas.gwu.edu (Michael Feldman) (05/31/91)
A Sampling of Ada-Oriented Books for Undergraduate Computer Science May 1991 Michael B. Feldman Department of Electrical Engineering and Computer Science The George Washington University Washington, DC 20052 202-994-5253 mfeldman@seas.gwu.edu This is not an exhaustive list, merely a selected list of books I believe can be successfully used in undergraduate computer science courses. The first six books use Ada as their language of discourse but are "subject-oriented": introductory programming, data structures, file structures, compilers. The others are "Ada books", focusing on the language per se and organized around Ada's structures, not curricular material. Ben-Ari, M. Principles of Parallel and Distributed Programming. (2nd edition) Prentice-Hall 1990. (OS/concurrency) Feldman, M.B. Data Structures with Ada. Prentice Hall, 1985. (data structures) Feldman, M.B., and E.B. Koffman. Ada: Problem Solving and Program Design. Addison-Wesley, September 1991 (intro-level, CS1-oriented) Fischer, C., and R. LeBlanc. Crafting a Compiler. Benjamin Cummings, 1988. (compilers) Miller, N.E. and C.G. Petersen. File Structures with Ada. Benjamin Cummings, 1990. (file structures) Skansholm, J. Ada from the Beginning. Addison Wesley, 1988. (intro-level) Volper, D., and M. Katz. Introduction to Programming Using Ada. Prentice-Hall, 1990. (intro-level) Barnes, J. Programming in Ada. (3rd edition) Addison Wesley, 1989. Booch, G.Software Engineering with Ada. (2nd edition) Benjamin Cummings 1987. Bryan, D.L., and G.O. Mendal. Exploring Ada, volume 1. Prentice-Hall, 1990. Cohen, N. Ada as a Second Language. McGraw Hill, 1986. Lomuto, N. Problem-Solving Methods with Examples in Ada. Prentice-Hall, 1987. Shumate, K. Understanding Ada. (2nd edition) John Wiley, 1989.
erickson@atlas.cs.nps.navy.mil (David Erickson) (05/31/91)
In article <3241@sparko.gwu.edu> mfeldman@seas.gwu.edu (Michael Feldman) writes: >A Sampling of Ada-Oriented Books for Undergraduate Computer Science >May 1991 > >Michael B. Feldman >Department of Electrical Engineering and Computer Science >The George Washington University >Washington, DC 20052 > >202-994-5253 >mfeldman@seas.gwu.edu > >This is not an exhaustive list, merely a selected list of books I believe >can be successfully used in undergraduate computer science courses. The first >six books use Ada as their language of discourse but are "subject-oriented": >introductory programming, data structures, file structures, compilers. The >others are "Ada books", focusing on the language per se and organized around >Ada's structures, not curricular material. I've taken the liberty of adding a few titles to the 2nd list which I have found useful (Bray&Pokrass, and the two Gehani texts). I think the Lomuto text belongs in the first group - it emphasizes problem solving (based on Polya's How to Solve It), and would be a good addition to CS1 courses. Ben-Ari, M. Principles of Parallel and Distributed Programming. (2nd edition) Prentice-Hall 1990. (OS/concurrency) Feldman, M.B. Data Structures with Ada. Prentice Hall, 1985. (data structures) Feldman, M.B., and E.B. Koffman. Ada: Problem Solving and Program Design. Addison-Wesley, September 1991 (intro-level, CS1-oriented) Fischer, C., and R. LeBlanc. Crafting a Compiler. Benjamin Cummings, 1988. (compilers) Lomuto, N. Problem-Solving Methods with Examples in Ada. Prentice-Hall, 1987. Miller, N.E. and C.G. Petersen. File Structures with Ada. Benjamin Cummings, 1990. (file structures) Skansholm, J. Ada from the Beginning. Addison Wesley, 1988. (intro-level) Volper, D., and M. Katz. Introduction to Programming Using Ada. Prentice-Hall, 1990. (intro-level) Barnes, J. Programming in Ada. (3rd edition) Addison Wesley, 1989. Booch, G.Software Engineering with Ada. (2nd edition) Benjamin Cummings 1987. Bray, G., and Pokrass, D. Understanding Ada A Software Engineering Approach Wiley, 1985. Bryan, D.L., and G.O. Mendal. Exploring Ada, volume 1. Prentice-Hall, 1990. Cohen, N. Ada as a Second Language. McGraw Hill, 1986. Gehani, N. Ada: An Advanced Introduction (2nd edition) Prentice Hall, 1989 Gehani, N. UNIX Ada Programming Prentice Hall, 1987 Shumate, K. Understanding Ada. (2nd edition) John Wiley, 1989.
mfeldman@seas.gwu.edu (Michael Feldman) (06/01/91)
In article <2322@atlas.cs.nps.navy.mil> erickson@taurus.cs.nps.navy.mil (David Erickson) writes: > >I've taken the liberty of adding a few titles to the 2nd list which I >have found useful (Bray&Pokrass, and the two Gehani texts). I think the >Lomuto text belongs in the first group - it emphasizes problem solving >(based on Polya's How to Solve It), and would be a good addition to CS1 >courses. I took another look at Lomuto. I like the book a lot, but I don't think the typical freshman could handle the assumptions Lomuto makes about their sophistication in algorithm development and about their programming background - he uses linked lists fairly liberally, for example - this is squarely a CS2 topic in most schools. A CS1 course typically assumes that the student has scarcely seen a computer before. NPS has the luxury of assuming a four-year UG education in its students. Even if they are new to computing, they have the maturity rarely seen (Alas!) in today's first-year college kids. An undergrad book (maybe as part of an algorithms course), yes. A CS1 book, I don't think so. Check the 1984 ACM recommended outline for CS1 (by Koffman, Miller, et al). I think the Bray/Pokrass book is out of print. Too bad. I know the book, but don't think it's available. I use Gehani's "Ada: Concurrent Programming" in my graduate course on that subject (and/or his Concurrent C book, which is similar except for differences in coding language). His "Unix Ada Programming" is almost identical to "Ada: an Advanced Introduction." It's a slightly modified spinoff, in my opinion. I generally like Gehani's style. I used the latter book for a year or so in my graduate comparative languages course (as the Ada book). Surprisingly, most of the students didn't like his style. Maybe it made them think too much. We use Cohen now; they complain less. Mike Feldman
mfeldman@seas.gwu.edu (Michael Feldman) (06/02/91)
In article <SRCTRAN.91Jun1163012@world.std.com> srctran@world.std.com (Gregory Aharonian) writes: > > I don't know if anyone amentioned a Pascal book that is perfect for >conversion to Ada. The book is titled "Pascal: An Introduction to the Art >and Science of Programming" by Walter Savitch (@ UCSD), and published by >Benjamin Cummings. Funny you should mention Savitch. Indeed he is writing an Ada version. I believe it is due for publication in the spring of 1992. There are rumors that another Pascal best-seller, Dale/Weems, is being adapted for Ada; I have no idea of a date, but I think the project may be just getting started, so don't expect it for perhaps 18 months or so. This means that 3 of the best-selling Pascal/CS1 authors (Koffman, Savitch, Dale/Weems) are writing or co-authoring Ada adaptations. Doug Cooper has just done a Modula-2 version of "Oh! Pascal," called, would you believe, "Oh, My! Modula-2." I don't know if we'll see an Ada version of this. All this adaptation of Pascal best-sellers is a good sign, because it shows publisher confidence in the viability of the Ada market, and also the Pascal "big names" will help the Ada books get in the door. By this time next year, 2 of these will be available (Feldman/Koffman, appearing in September, currently in production) and Savitch. All these books will be good CS1, based on tried-and-true pedagogy. My guess is that the Ada community will be pleased with the Ada-ness of these books as well. None are "quickie" conversions. So much for CS1. In the CS2 area, we will have an Ada adaptation of Webre/Stubbs (from Cal Poly SLO), who've been teaching lots of Ada there, and whose Pascal and Modula-2 data structures books have done well. Also, John Beidler (Univ. of Scranton) is finishing up an Ada adaptation of his very nice M2 stuff. I think it's due soon. There's also that Feldman thing, which you can get now and which will do in a pinch :-) It would be nice to see an Ada adaptation of Dale/Lilly, too. I don't know whether this will happen, but you never know... All us authors talk to each other a lot, especially at SIGCSE meetings. We compete but we are friendly competitors. It has taken courage for publishers to dig into Ada this way - take it from one who's had many long and agonizing discussions with editors... Mike
srctran@world.std.com (Gregory Aharonian) (06/02/91)
I don't know if anyone amentioned a Pascal book that is perfect for conversion to Ada. The book is titled "Pascal: An Introduction to the Art and Science of Programming" by Walter Savitch (@ UCSD), and published by Benjamin Cummings. The book is for an introductory course on programming, is well written, has many extras (sections in the book specific to the art of debugging, an automatic test generator available for preparing tests based on the chapters in the book). If someone could convince the publisher to come out with an Ada version, you would have an excellent freshman level book for Ada. In fact, there are probably other Pascal books that have a well refined structure for teaching. Gregory Aharonian Source Translation & Optimization
sakkinen@jyu.fi (Markku Sakkinen) (06/03/91)
In article <3246@sparko.gwu.edu> mfeldman@seas.gwu.edu () writes: > ... >Dale/Weems) are writing or co-authoring Ada adaptations. Doug Cooper >has just done a Modula-2 version of "Oh! Pascal," called, would you >believe, "Oh, My! Modula-2." I don't know if we'll see an Ada version of this. Hm, check whether he has already registered the name "Ah, Madam! Ada" :-) > ... Markku Sakkinen Department of Computer Science and Information Systems University of Jyvaskyla (a's with umlauts) PL 35 SF-40351 Jyvaskyla (umlauts again) Finland SAKKINEN@FINJYU.bitnet (alternative network address)
mfeldman@seas.gwu.edu (Michael Feldman) (06/04/91)
In article <1991Jun3.104718.3124@jyu.fi> sakkinen@jytko.jyu.fi (Markku Sakkinen) writes: >Hm, check whether he has already registered the name >"Ah, Madam! Ada" :-) At the SIGCSE conference in March, we were joking that Cooper's next book would be called "Oh, S**T! Scheme!" Mike Feldman PS - I can confirm the existence of a Dale/Weems "port" to Ada. I presume the co-author will identify him/herself at the right moment (there are still some negotiations to finsh). I know the person. I think the Ada community will like the result. Mike
erickson@atlas.cs.nps.navy.mil (David Erickson) (06/04/91)
In article <3244@sparko.gwu.edu> mfeldman@seas.gwu.edu () writes: >I took another look at Lomuto. I like the book a lot, but I don't think >the typical freshman could handle the assumptions Lomuto makes about their >sophistication in algorithm development and about their programming >background - he uses linked lists fairly liberally, for example - this >is squarely a CS2 topic in most schools. A lot depends on the level of students taking CS1, but linked lists are introduced in every CS1 course and text I am familiar with. Lomuto also emphasizes recursion, which is normally introduced in CS1. At some point, we expect our students to internalize these techniques, and add them to their repertoire of problem-solving methods. Whether that happens in CS1 or 2 depends on the students and the instructor. At any rate, I think that Lomuto's text is a good supplementary text, and may help catalyze that process. >A CS1 course typically assumes that the student has scarcely seen a computer >before. NPS has the luxury of assuming a four-year UG education in its >students. Even if they are new to computing, they have the maturity rarely >seen (Alas!) in today's first-year college kids. An undergrad book (maybe as >part of an algorithms course), yes. A CS1 book, I don't think so. Check the >1984 ACM recommended outline for CS1 (by Koffman, Miller, et al). >Mike Feldman -Dave Erickson
mfeldman@seas.gwu.edu (Michael Feldman) (06/05/91)
In article <2335@atlas.cs.nps.navy.mil> erickson@taurus.cs.nps.navy.mil (David Erickson) writes: >A lot depends on the level of students taking CS1, but linked lists are >introduced in every CS1 course and text I am familiar with. Lomuto >also emphasizes recursion, which is normally introduced in CS1. At some >point, we expect our students to internalize these techniques, and add >them to their repertoire of problem-solving methods. Whether that >happens in CS1 or 2 depends on the students and the instructor. At >any rate, I think that Lomuto's text is a good supplementary text, and >may help catalyze that process. Well, your students must be better than mine. I've just checked my ACM CS1 curriculum guide (Koffman, Miller, and Wardle, CACM Oct. 84, p. 998 ff.) which is the nearest thing to a "standard" curriculum. True, it's showing its age, but is still used as a guide by authors and editors. This paper does _not_ recommend teaching recursion or linked structures. (I'm thinking about typing the whole list of topics in at some point, but won't bore you all with it now). CS1 students get "up to" using arrays, simple sorting and searching, and arrays of records, in the data structures area. Indeed every Pascal-oriented CS1 book I've seen contains recursion and linked structures - at the end. Koffman's Pascal 3rd edition and Turbo Pascal 2nd edition books discuss this in the preface, noting that the book "now" (late editions) includes "most of the recommended CS2 topics." Dale/Weems introduce linked lists 1 chapter from the end, again as something advanced students can move into. Their recursion chapter is divided in two: half using only simple types, half using structured types. In outlining the Feldman/Koffman collaborative effort, we both agreed that this stuff is reached by very few courses; the editor agreed that we should include a recursion chapter but _not_ get into linked structures; only one of ten reviewers in detail of the outline and manuscript suggested that we put linked structures back, and that person doesn't teach CS1. Pascal (even with units) is a sufficiently small language that a single book can easily cover all of it. So there's no point in gratuitously leaving a topic out, even if most students will never get to it in one semester. An Ada book intended for students at this level _must_ leave some things out, else when you add in the pedagogy the book would weigh a ton and cost a mint. We decided that unconstrained array types and simple generics were well worth putting in, but that derived types and related things, linked structures, and tasking are topics best left to the "next" book in the curriculum. Reviewers - who knew both their Ada and their realistic CS1 classes - had no disagreement with these design choices (except for thte one person mentioned above). I hope this doesn't sound defensive; I just thought I'd respond with some personal experience. The ins and outs of book writing are - no doubt - interesting to only a few folks on the net, so I'll be glad to carry this on by e-mail. Mike