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.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcvax!unido!tub!cabo From: cabo@tub.UUCP Newsgroups: comp.lang.ada Subject: Re: Ada Education and Training - Part 3 - (nf) Message-ID: <54000001@tub.UUCP> Date: Wed, 6-May-87 04:56:00 EDT Article-I.D.: tub.54000001 Posted: Wed May 6 04:56:00 1987 Date-Received: Sun, 10-May-87 05:41:18 EDT References: <115097433@ucbvax.UUCP> Nf-ID: #R:ucbvax:115097433:tub:54000001:000:3023 Nf-From: tub!cabo May 6 09:56:00 1987 List-Id: In an otherwise very reasonable article in comp.lang.ada, ucbvax!EBERARD (probably wrong address) writes: () [...] K&R stresses the age old thinking which () says that students of software must see, write, and execute code () before anything else will be meaningful. Booch, on the other hand, () stresses that students should know what they are doing before they () attempt to write code. The K&R approach has its roots in software () antiquity. K&R is a book about a programming language (a good one at that, by the way). Grady Booch's book is a book about software design in a programming language. These are two entirely separate subjects. You can learn software engineering methods without learning the syntax of the Ada language at the same time, and you can learn programming in C without simultaneously learning software engineering methods. A book that both teaches software engineering and a programming language seems to assume that the intended audience still needs to learn both subjects. Probably a reasonable assumption for many people who are now learning Ada. Even more so in that Ada does have a few fine points that only can be unleashed in conjunction with knowledge about software engineering. For the C language novice in 1978 (when K&R was written), such an assumption would have been invalid; I would have been bored if K&R had placed more emphasis on the methods I already had been comfortable with in languages like Simula etc. that I had used before. Its successor, the book about the C++ language (Bjarne Stroustrup 1986) still assumes some basic knowledge about software engineering when giving rules of thumb for the use of C++. The Ada Reference Manual (which is comparable to the reference sections of both K&R and BS) also does not give any guidelines for design and testing methods (and we all agree it should not do that), but if you know anything about design you immediately understand what packages and all these Ada concepts are about, although these are complex enough that a good text will help you use the right concept at the right time. For the software engineering novice (as opposed to the C language novice that K&R addresses), it is an interesting issue (e.g. see comp.edu) whether some early experience in simple programming helps understand software engineering concepts later or just helps people to start programming without design. For university education, I still prefer first to learn to put letters on paper (i.e. programming) before learning to write entire books (i.e. software design). However, just being able to put letters on paper does not make you a writer (i.e. just being able to program does not make you a programmer). -- Carsten Bormann, Communications and Operating Systems Research Group Technical University of Berlin (West, of course...) "Das Problem ist nicht, wie man den Ansturm neuer Tendenzen aufhaelt, sondern, wie man die rechten Loesungen dafuer findet" -- Walter Gropius