comp.lang.ada
 help / color / mirror / Atom feed
* Ada 95 Books for Undergraduate Teaching
@ 1996-05-28  0:00 Kenneth Mays
  1996-06-01  0:00 ` Michael Feldman
  1996-06-03  0:00 ` Richard A. O'Keefe
  0 siblings, 2 replies; 7+ messages in thread
From: Kenneth Mays @ 1996-05-28  0:00 UTC (permalink / raw)



These books are available through Addison-Wesley. I evaluated a 
choice between "Software Engineering with Ada, 3rd Edition" and a few 
other books. No other book written before 1994 was considered since I 
am looking for Ada 95 related books. The BEST books for CS1 and CS2, 
in my opinion, are these two books from Dr. Michael Feldman
and one from Elliot Koffman (one of the best Computer Science 
educators in America).

Computer Science #1 (Beginning Programming Course)
--------------------------------------------------

Ada 95: Problem Solving and Program Design, Second Edition
by Dr. Michael Feldman and Elliot Koffman
ISBN: 0-201-87009-6, softcover, 1996

I consider this the best book is teaching both the beginning and 
experienced programmer about Ada 95. The strength comes from the 
book's supplement of Ada source code and numerous examples. The books 
covers all topics usually taught in expensive teaching seminars. I 
give this book four out of five stars only because it didn't come 
with a compiler (which is a strong point with any student (see AET 
IntegraAda/386 or Visual Ada95 at http://www.pcada.com)).


Computer Science #2 (Advanced Programming Course)
--------------------------------------------------

Software Construction and Data Structures with Ada 95
by Michael Feldman
ISBN: 0-201-88795-9, softcover, 1997 (Available June 96 from Addison-Wesley)

This is the perfect book for an advanced course in Ada following Dr. 
Feldman's first book. I considered this more of a graduate level book 
in consideration to the Data Structures books for Pascal. I research 
the curriculum of the John Hopkins Whiting School of Engineering 
Computer Science courses to ensure this book could meet certain 
standards. I gave it five stars since it is the first book, to my 
knowledge, to deal with Ada 95 using Data structures at a simplified 
level.


Computer Science Seminar (Advanced Programming Course)
------------------------------------------------------

File Structures with Ada
by Nancy Miller and Charles Peterson
ISBN: 0-8053-0440-1,600 pages, 1990 (Benjamin/Cummings - Addison-Wesley)

This is my second choice in Advanced Ada courses. I consider this the 
best book on file structures using Ada 83 (which you can modify to 
fit Ada 95 if needed). The book is better off as an advanced course 
not in line with the first two books I mentioned. Books in this 
related style are better as seminar books for senior level teaching 
or advanced courses (definitely not basic/beginning undergraduate 
courses). I give this book five stars since its great on giving you a 
full foundation on file structure Ada programming.

By the way, its an old book (1990) but doesn't need a lot of 
improvement other than relation to Ada 95.


Note: For most educators, I believe the Ada 95 books need the same 
quality generated from books on Structured COBOL/Pascal/C++. It seems 
horrid that such a great language like Ada 95 is polluted by books 
that are more crytic to the learning student than experienced 
programmer. Suggest a new generation of books that focus on well used 
free compilers or student versions of commercial compilers (please 
include CDROMS with source code to your work, examples (with 
answers), and references on specialized topics). 

What is hurting Ada 95 is the availability of the compilers 
(especially tasking Ada 95 compilers) and quality books. Once we get 
over that first hurdle, then I think all of us will be better off.

Also, your students are in competition with C++ (if we are sticking 
with Software Engineers). If they program IBM clones using 
DOS/Windows, they needed to know about MFC, API, DLL, DPMI, and other 
PC related topics in use by MicroSoft's Visual C++, VIsual Basic, 
Visual Foxpro, and even Borland Delphi. Make sure the compiler can 
use such things as tasking since it only causes problems down the 
road. Just an honest opinion.


Ken (kmays@msn.com)




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
  1996-05-28  0:00 Kenneth Mays
@ 1996-06-01  0:00 ` Michael Feldman
  1996-06-03  0:00 ` Richard A. O'Keefe
  1 sibling, 0 replies; 7+ messages in thread
From: Michael Feldman @ 1996-06-01  0:00 UTC (permalink / raw)



In article <00001a73+00002d54@msn.com>, Kenneth Mays <KMays@msn.com> wrote:

And I thank Kenneth from the bottom of my heart for these GREAT plugs.:-)

>Ada 95: Problem Solving and Program Design, Second Edition
>by Dr. Michael Feldman and Elliot Koffman
>ISBN: 0-201-87009-6, softcover, 1996

>I consider this the best book is teaching both the beginning and 
>experienced programmer about Ada 95. The strength comes from the 
>book's supplement of Ada source code and numerous examples. The books 
>covers all topics usually taught in expensive teaching seminars. I 
>give this book four out of five stars only because it didn't come 
>with a compiler (which is a strong point with any student (see AET 
>IntegraAda/386 or Visual Ada95 at http://www.pcada.com)).

Starting in August, this book will be available with a bundled
Intermetrics/Thomson Ada 95 compiler. This will be similar to the
popular ActivAda for Windows, but handling Ada 95. Contact AW for
details; suggested list price about $70. for the book/CD combo.
(The book will, of course, also continue to be available separately.)

And GNAT for nearly all platforms is, of course, available on the
net and on the Walnut Creek CD, though it's not bundled with the book.

>Software Construction and Data Structures with Ada 95
>by Michael Feldman
>ISBN: 0-201-88795-9, softcover, 1997 (Available June 96 from Addison-Wesley)

>This is the perfect book for an advanced course in Ada following Dr. 
>Feldman's first book. I considered this more of a graduate level book 
>in consideration to the Data Structures books for Pascal. I research 
>the curriculum of the John Hopkins Whiting School of Engineering 
>Computer Science courses to ensure this book could meet certain 
>standards. I gave it five stars since it is the first book, to my 
>knowledge, to deal with Ada 95 using Data structures at a simplified 
>level.

We use it in our CS2-level course, or rather, we've refined the notes
that became the book, in that course. The book itself is being printed
and bound as we speak, and will be in stock at AW on June 17. See
my home page for a pointer to the prefaces and TOCs for both books, or
check AW's web site at http://www.aw.com/cseng. All the programs from 
the CS1 book (about 200) are online at AW and here at GW, and the programs 
from the data structures book will be online by the time the book hits the
streets.

Thanks again for the nice plugs.

>File Structures with Ada
>by Nancy Miller and Charles Peterson
>ISBN: 0-8053-0440-1,600 pages, 1990 (Benjamin/Cummings - Addison-Wesley)

I've used this book with success several times in a junior-level
file structures course, and will continue to use it.

>This is my second choice in Advanced Ada courses. I consider this the 
>best book on file structures using Ada 83 (which you can modify to 
>fit Ada 95 if needed). The book is better off as an advanced course 
>not in line with the first two books I mentioned. Books in this 
>related style are better as seminar books for senior level teaching 
>or advanced courses (definitely not basic/beginning undergraduate 
>courses). I give this book five stars since its great on giving you a 
>full foundation on file structure Ada programming.

Yes, it teaches classical sequential/direct/ISAM/B-tree structures
in a very nice way, with specific reference to Ada's generic binary
file packages. Much of the book is language-independent and quite a
nice job for its genre.

>By the way, its an old book (1990) but doesn't need a lot of 
>improvement other than relation to Ada 95.

I agree and hope that AW and the authors will revise it.

>Note: For most educators, I believe the Ada 95 books need the same 
>quality generated from books on Structured COBOL/Pascal/C++. It seems 
>horrid that such a great language like Ada 95 is polluted by books 
>that are more crytic to the learning student than experienced 
>programmer. Suggest a new generation of books that focus on well used 
>free compilers or student versions of commercial compilers (please 
>include CDROMS with source code to your work, examples (with 
>answers), and references on specialized topics). 

Textbook publishers are generally trying to get out of the diskette and
CDROM business; it's a hassle for them (I don;t agree with their
policy, but that's how it is). The good news is that they are setting
up web sites for the software distributions. AW's is, IMHO, the best
publisher's web site in the business.

>What is hurting Ada 95 is the availability of the compilers 
>(especially tasking Ada 95 compilers) and quality books. Once we get 
>over that first hurdle, then I think all of us will be better off.

Check the book reviews at

http://www.seas.gwu.edu/faculty/mfeldman/ada95books.html.

While I'm happy about the plugs you gave my stuff, you really ought
to look at Burns/Wellings, Naiditch, and Smith, not to mention
Barnes and Cohen. In the Ada 95 area, I think we are _definitely_
going for quality. (We sure aren't going for quantity!:-))

If you mean DOS compilers, try the new GNAT 3.04 with tasking.
And the Intermetrics/Thomson compiler is a very nice piece of work
for Win 95. I think we are over the hump now.

Mike Feldman
------------------------------------------------------------------------
Michael B. Feldman -  chair, SIGAda Education Working Group
Professor, Dept. of Electrical Engineering and Computer Science
The George Washington University -  Washington, DC 20052 USA
202-994-5919 (voice) - 202-994-0227 (fax) 
http://www.seas.gwu.edu/faculty/mfeldman
------------------------------------------------------------------------
       Pork is all that money the government gives the other guys.
------------------------------------------------------------------------
Ada on the WWW: http://lglwww.epfl.ch/Ada/ or http://info.acm.org/sigada/
------------------------------------------------------------------------




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
@ 1996-06-02  0:00 tmoran
  1996-06-02  0:00 ` Michael Feldman
  0 siblings, 1 reply; 7+ messages in thread
From: tmoran @ 1996-06-02  0:00 UTC (permalink / raw)



In <4oqv8u$6ih@felix.seas.gwu.edu> Michael Feldman said:
>>Ada 95: Problem Solving and Program Design, Second Edition
>>by Dr. Michael Feldman and Elliot Koffman
>...  Starting in August, this book will be available with a bundled
>Intermetrics/Thomson Ada 95 compiler. ...
>
>Textbook publishers are generally trying to get out of the diskette and
>CDROM business; it's a hassle for them (I don;t agree with their
>policy, but that's how it is). The good news is that they are setting
>up web sites for the software distributions. AW's is, IMHO, the best
>publisher's web site in the business.
  Having just bought the book, will the compiler be available on AW's
site in August, or what?




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
  1996-06-02  0:00 Ada 95 Books for Undergraduate Teaching tmoran
@ 1996-06-02  0:00 ` Michael Feldman
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Feldman @ 1996-06-02  0:00 UTC (permalink / raw)



In article <4osuvq$6j2@news1.delphi.com>,  <tmoran@bix.com> wrote:

>  Having just bought the book, will the compiler be available on AW's
>site in August, or what?

Contact AW to see if they'll sell you the CD for the difference in price,
or do an exchange. 

Since the compiler is a commercial product, and the bundling is the result 
of a business arrangement between AW and Intermetrics, I wouldn't count on 
it being available by ftp.:-)

I wish I could be more helpful, but I'm just the book author and neither
AW nor Intermetrics consults me much about their business decisions...:-)

Mike Feldman




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
  1996-06-03  0:00 tmoran
@ 1996-06-02  0:00 ` Michael Feldman
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Feldman @ 1996-06-02  0:00 UTC (permalink / raw)



In article <4otg31$74t@news1.delphi.com>,  <tmoran@bix.com> wrote:
>Kenneth Mays remarked on the absence of "Ada for Dummies" type books.
>My son read "C for Dummies", then (at my urging) started on Dr.
>Feldman's book and quickly said that it wasn't clear to him just where
>semicolons must go.  There's clearly a difference between a book to go
>along with a teacher and a course, and a self-study book.  Are there
>self-study Ada books?

That's a good point about the semicolons. I guess I never focused on
it because the rules are simpler than C's or Pascal's, and it's
nearly impossible to mess them up without a compilation error.
There are also loads of examples of complete programs, with very few
fragments, so he can just imitate what he reads. 

We learn natural languages by reading and listening, more than by
rulebooks. One theory says we learn programming langs the same way.

Good point for next edition though. This goes in my to-do file.

You might want to have your son try out John Herro's online tutorial, 
Ada-Tutor. That's the nearest thing to a start-from-scratch
CAI program for Ada.

How's this for a slogan: "Dummies don't _do_ Ada. They do C."

:-)

Mike Feldman




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
@ 1996-06-03  0:00 tmoran
  1996-06-02  0:00 ` Michael Feldman
  0 siblings, 1 reply; 7+ messages in thread
From: tmoran @ 1996-06-03  0:00 UTC (permalink / raw)



Kenneth Mays remarked on the absence of "Ada for Dummies" type books.
My son read "C for Dummies", then (at my urging) started on Dr.
Feldman's book and quickly said that it wasn't clear to him just where
semicolons must go.  There's clearly a difference between a book to go
along with a teacher and a course, and a self-study book.  Are there
self-study Ada books?




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada 95 Books for Undergraduate Teaching
  1996-05-28  0:00 Kenneth Mays
  1996-06-01  0:00 ` Michael Feldman
@ 1996-06-03  0:00 ` Richard A. O'Keefe
  1 sibling, 0 replies; 7+ messages in thread
From: Richard A. O'Keefe @ 1996-06-03  0:00 UTC (permalink / raw)



KMays@msn.com (Kenneth Mays) writes:

>The BEST books for CS1 and CS2, 
>in my opinion, are these two books from Dr. Michael Feldman
>and one from Elliot Koffman (one of the best Computer Science 
>educators in America).

Having read "Problem Solving and Program Design in C", 2nd edition,
by Hanly and Koffman, I can't quite bring myself to swallow this
"Elliot Koffman is one of the best CS educators in America" biznai.

*Either*
    all of the bad stuff in that book is due to Hanly,
    in which case Koffman is culpable for lending his name to it
    without doing something to ensure the quality of the product
*or*
    Koffman is not a good educator, because a good educator is
    one who teaches people how to do things _well_.

I know this is taking us a bit far from Ada, but the issue of textbooks
is one which I feel extremely strongly about.

Here are some gems:

p 639	telling people to use exit(1), when the C standard assigns no
	meaning to 1 in this context.

p647	telling people that argv[argc] is always an empty string,
	when the C standard says it is a NULL pointer

p537	telling people to use type names of the form [a-z][a-z_]*_t,
	when the C standard says that such identifiers are reserved.

p586	telling people that a C text file always has an <eof> character
	physically stored in it.

p587	telling people to use this loop to read integers:

	for  (status = scanf("%d", &num);
	      status != EOF;
	      status = scanf("%d", &num))
	    process(num);

	instead of the somewhat less buggy

	    while (1 == scanf("%d", &num))
		process(num);

	(Hint: given the input 'x' the first version will go into an
	infinite loop.  Note:  this 'for-with-duplicated-code' style
	is used all through the book.)  Oddly enough, p359 gets this
	right.

p591	telling people to use this loop for reading a file:

	char ch;		/* this is the blunder */
	for  (ch = getc(inp);  ch != EOF;  ch = getc(inp))
	    putc(ch, outp);

p601	telling people that a "database is a vast electronic file of
	information that can be quickly searched using subject headings
	or keywords".  Data bases need not be vast, electronic, files,
	or quickly searchable, nor need they be restricted to text that
	has subject headings or keywords.  What's more, this definition
	does not apply to the example it goes with!

ch12	This chapter is really quite muddled about the binary file concept.
	In a book at this level, it might be better to omit it entirely
	than to present it in a muddled way.

p494	telling people that "if a recursive function's implementation is
	flawed, tracing its execution is an essential part of identifying
	the error."  There is, of course, nothing special about recursive
	functions, nor is tracing the execution of any function *invariably*
	an essential part of identifying an error in it.  (The assert()
	macro is _listed_ on page AP3, but I can find no other mention of
	it in the index or the text, and this _is_ an extremely important
	debugging tool.  Come to think of it, how do you get away with
	claiming to talk about "Program DESIGN" without talking about
	assertions anywhere?)

AP2	I suppose listing the ASCII and EBCDIC character sets has some
	vague relevance to C (though the book fails to identify just
	_which_ of the many variants of EBCDIC it presents), but what is
	the point of listing the 6-bit CDC character set?  C requires
	two cases of letters, and the CDC character set has only one.
	This looks like a carry-over from a Pascal book, and carry-overs
	from Pascal books always give me that sinking feeling.

AP4	The description of clock() is wrong.

p365	As it happens, this page was the very first I saw when I opened
	the book.  I have a little theory that if you want to estimate
	the quality of a textbook, sampling will do very well, because
	a sloppy author is sloppy everywhere about everything.  Here is
	the relevant part of the code:

	#define MAX_ITEM ...
	double x[MAX_ITEM];
	double sum, mean, sum_sqr, st_dev;
	int i;
	...
	/* Computes the sum and the sum of the squares of all data */
	sum = 0;
	sum_sqrt = 0;
	for  (i = 00; i < MAX_ITEM; ++i) {
	    sum += x[i];
	    sum_sqr += x[i]*x[i];
	{
	/* Computes and prints the mean and standard deviation */
	mean = sum/MAX_ITEM;
	st_dev = sqrt(sum_sqr / MAX_ITEM - mean * mean);
	...

	My first-year teachers would have rebuked me for code like that;
	my second-year teachers would have failed me.  For the benefit
	of people with weak or non-existent statistics or numerical
	analysis backgrounds:

	(a) There are two formulas for standard deviation.  In this
	    example, we are computing the standard deviation from an
	    *unknown* true mean, which has been *estimated* by
	    computing the sample mean.  That means that the right
	    formula is the one that divides by N-1, not the one that
	    divides by N.  This is the point my first year statistics
	    teachers would have rebuked me for.

	(b) The correct formula is
	    mean = sum(x)/count(x)
	    variance = sum((x-mean)**2)/(count(x)-1)
	    std_dev = sqrt(variance)
	    It is true that sum((x-mean)**2) *can* be rearranged, and
	    for mathematical purposes it is often convenient to do so.
	    But the rearrangement has very nasty *floating-point*
	    properties (it can, for example, give you a negative variance).

	Here is the corrected code:

	sum = 0.0;
	for (i = 0; i < MAX_ITEM; i++)
	    sum += x[i];
	mean = sum/MAX_ITEM;

	sum_sqr = 0.0;
	for (i = 0; i < MAX_ITEM; i++)
	    sum_sqr += pow(x[i]-mean, 2.0);
	st_dev = sqrt(sum_sqr/(MAX_ITEM - 1));

	Would using better code spoil the pedagogical points Figure 8.3
	is supposed to be making?  Not at all.  One is forced to the
	conclusion that the last author to touch this material didn't
	understand standard deviations or floating point arithmetic.
	There is no shame in not understanding these things; one cannot
	be expert in every area of computing.  But one *would* expect
	"one of the best Computer Science educators in America" to steer
	clear of things he doesn't thoroughly understand.

	For another example of floating point that left me shaken, look
	at p339.  (You will also notice a misplaced \n in the printf()
	on that page.) 

p197	Question 6 "Implement the following flow diagram using a nested
	if structure" (a) is initially confusing because the flaw chart
	in question is not visible at this point (it's on the next page,
	and it's confusing there, because it isn't captioned) and (b)
	drags in flaw charts, which at this late date we should not be
	using in a CS 1 book.  (And in fact flaw charts are introduced
	on p152 _only_ to describe if statements.  Why use them at all?)

p517	I am sick of the towers of Hanoi as an example of recursion.
	(Couldn't they at least use the Reve's puzzle?)  In fact, all
	of the examples of recursion I looked at in this book were
	unconvincing.

p524	"2.  Which is generally more efficient, recursion or iteration?"
	I wonder whether anyone checked the punctuation in this book?
	I note that this question also appears in Feldman & Koffman,
	and therefore suspect that it is a carry-over from Koffman's
	Pascal book.  It is a bad question, because it suggests that
	there is an answer.  (The authors evidently imagine that there
	is only one way to implement recursion.  That is not true.)
	It is *bad* education to try to close students' minds this way.
	The only right answer is "it all depends on the algorithm being
	implemented, the skill of the programmer, the quality of and
	selected optimisations for the compiler, the target CPU, the
	main memory and cache structure, &c &c &c."
	
Of course, the _first_ warning sign for the book was its heavy use of
colour.  Two colours, actually, black and a rather horrible dried-blood
reddish-brown.  And if you look carefully, the two colours are not always
in registration.  My experience with CS 1 textbooks so far has been that
heavy use of colour is a sure sign that there are problems with the
_content_.  Colour _is_ used to good effect in the listings, but given the
two-inch margins, sticking headings out an inch would have been a better
way to distinguish them than putting them into white-on-yuck ellipses.
Calling "{}" 'brackets' instead of 'braces' wasn't a good sign either (516),
given that C uses _both_ brackets and braces and uses them differently.


So, here we have a book which
    - is consistently a bit sloppy
    - contains serious factual errors about C
    - does floating point calculations poorly
but it was written by
    - someone who "has taught software engineering seminars"
    - and someone who "is one of the country's foremost computer science
      educators"
and was *reviewed* by
    - EIGHT people from 
    - EIGHT US universities, including one I have reason to respect highly.


What's going on?
Why is the review process failing us?
How do you get a high reputation with books like this?

-- 
Fifty years of programming language research, and we end up with C++ ???
Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci.




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~1996-06-03  0:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-06-02  0:00 Ada 95 Books for Undergraduate Teaching tmoran
1996-06-02  0:00 ` Michael Feldman
  -- strict thread matches above, loose matches on Subject: below --
1996-06-03  0:00 tmoran
1996-06-02  0:00 ` Michael Feldman
1996-05-28  0:00 Kenneth Mays
1996-06-01  0:00 ` Michael Feldman
1996-06-03  0:00 ` Richard A. O'Keefe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox