The Best of Creative Computing Volume 1 (published 1976)

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

Reviews of 34 Books on BASIC (Basic BASIC: An Introduction to Computer Programming in BASIC Language, by James S. Coan, 1970)

graphic of page

little or no explanation as to how they work, other than the accompanying
flowcharts. The reader must figure out a great deal by himself, and is not given
adequate preparation in many cases. A program for building magic squares is
given as early as page 16, 20 lines long, with a skeletal flowchart and no
explanation of what a magic square is, much less some explanation of how the
program works.

A time-sharing terminal is essential because most of the lessons present a
program and a flowchart, without any explanation or REM statements, only an
exhortation to "Try it!" So if the program runs, the reader has an answer, but
he probably won't understand how or why. This must be the "problem-solving
approach" denoted by the book's subtitle. If so, it's a misnomer, as the
computer solves the problems, not the reader. Of course, a bright reader could
probably figure out what's going on, but should a programming book be written
only for the top five percent (or less) of the population?

There are four review tests within the first 95 pages, and they are scored by
running given programs, with one's answers put into the DATA statements. There
are no explanations whatsoever as to how these scoring programs work; this too
is left as an exercise for the student.

The writing style is not at all smooth, with such cute phrases as "by tags we
mean the cute little messages...."

Many statements are presented without explanation of any kind, such as RND in
the magic-square program. The REM statement gets only 26 words of explanation.
The few times a reader is asked to write a program, in the 41 lessons, he
usually has not been given enough information beforehand to be able to do so,
and since most of the programs are given in the text, he has had very little
experience in writing programs - he's been running the author's programs nearly
all the time.

In a program that determines the highest common factor, there is no explanation
that program lines 45 to 55 exchange the values of X and Y, one of the crucial
parts of the program.

Page 34 gives an uncompleted program, the reader being expected to fill in the
missing seven lines. Some readers may learn from this type of teaching, but not
many.

A program on page 66 contains a command that no other author mentions: PAUSE.

The second part of the book consists of 50 review problems, each with a short
description of the problem, and a flowchart. The reader is expected to write
programs that solve a great variety of problems, such as radix sorting,
simulating a dice game, rank correlation, annuity interest, linear correlation,
etc. A couple of the problems have complete or partial programs. The reader
could learn much more if the programs required were simpler to write, and if he
had to write his own flowcharts. As it is, many of the 50 review problems leave
too much to the imagination. Review problem 6 is on a chi-square test, without
bothering to explain what a chi-square test is. But a full 50-line program is
given.

There is no index.

The last 39 pages contain program solutions to problems in the text,
photographically reduced to the eye-straining dimension of 22 characters per
horizontal inch.

A reader can learn from this book if he will conscientiously dig his way through
the lessons and programs. The question is, will he do this, or get bored early,
and start to skip pages? For the very bright, with highly inquisitive minds,
there is something to be mined here - the hard way. For the rest, meaning the
majority, the book as a first text is much too difficult.

The back cover notes that the author's books on computer programming "are
distinguished by his originality of presentation and his ability to clarify
computer languages." That latter claim may well be true of the author's FORTRAN
and COBOL books, but not of this one.

[image]

11. Basic BASIC: An Introduction to Computer Programming in BASIC Language, by
James S. Coan. Pub. Sept. 11, 1970, by Hayden Book Co., New York, N. Y., 256
pages, 6 x 9, $8.25 (hardcover), $6.50 (paperback).

Despite some drawbacks, a useful and helpful book. Rating: B+

There are many good points to this book, some of them unique. The statements,
with brief explanations, are presented in boxes, and so stand out loud and
clear. Some other authors intimidate the reader by presenting long and complex
programs much too early; early in his book, Coan gets the reader used to the
sight of long programs, but they are relatively simple ones. The 50-line program
on page 36 is easy to understand; it has many explanatory PRINT lines and
concerns various ways of printing the items in a list. This is in the chapter on
Loops And Lists, which starts out, like the other chapters, with short programs
(6 lines here) and builds up to larger ones.

There are 13 chapters: Introduction to BASIC, Writing a Program, Loops And
Lists, Computer Functions, Elementary Data Processing, Introduction to INPUT and
RESTORE, Specific Applications (Euclidian algorithm, change of base, looking at
integers digit by digit), The Quadratic Function, Trigonometry, Complex Numbers,
Polynomials, MAT Instructions, Elementary Probability. There are seven
appendixes: Storing Programs on Paper Tape, Error Diagnosis, Special Formatting
Functions (TAB, IMAGE), Summary of Flowchart Shapes, Summary of Statements in
BASIC, Index of Programs in Text, Answers to Even-Numbered Problems.

There are problems for each section within a chapter. Some problems are
check-marked to indicate that they are the more difficult ones.

Some fairly complex programs are presented, such as the one on page 85 on
questionnaire analysis, which very few authors get into. A few pages later, the
author mixes two programs (two-way temperature conversion) and calls one or the
other with 0 or 1, a unique program in these books. Not only is Coan the only
author to go into complex numbers, he has an eight-page chapter on the subject.
He is also the only one to give programs for synthetic division, integral zeros,
real zeros, complex zeros, and the Descartes rule of signs, in a chapter on
polynomials. And there is a fine seven-page appendix on Error Diagnosis,
explaining the three types of errors in detail.

The items on the minus side of the ledger may not bother every reader, but can
be annoying to some. The type is small and uncomfortable to read; the
back-of-the-book answers to problems are tiny photoreductions of Teletype
output, 27 miniscule characters to the horizontal inch.

The writing style is odd, as though it were a transcription of classroom
lectures, quite prosaic and showing little imagination. For example the
definition of IF-THEN is "XXX IF YYYYYY THEN ZZZ. If YYYYYY is true, transfer to
line ZZZ. If YYYYYY is false, pass to the next line after XXX." Not very
helpful.

Some features of BASIC are given very short shrift. The explanation of the E
format for exponentiation takes all of one sentence, and there is none at all
for negative E.

Some parts of the book, such as the portion on testing integers for
divisibility, on page 102, contain mathematical manipulations that would be hard
for many to follow without a teacher for guidance.

The final chapter, on Elementary Probability, is one that only the top students
may understand. The chapter contains a teaser, in showing a RUN that gives all
the four-letter combinations of the word FLAG, but not the program itself. The
excuse given is that "the techniques required for this vary so greatly from
system to system that we will not present the program, but only the RUN."

Most of these drawbacks can easily be ignored by the reader who is after the
many excellent parts of this book, which in a future edition may become an
outstanding one.

[image]

310

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