program is on page 52, four lines long. The IF-THEN statement is covered so completely that even the slowest learner should be able to understand it. The chapter on Advanced Branching is excellent, covering some areas that few other BASIC authors do. In these pages is one of the few full and excellent explanations of the DEF statement. Arrays are gone into fully, with many detailed examples. Appendix I contains 25 practice problems; "A few of these problems require a knowledge of first-year high school algebra, but most problems require no mathematical training." Appendix VII contains ten sample programs, with flowcharts, input listing and output, on interest, largest and smallest numbers in an array, averages, etc. Simple but instructive. Another unique feature is that by page 25 the reader is writing program statements based on word descriptions of the desired function. The entire book is typewritten, except for some Teletype output after page 106, and is double-spaced, so it could be half as long, although not as easy to read. The self-instruction part of the book uses very little extra white space, in comparison with, for example, the General Electric book (15). The authors use a zero as the final data element to "provide a means of terminating execution of the program." Only three other books use a zero; most prefer either something like 99999, or a very large number such as 1E20, because zero could in some cases be a valid data element. There isn't much on matrices; 13 pages cover both arrays and matrices, with only one example of manipulation: addition of matrices. However, the slighting of this area may be understandable in light of the back-cover note that this is "written for beginning students with little or no background in the computer field." Although some statements are thoroughly covered, there are only two pages on GOSUB and RETURN. Appendix II contains Hints to Practice Problems to help solve those on the preceding pages, but without answers to any of the 25. All in all, a very satisfying text, written by people who not only have teaching experience, but who know how a teaching text should be written. Some 40 BASIC statements are covered (of which 11 are for matrices, 9 are built-in functions, and two are logic operators for "advanced branching"). [image] 21. BASIC Programming for Business, by Joseph C. Sass. Pub. Nov. l, 1971, by Allyn and Bacon, Boston, Mass., 310 pages, 5¾ x 8¾, $7.95 (paperback). Several unique and outstanding features, but sticking to a rigid method causes serious problems. Rating: B This book has many things going for it. It is small and convenient to hold, well designed in both layout and typography. There are two unique features of great merit. The first is the use of examples of every statement: a set of proper ones, and another set of statements illustrating common errors occuring with that statement. The second outstanding feature is the use of a column of description alongside the example statements, explaining each one, not in the following text, but right up where it can be read with the statement, right where it is most needed. There are nine chapters: Introduction; BASIC Commands; INPUT, READ-DATA, and REMARK; Transfer Commands; FOR-NEXT Loops and Arrays; Additional Features; Matrix Commands; Files; Samples With Solutions and Additional Problems. There are appendixes on error messages, correcting errors, system commands, terminal operation, and an eight-page glossary. The text combines three kinds of type. The main body is in a sans-serif font, while the word BASIC, and all statements, whether in the text or in example groupings, are in serif type. The programs themselves are Teletype originals, reduced (when required) to a maximum 4½-inch width. The main programs are based on two problems, bank deposit and salesmen's pay, which start small, and are expanded upon in each new chapter. Each chapter is divided into sections; each important section is followed by exercises that pertain only to the preceding material. Answers are provided for selected exercises. But all these fine features are not put to the best use, and the resulting book does not live up to its initial promise. The bank deposit and salesmen's pay examples, although standard types, tend to become dull after the reader has seen them so many times, getting longer and longer as they get more complex. There are 15 of the bank problems and 12 pay problems. Although, for instance, the BANK10 program has some quite different statements than BANK09, these differences are not explained very well. And what is said, is confusing. The buildup of a simple program into more and more complex ones begins to bog down on page 119, due to their own weight, complexity, and single-mindedness. Shorter programs could have been used much more effectively to highlight the new types of statements used. BANK 10 could have been made much more understandable with the use of some examples at vital points in the discussion, but the author's rigid format, which puts examples only in groups that are not related to any of the programs, does not allow using examples where they are most needed. The writing is another drawback; in many places it is pedantic and dull. On page 2: "The user has access to the computer by means of a typewriter-like device called a remote terminal...." Even worse is on page 4: "One of the most popular terminals being used to utilize the time sharing computer...." There is much excess verbiage, as on page 2: "The memory unit performs the function of retaining or storing for later use the data or information that is transmitted to the computer by the input function." On page 12: "The purpose of flowcharting is fourfold." Sass is the only one to trace, although briefly, the origins of BASIC, from MIT down through JOSS. Also unique is the only illustration in all 34 books that graphically shows what Teletype print fields are. Also unique: three different ways of writing the first program, to show the reader that "there are many different, but all correct, solutions to the same problem when writing programs." Sass is one of the few authors to use string variables right from the beginning; page 15, in this case. Although there are many exercises, and they are well placed in the book, the answers at the end of the book are to only a select few, usually only the first and third ones. Fine for school use, but hard on the lone reader. Sorting by the "copy method" is explained only by a flowchart, without any accompanying, amplifying text. The book doesn't live up to its title. There is nothing on business programs until page 189, other than the deposit and pay programs, which are standard in many programming texts. The first business program is on page 189, on production management, illustrating the use of matrix statements, just to solve two equations in two unknowns. Chapter 9, beginning on page 223, contains seven business problems, which is about all the claim this book has to being business-oriented, other than that item on page 189. The seven problems are on: "switch method" of sorting, sort using a key, marketing simulation, depreciation of an asset, interest, inventory simulation, and production simulation, a total of 29 pages. Two of the programs, marketing simulation and depreciation, need explanations, but don't get them. The "switch method" of sorting is not properly described: it is said to be done "by swapping locations with another value." The swapping is of adjacent pairs. Appendix B shows a six-line program as run on twelve different systems. There is very little difference in the twelve runs, so why take up a dozen pages with them? The stated reason: "...to illustrate the slight differences in sign-on and sign-off procedures for different commercial sharing vendors." Fascinating. 316