fine for the student who is weak in geometry, although it would bore one who isn't. Although the beginning of the book is extremely slow, the last chapter, on approximations, is not slow and easy at all, and will be understood only by the bright students. The approximations are for sine and cosine, natural logarithms, slope of tangent line, and limits. 8. Introduction to Programming: A BASIC Approach, by Van Court Hare, Jr. Pub. May 25, 1970, by Harcourt, Brace & Jovanovich, New York, N. Y., 436 pages, 6 x 9, $10.95 (hardcover). The only book to go extensively into computer hardware (120 pages) and also FORTRAN (60 pages).Fairly well done, with many interesting features. Rating: for the entire book: B+; for the BASIC portion only: B The book gets a higher rating for its entirety than for the BASIC portion alone because of its uniqueness as a three-part text: hardware, BASIC, and FORTRAN. The beginning chapters, on "the history and economics of computer development, the parts of a computer system, and the way in which computers handle data," go into just about the right amount of detail: enough to be informative, not so much as to be confusing and overly technical. The author goes into much more than technical developments; he tells how, for instance, Remington Rand had the "initial lead in manufacturing large-scale machines," but lost out to IBM. The brief section on the development of programming languages is interesting and the only one in all these books. Hare is also the only author to quote from the Bible: "But let your communication be Yea, yea, Nay, nay; for whatsoever is more than these cometh of evil" (from Matthew 5:37, part of the Sermon on the Mount). Hare is worldly as well as colloquial: he uses Playboy as an example of a publication, and writes of cores as "small donuts of magnetic material." And he has some interesting comments, such as on reliability: "If our automobiles and home television sets worked one millionth as reliably as computers do, there would be no local electronic or garage mechanic who could pay his rent; they would all be out of business." Each chapter ends with problems, without answers. Some of the sentences in the hardware portion of the book are so terse as to be confusing to the novice, such as "The output of the computer is often in excess of printing capability, and a number of printers may be used ..."Another sentence that could use some more explanation is "The light pen is an outgrowth of friend-or-foe radar developments." An inquiring mind might want to know a little more than just that. Around page 100 the author begins to slide slowly into BASIC, in a chapter on Programming Essentials, without going into any details of the language. The first exposure to a BASIC program is on page 128, with a five-liner on net pay, and three pages of explanation. Although many short programs are presented in the following three dozen pages, there is not one single run, not in the entire chapter on END, PRINT, READ, and DATA, nor in the chapter on LET and stored functions. Is this to get the reader to try these short programs on a terminal? Not until page 164 is there a program of any substance: eight lines on summing the numbers from 1 to 10. Yet by page I74 there is a 32-line program, which, although simple, might not be understood, with so little preparation up to this point, except by the brighter readers and students. The program on page I76 is also presented without adequate preparation, as are several subsequent programs. Sorting is covered only in problems at the end of a chapter, not in the preceding text. These are not problems, actually, but rather are presentations of three sorting programs. 308 Seven pages are devoted to matrices, with only one program on matrix operations, in a chapter on BASIC extensions, called Adult BASIC. The definition of matrix inversion is quite murky except to an expert on the subject, or to someone who has just taken a course on it. Although the errors in the book are minor, they seem to stand out, perhaps because most of them are so obvious, such as (on page 289), "octal 4 is equal to 010." A few pages earlier, the text is careful to point out that in the preceding program, there is a leading space before a string variable in quotes. Yet in the program itself, there is no leading space in the referenced line. Many of the programs are interesting, but many of them have too little explanation for a good understanding. An example is the program on page 296 for right-justifying the output, with only five explanatory sentences; enough for an experienced programmer, but too little for a beginner. The portion on BASIC ends with a chapter of selected computer problems. They are all long and complex, much too much for the little preparation so far, on computer ciphering and deciphering, dating game, mazes and labyrinths. Very nice, but too hard, and with too little explanation. The author seems to assume top students who will dig hard into the problems and figure them out as a challenge. Starting on page 233, Hare begins to work toward FORTRAN, saying it is more flexible, in a footnote. (This book has more footnotes than many scholarly monographs: 96 of them.) Hare seems more interested in the nitty-gritty of FORTRAN than of BASIC, where he seems more interested in applications. A FORTRAN program on cross-tabulation is explained in far greater detail than any of the BASIC programs. There is some nice detail on the importance of rounding off in affecting close decisions, such as credit being accepted or rejected. However, FORTRAN is somehow made to seem hellishly complex, which to some it may well be. There are I8 chapters: From Loom to Electron; Bistable Devices and Binary Codes; Input/Output Devices; Memory Devices; Data and Programs in Memory; Programming Essentials; Getting the Computer to Work; END, PRINT, READ, and DATA; LET and Stored Functions; REM,GO TO, IF-THEN, and INPUT; FOR-NEXT, Subscripted Variables, and DIM; Subroutines and Their Use; A Baker's Dozen (I3 problems with computer solutions); Extensions of the BASIC Language; Selected Computer Problems; Extending What You Have Learned (data format, introduction to FORTRAN); and two chapters on Thirteen FORTRAN Translations (of the BASIC programs in chapter 13). The first appendix is unique: a side-by-side comparison of the individual features and statements of BASIC and FORTRAN, nine pages worth. Hare has the longest glossary of all these authors: 16 pages. Nolan (5) has 11%, Sass (21) has 8, and Spencer (6) has 5 pages. The author goes into great detail in some places, such as explaining why most systems require RUBOUT at the end of each line on paper tape when punching, and also the reason for typing TAPE before inputting tape; no other author explains these two things. Yet when it comes to the chapter involving PRINT, there are no examples of the various PRINT options. Nor is there a single printout in the chapter on LET and stored functions. The reader finds himself saying "Show me!" Thus this is an uneven book, with too much detail in many places where it isn't really necessary, and not enough in all too many instances. The book is set in a sans-serif type. Some programs are set in boldface, others are Teletype originals in various reductions from full-size to quite small; the mixture produces many odd-looking pages. This book may be suitable for class use where the problems will be worked, but not for reading only. The author seems to be writing on a programmer~to-programmer level.