12. Computer Science: A Primer, by Alexandra I. Forsythe, Thomas A. Keenan, Elliott I. Organick, and Warren Stenberg. Pub. Sept. 25, 1969, by John Wiley & Sons, New York, N. Y., 403 pages, 6 1/4 x 9 1/4, $11.00 (hardcover). Computer Science: A First Course, by Forsythe et al. Pub. Oct. 31, 1969, 553 pages, 6 1/2 x 9 1/2, $14.25 (hardcover). Computer Science: BASIC Language Programming, by Forsythe et al. Pub. Nov. 13, 1970, 124 pages, 61/2 x 91/2, $5.50 (paperback). For the reader who wants to learn all about flowcharts, the rating is A. For learning about BASIC, the rating is D This handsome set of books is dedicated to the proposition that thou shalt worship the flowchart as thy god. And because of the great emphasis on flowcharts, less BASIC is taught than in many Shorter books. The BASIC supplement is meant to be used in parallel with either the First Course or the Primer. The only difference between these two is that the Primer does not include the last five chapters, which is Part III, on Nonnumerical Applications. The Primer is said to be perhaps "more suitable for a short course or for one that concentrates exclusively on numerical computation." According to the introduction, "To increase the applicability of this book, the specific syntactic details of computer language have been separated from the main flow-chart text into a language supplement. The flow-chart language used in the main textbook deals only with concepts of central interest to all programming languages... The great reward to the student from this separation of main concepts from syntactic details is the universal applicability of flow-chart language, which he learns first." Then, later, "Beginning with Chapter 2, any corresponding chapter can be read, section by section, along with the main language." Programming language texts are available for BASIC, FORTRAN, PL/1, and APL; they are "especially useful because they are designed to dovetail, section for section, with the principal chapters of the basic text. The study of a computer programming language. . . from one of these supplements will help the student to convert the abstract algorithmic solutions of the problems from the basic text into actual solutions on the computer that is available to him." The First Course starts with an algorithm for "the everyday process of changing a flat tire," presents a flowchart for it, then improves it in several Steps. The exercise for this part of the book is to prepare a flowchart representing a recipe for making "Rocky Road" cookies. Then comes a numerical algorithm on the Fibonacci sequence, two pages, with flowchart. Page 1 l presents a Model of a Computer, with window boxes for memory, and three workers: master computer and two assistants, the assigner and the reader. Six pages translate the words of the Fibonacci sequence into "formal flow-chart language." Page 23 starts the presentation of SAMOS, a prototype computer (the acronym is not explained), and several of its instructions: LDA, BMI, WWD, and BRU. The portion on rounding uses CHOP, which takes the whole part of the number. Chapter 3, Additional Flow-Chart Concepts, begins a really heavy diet of flowcharts. Chapter 4, Looping, is 65 pages long, with 44 flowcharts and 26 partial flowcharts. Chapter 6, Functions and Procedures, represents the SQR subroutine as a sealed brick chamber with a funnel on top and a window on the side; a similar concept is used to explain MIN, SORT, and COMPEQUAL, Part III starts with a chapter on Trees, going into tree searches, the four-color problem, etc. The next chapter, Compiling, covers Polish strings as applied to the prototype SAMOS machine, translating from infix to postfix, and flowcharting the translation process. Chapter 12, Lists and Strings: Their Storage Structures and Uses, covers editing, string manipulation, string operations in the flowchart language, and unknowns in pattern-match operations. Chapter 13, More Aspects of Compiling, starts with 311 "Transformation of Postfix Strings to SAMOS Machine Code," then goes into "Conversion from Symbolic to Actual SAMOS." The appendix is 27 pages on SAMOS, going into its 11 basic instructions, some illustrative problems, indexing, table lookup, and subprograms. There are exercises throughout each chapter, after each section, without answers. The BASIC supplement notes that in both the Primer and First Course, "flow charts are painstakingly introduced and built up feature by feature. . . Designed for use with either of the above-mentioned texts, this book bridges the narrow gap between the flow chart language and BASIC." Part I, on BASIC concepts, has five chapters; Algorithms and Computers, The BASIC Language, Additional BASIC Concepts, Looping, and Approximations. Part Il, on numerical applications, has one chapter, Functions and Procedures (functions, subroutines, symbol manipulation). The first program generates a Fibonacci sequence, with the Teletyped program lines laid out in parallel with their corresponding boxes in the flowchart. The flowchart is in the same elegant style as in the parent text, with shaded boxes, and lettering that imitates Teletype print. As in the parent texts, there are several sets of exercises in each chapter. The style is often stilted, as on page 9: "Exercise a vigilant awareness toward these potential sources of error, and never assume you have solved all of the difficulties the first time." Sounds rather Victorian. Chapter Two, BASIC Language Elements, is a jumbling together of all the elements without sufficient explanation or examples. Predefined functions are covered in a single short paragraph, accompanied by a table of eleven functions. The explanation of E notation is all too skimpy. The section on RESTORE gives a good simile for the data pointer: a "moving finger." The next page has a program that computes the volumes of five boxes, given length, width and height; six of these dimensions are negative. What sort of boxes are these? The section on Rounding explains that although INT(X) is the same as the CHOP(X) mentioned in the parent text for positive arguments, it differs for negative arguments. This is the first of several problems that come up when translating from the flowchart language to BASIC, and which do not help the cause of having to learn an intermediate language. A program on page 43 contains the funniest line in any of these books: REM A TWO MILLION DOLLAR COMPUTER USED FOR TALLYING. What isn't so funny is that the program has no safeguard against inputting a grade over the highest possible score. So if a grade of 152 is entered, the program jumps to print 0 STUDENTS TOOK THE TEST. These authors are the only ones to recommend tracing with a printout that includes line numbers. The book is handsomely produced, with shaded boxes in the flowcharts, and shaded lines in programs for those lines that require explanation. Another translation problem comes up on page 72: "The iteration box has a nearly perfect parallel in Basic called the FOR statement." Nearly? This is explained on page 95: "The iteration box of the flow chart has the violation of the condition ABS(T) A as a criterion for escaping from the loop. The FOR statement of Basic cannot incorporate this kind of criterion." Page 89 has a third problem, noting that the MAT READ statement "does not have the same generality as the flow chart notation." There is, of course, a great deal to be said in favor oflearning to flowchart accurately. Yet so much emphasis is laid on flowcharting here that BASIC almost gets lost in the shuffle. So much effort has been spent in setting up the form, that content has been neglected in the BASIC supplement. The main advantage of these texts is that one learns thoroughly, not BASIC, but flowcharting. And the main advantage of the two-text system seems to be, not to the reader, but to the authors and publishers. If nothing