5. Introduction to Computing Through The BASIC Language, by Richard L. Nolan. Second edition pub. June 1974 (first edition pub. June 5, 1969), by Holt, Rinehart and Winston, New York, N. Y., 352 pages, 6 x 9, $9.00 (hardcover). Some very good parts, but too disjointed, too many tangents. Rating: C This review could have been rewritten to reflect the changes made in the recently-received second edition, but there are not many of significance, and it may be of interest to show how an author attempted to improve his text, but left the biggest fault untouched. Although some of the changes are notable improvements, the allover effect is still the same, and so the one-line judgment and rating given for the first edition still apply to the second, except that the book might possibly rate a C+ now. The next dozen paragraphs refer to the first edition; the remaining ones delineate the changes, additions and deletions to the second. The beginning is promising, with one of the most practical openings of all these books: the formula for calculating "the present worth of an investment for some number of years hence" is given. Then the author shows how the equivalent BASIC program line is almost the same. Four more lines are added to make the book's first program, which is then expanded upon so that several sets of constants can be used. These two programs and their explanations take up the first chapter, five pages. But by page 13, the book begins to fall apart, with four pages that give a long table of nine BASIC definitions and twelve statements, with two or three examples of each. Too much is given in too short a space. This material should be spread out over a chapter or two, with much more text and also more examples. Another "too much, too soon" item starts on page 19: three and a half pages of the error statements printed out by the batch-mode BASIC compiler (UWBIC) in response to 35 BASIC statements that contain one or more syntactical errors. lf this is meant to show the wrong way of writing statements, there must be a better way of doing it. Nolan goes into flowcharting early, and uses a good number of flowcharts in the text. Page 47 starts a 69-line program, with a two-page flowchart, but there is no run to show what the program can do. There are ten chapters: Introduction, Introduction to BASIC, BASIC Definitions, three chapters on 13 BASIC statements and the functions, Concept of a Computer (computer simulation model), Computer Hardware, Computer Software, Conclusion. There are five appendixes: time-sharing and batch-mode BASIC, techniques of flowcharting, matrices and MAT statements, additional BASIC statements (strings, computed GO TO, SGN, DEF, etc.), and some general application programs. BASIC is covered in the first six chapters and 96 pages. There are review questions and exercises at the end of each of these chapters (and of most of the others), with full answers and solutions at the end of the book. Chapter 4 starts with a vocabulary and dryness that do not make this an easy book to read: "The syntactical relations and grammar discussed in the previous chapter provide the basis for developing a BASIC program. In this chapter, the response elicited from the computer by the REMARK, READ, DATA, END, LET, PRINT, and GO TO statements will be explained. This will be done in the context of the logic required to …." The first example of each of these statement is in words, such as "READ variable, variable ..., variable," after which actual examples are usually given. The first program in this chapter is a slight enlargement (via REMARK statements) of the very first program, which determines present worth. Memory cells are explained with a drawing of several mailboxes. The same program is used throughout the chapter, basically unchanged, to illustrate the use of the various statements. There are 18 excellent Review Questions and Exercises, seven of them requiring programs to be written. Chapter 5 covers IF/THEN, FOR/NEXT, DIM, and STOP. The program on page 43 is actually only the second program in the book, if one discounts the several variations on the first one. This second program seems more complex than it really is, perhaps due to the nine REMARK statements in a program that has only six active lines plus two DATA statements. Again, the language is stiff and pedagogic, with words such as "concatenated." The third program (sorting, and counting in categories) is much too long so soon, unless the author's idea is to get the reader used to long programs. The principles could be explained with one or more much shorter programs; this one is 69 lines long (20 are REMARK lines), but without a run. A grade-sorting program is so long that the flowchart takes up three pages. The chapter contains too many programs without RUNs: ten of them, and only one with an output. Chapter 6 is on functions and GOSUB/RETURN. A "nonsensical program" illustrates four stored functions, when several shorter, meaningful ones would be much better. RND is explained in one sentence: "The function returns a six-digit, uniformly distributed pseudo-random number between zero and one." The program using RND, concerning a silver miner's "grubstake," is explained in only five short sentences, leaving many readers still largely in the dark about RND. Perhaps as an exercise for the brighter students, the chapter ends with a time-sharing simulation program that computes a historical analysis of use (average wait, longest wait), with 76 lines and a 50-box flowchart three pages long. Chapter 7 is Concept of a Computer, subtitled Computer Simulation Model. This goes into the writing of a BASIC program that will translate "Op-codes for machine-language programming system of model computer" (in machine language), so that programs can be written directly in the "pseudo-machine-language," as required in most of the exercises accompanying this chapter. A fascinating chapter, but this elementary book is not the place for it, not right after six introductory