The Best of Creative Computing Volume 1 (published 1976)

Page 303 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails

Reviews of 34 Books on BASIC

graphic of page

BASIC, editing and correcting. Two sentences describe the purpose of an
executive program, while other authors usually make a big deal out of it
(although very few others even mention it).

*****************************************************************************************************
The subject of loops is considered important enough to be worth the entire third
chapter, five pages. Here the book begins to get a little difficult for those
who are not mathematically oriented, with a program that computes binomial
coefficients. The authors "use the convention of indenting instructions between
a FOR-NEXT pair," which only six other books do. "This clearly shows the scope
of a loop. The convention is particularly useful when nested loops occur, such
as the double loop in ROOTS." Double loops are then illustrated with a neat
9-line program.

******************************************************************************************************
Page 19 contains the only example in this book of an author tooting his own
horn, "… and then determines the cell of the tally list N in a very ingenious
way in line 150." 
*******************************************************************************************************
In the fourth chapter, on Lists and Tables, DIM is introduced very casually,
without fanfare or a long-winded lead-in, as is often the case elsewhere. 
******************************************************************************************************
In chapter five on Functions and Subroutines there are no individual examples,
although there are several short programs that include six of the ten standard
functions listed.

*******************************************************************************************************
The unique and excellent method of demonstrating rounding-off goes through each
part of the argument of the INT statement to show how it affects the number
involved. This is not an easy concept for many readers to understand, yet the
authors have managed to find what must be the simplest way of explaining it.

******************************************************************************************************
Page 29 contains one of the few chinks in the armor: a program not explained.
The reader is expected to know Euclid's Algorithm for finding the greatest
common divisor of two integers.

******************************************************************************************************
Page 36 contains the most complex program so far, an Eternal Calendar, 54 lines,
but this is not impossible for one without a head for math to figure out.

******************************************************************************************************
The chapter on Debugging goes into tracing, and is the only book to describe
both "full trace" and "selective trace."

******************************************************************************************************
Part Two, on applications, begins on page 47, with chapters on problems from
elementary mathematics, number theory, simulation, games, business, files, text
processing, statistics, vectors and matrices, calculus, and "special topics."

******************************************************************************************************
The chapter on number theory is where the book really begins to get difficult
for all but math majors. The problem on the greatest common divisor isn't all
that difficult, but the next one is, on modular arithmetic, using the Chinese
remainder theorem. The rest of the chapter isn't any easier, with a counting
problem (making change) being rather difficult, even with the explanation, which
could be longer, but perhaps would have to be much too long for non-mathmajors.

*********************************************************************************************************
The next chapter, on simulation, eases off somewhat, and contains an explanation
of RND that is simple and easy to grasp, and is better done than elsewhere. The
chapter contains a baseball program that simulates the batting of one side in a
nine-inning game; this is rather complex for all but the top-IQ types. The
Knight's Tour problem is also rather difficult for a beginner's book.

***********************************************************************************************************
With the chapter on Business Problems, the book goes back to something less than
difficult. Many other authors would put those complex chapters (on number
theory, simulation, and games) at the end of the book, so as not to discourage a
reader who is only halfway through.

***********************************************************************************************************
The chapter on Files is the only one among these books that distinguishes
between Teletype files and numeric-and-string files, with a compact little table
to summarize the differences.

************************************************************************************************************
The chapter on Statistics goes into contingency tables, using the chi-square
test; both are introduced nicely, understandable even to those not majoring in
mathematics, although there is no explanation of "number of degrees of freedom."
The chapter also contains a section giving A Ranking Procedure, with an
explanation that is rather murky.

************************************************************************************************************
The text of the chapter on Vectors and Matrices is a little too loose to be
readily understandable; the text accompanying the problem on electrical networks
is not at all understandable to other than electrical engineers; the section on
Markov Chains is not very well explained and both runs give data that is
difficult to identify.

************************************************************************************************************
The chapter on Calculus is for math majors only, or for those with a knowledge
of advanced math.

***********************************************************************************************************
All the applications chapters contain, after the exercises at the end of each
chapter, one or more projects that present more complex problems than do the
exercises. These are all well thought out, and should provide the reader who has
access to the terminal with a very thorough workout of his knowledge of the
language, as well as, in many cases, his knowledge of (and aptitude for)
mathematics.

************************************************************************************************************
The last section of the book is on Harmony in Music, giving a long program that
writes four-part harmony for a given melody. The three projects for this chapter
involve preparing a program to generate simple melodies randomly, generating
poetry randomly, and devising programs to produce artistic patterns "on whatever
plotting devices are available," with a number of helpful hints.

***********************************************************************************************************
The program index at the end of the book is unique: for each of the 107 programs
in the book, it gives the name, application, and page. The main index must have
been computer-generated, as there are several trivial entries, including
Ramanujan and "Oz, Land of."

************************************************************************************************************

As for drawbacks, the main one is that there are no answers to the exercises.
The book contains only three flowcharts. The reader with only a modest
mathematical background may have difficulty with the chapters on number theory,
simulation, and games. REM is seldom used, although the authors say in a
footnote that "REM statements are not always used in the programs in this book
because all the programs are amply discussed in the text."

***********************************************************************************************************
There are very few individual examples of statements and commands in this text;
however, many sample programs make up for this by showing the statements
commands in use.

*********************************************************************************************************
All in all, this is the best book on the subject at this level, even better in
its second edition than the first.

********************************************************************************************************
The second edition inserts a five-line program as the first one in the book,
before the 17-line one, to further simplify the beginning. These programs, and
all the others in the book, were rerun for the second edition. A few blank lines
have been added to separate groups of statements in programs not previously so
treated.

********************************************************************************************************
The chapter on timesharing has been moved up from fifth to second place, and
increased from two and a half pages to over four. Also added is a section on
Commands in Time Sharing, and information on eight editing commands. The chapter
on functions and subroutines has a new section on standard functions and
multiple-line definitions.

*********************************************************************************************************
The chapter on loops opens the same, but a new program has been inserted as the
first one, on permutations and combinations. Several new exercises have been
added at the end of the chapter, and some of the others have been reworded; this
holds also for some other chapters.

**********************************************************************************************************
The sixth chapter, on Alphabetic Information, is new to the second edition, and
is all about strings. The first chapter on applications drops the section on
Large-Number Arithmetic, which is a good idea, as it required a long and complex
program. Replacing it is the Counting Problem, on making change, which is much
easier to understand and to appreciate. The chapter on business problems adds a
section on Critical Path Analysis.

**********************************************************************************************************
The two new chapters in the applications part of the book are on Files and on
Text Processing (line editing, character handling, constructing an index,
codes). 
***********************************************************************************************************
The last chapter, Special Topics, eliminates the section on Teaching Machines,
along with its teaching program. In its place is the complicated Marriage Rules
in Primitive Societies, not as interesting but perhaps more indicative of what
is being run on computers these days. The section on A Model From Ecology is the
same, with one interesting change. In the first edition, the program output is a
graph,

Page 303 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails