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, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!spool.mu.edu!uunet!seas.gwu.edu!mfeldman From: mfeldman@seas.gwu.edu (Michael Feldman) Newsgroups: comp.lang.ada Subject: Re: Ada books for undergraduate computer science Message-ID: <3266@sparko.gwu.edu> Date: 4 Jun 91 19:45:38 GMT Article-I.D.: sparko.3266 References: <3241@sparko.gwu.edu> <2322@atlas.cs.nps.navy.mil> <3244@sparko.gwu.edu> <2335@atlas.cs.nps.navy.mil> Reply-To: mfeldman@seas.gwu.edu () Organization: The George Washington University, Washington D.C. List-Id: 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