This is a college-level text: "most of the problems...can be comprehended by a college freshman or even a senior high school student." Most of the problems, yes, but there are many, such as the problem using a fourth-order Runge-Kutta to solve a differential equation, that would certainly mystify most college freshmen, and many college seniors. The book would certainly be useful to many high-school students, if there is an instructor on hand to clarify the difficult points. The authors are the only ones to note, "for the student who is concerned about programming in the most efficient manner," that execution of B*B is somewhat faster than that of B ^ 2. Smith (30) notes that "if the exponent is small - 2 or 3 - it is customary to use the asterisk," but gives no reason for doing so. One must dig to find something negative to say about this work. The authors recommend using a zero as the flag for the last DATA item (they are not alone in doing so) and although they do say it should be used only when the programmer knows that none of the data items is zero, it would be better not to take chances, and to use a very large or very small number. The section on files is very short, only 3 1/2 pages. The authors explain this brevity by noting that "Unfortunately, the versions of BASIC for different systems seem to differ more in regard to the features pertaining to files than in any other respect. We shall consequently have to discuss in terms of generalities to some extent." These two points, on zero flag and files, are trivial in comparison with the many good points of this excellent text. * * * 17. BAS1C: An Introduction to Computer Programming Using the BASIC Language, by William F. Sharpe and Nancy L. Jacob. Pub. May 1971 by The Free Press, div. of Macmillan, New York, N. Y., 177 pages, 6 1/2 x 10, $7.95 (hardcover), $3.95 (paperback). Starts out fine, well written, but gets much too hard except for top students. Rating: for the first seven chapters, A; for the remainder, C This is a revised edition of Sharpe's August 1967 book with the same title, same publisher, 137 pages. The first seven chapters are essentially the same; a few paragraphs have been added, several paragraphs reworded, some problems added, a different printer used for the terminal output, and the word "labels" changed to "strings." After chapter seven, the earlier book had four appendixes: the Dartmouth/GE system, the UWBIC system, "some useful programs" (critical path, grading, questionnaire analysis, regression and correlation, simultaneous linear equations, subroutines for automatic file maintenance), and a summary of the language. The revised edition eliminates all four appendixes, substitutes a chapter on conversational programming and five on extended BASIC, and adds an index. All or most of the new material was apparently written by Jacob. There are eight chapters in Part I on Essential BASIC: Introduction, Getting Started, Conditional Transfers, Reading and Printing, Loops, Lists and Tables, Functions and Subroutines, and Conversational Programming. Part Il, on Extended BASIC, has five chapters: More on Strings, String Applications, Matrix Commands, Programmer-Defined Functions, and Additional Features (ON-GOTO, RESTORE, TAB, expanded IF, files). The problems at the end of each chapter are immediately followed by the answers in full. These problems are not all as simple as they may look at first. One first impression is that much thought has been given to readability. The programs and runs are all printed by Teletype on shaded backgrounds to set them off, certain program lines are indented, and two hyphens are used between REMARK and the remark itself. The flowcharts are elegant, with shadow-lines that give a three-dimensional effect. The authors start right off, on page 7, with "here is an extremely simple program," and they present one with 21 lines. However, it really is simple, and five pages are taken to explain it in detail. Here is another book concerned with the appearance of output; a printout without headings is called "hardly very elegant output." The second program, also simple, is 42 lines long, and uses 20 REMARK lines, 8 of them blank. This is one of four books to use blank REMARK lines, and to indent certain program lines, mainly loops. It is also the only book to explain why variables should be initialized to zero, and one of the few to discuss minor print zones. The chapter is Reading and Printing is excellent, with fine problems; the chapter has nice and explicit detail work, going into all the odds and ends. The first half of the book is well written, in an easy, comfortable style, seeming to catch every every little important detail. There are some curious omissions: no examples of switch sorting, nor of lists or tables. There are very few program runs in the book - only eleven. At times the book seems aimed at math majors: standard deviation is explained in one sentence in a footnote. Page 40 starts a complete withholding program of 50 lines which, although straightforward, requires so many inequality statements that it may be quite confusing so early in the text; this is a little too soon to separate the men from the boys. The last program in this first half is for playing roulette, and although it has many explanatory remarks, it is still very hard to follow for a beginner with no teacher to turn to. The general picture changes from page 83 on. In the chapter on Conversational Programming, there is a program of four lines, another of 13 lines, and then a whopper, 136 lines, for playing blackjack, taking up, with its explanation, almost half the chapter. An interesting program, but why hit the reader over the head with such a long one only halfway through the text? There are few useful applications other than a financial language called FL-1, which gets into more mathematics than many readers may be able to understand or care for. This language takes up the entire chapter on String Applications, and may be appreciated only by the top-ranking math students. They might also go for the program that generates 1,000 random normally-distributed numbers, but the average reader probably would not. The imbalance resulting from the inclusion of these fancy mathematical programs is not realized until the section on files, which covers only four pages. A better balance might be more on files and less on higher math. Although Part ll on Extended BASIC "is designed for those persons with deeper interests and/or the need to use computers for more complex tasks," the text might appeal to a much wider audience if it didn't require a knowledge (or appreciation) of statistics, and use simpler programs in several instances. * * * 18. Computer Programming in BASIC, by Joseph P. Pavlovich and Thomas E. Tahan. Pub. June 24, 1971, by Holden-Day, San Francisco, Calif., 345 pages, 6 x 9, $8.95 (paperback). Generally quite good, with many examples, much detail, and a nice variety. Rating: B A somewhat mixed bag, although mostly on the plus side of the ledger. The back cover says that, for the reader, this book "acquaints him generally with the use of computers in a time-sharing environment as well as in a batch-processing environment." Yet the word "batch" isn't used in the book once. The book is said to "teach by example"; yes, it does, with nice long comments on the various parts of each program, and with many examples. The back cover also says the book is "designed not only for the experienced programmer, but also more especially for the beginning program." A neat trick if true, but it isn't. 314