BOOK REVIEWS
J. Chem. Inf. Comput. Sci., Vol. 36, No. 1, 1996 155
BOOK REVIEWS A Jump Start Course in C++ Programming. By James W. Cooper and Richard B. Lam. Wiley-Interscience: New York, 1994. 278 pp. ISBN 0-471-03171-2. $29.95. A Jump Start Course in C++ Programming by James W. Cooper and Richard B. Lam was developed from a series of three, 2-h lectures designed to teach programmers who are fluent in C how to program in C++ in 3 days. The book is divided into four sections corresponding to the three “daily lessons” (about 60, 60, and 40 pages in length, respectively) and a final section of about 80 pages, which describes advanced C++ examples. A 23-page appendix provides a brief introduction to C, and one of about 4 pages describes the included disk, which contains Borland C++ v.4.0 source code for the programs described in the book. A 6-page index appears to be reasonably good. Each of the book’s 30 chapters begins with a quote from a Gilbert and Sullivan operetta that is apparently selected at random and included only to suggest that the authors have sensed that computer programming does not constitute all of human culture. Although the claim of this book to teach C++ in 3 days is not particularly meaningful, it does provide a good course of instruction. The text is clear and free of jargon (assuming that you are a C programmer). The book is certainly a guide rather than a reference work, as suggested by its small size (and index) in comparison to other C++ programming books currently available. Many books of this genre exist, including Teach Yourself Object-Oriented Programming with Turbo C++ by Greg Perry, Sams Books, Indianapolis, 1993; The Visual C++ Construction Kit (for Microsoft Visual C++) by K. E. Bugg and J. Tackett, Wiley, New York, 1994; and others devoted specifically to several other compilers that are now available. Chemists might choose this book because it contains a chapter (and program) on “Simplex Optimization of Variables”. Other examples deal with neural networks and drawing fractals. The first section deals with some of the more common syntax and semantic changes in C++, such as comments, I/O, and operator overloading. Also, this section introduces the reader to classes, an object-oriented construct with no real equivalent in C. This section is very straightforward and easy to follow. The second section builds on the notion of classes and introduces the reader to object-oriented programming, which is one of the most heralded features of C++, with no true equivalent in C. Also introduced is the concept of a virtual function and a stream (a file object in C++). This section definitely can be read over twice, but leaves the reader with solid understanding. The third section is much more of a hands-on section in which the concepts in the first two sections are not only expanded upon but also put to use with examples, which must be studied to make the section meaningful. A linked list data type is instantiated, and a neural net is written in C++. The example programs contained a few typographical errors but nothing that should be disturbing to the target audience. As this is more of a guide than a reference, some of the more complicated concepts are only touched upon briefly. One of these concepts, a very powerful one, is template classes. This book does not develop more advanced topics, like writing a class of a class or using a template (such as a stack of strings).
Daniel Dewey and Ed Vitz Kutztown UniVersity CI950318O
Exploring QSAR. By Corwin Hansch, Albert Leo, and David Hoekman. American Chemical Society, Washington, DC. 1995. 2 Vols. xix + 348/xvii + 557 pp., ISBN (set) 0-84122993-7 hdbk. $99.95, 0-8412-3060-9 pbk. $74.95; (Vol. 1) 0-8412-2987-2 hdbk. $69.95, 0-8412-2988-0 pbk. $49.95; (Vol. 2) 0-8412-2991-0 hdbk. $49.95, 0-8412-2992-9 pbk. $39.95.
Volume 1 of this set is a critical evaluation of the history and current practice of predicting biological activities from quantitative structureactivity relationships (QSARs). A complaint sometimes made against the QSAR approach is that it lacks value because it is insufficiently quantitative. In their preface, the authors address this complaint by making the excellent point that it is unrealistic to expect to characterize reactivity in an organism, or even in a cell, more accurately than it can be characterized in a pure solvent in the laboratory. Indeed, the experimental measurement accuracy for many of the biological end points that QSAR seeks to predict may be (25% or worse. Thus, the reader is forewarned not to expect the correlation equations with r2 > 0.99 sometimes found elsewhere. The organization of volume 1 is at first historical. It is apparent from the beginning that prediction of biological activity is usually a two-step process. One or more physicochemical property values or graph-theoretical parameters are predicted from structure, and the activity is in turn predicted from those values. Historically, perhaps the single most successful such parameter has been log KOW, the logarithm of the octanol-water partition coefficient. Hansch and Leo are singularly well qualified to write about this topic, since they have been intimately involved in the effort to predict log KOW from its inception to the present. They also include a useful discussion of the strengths and weaknesses of various experimental methods for measuring log KOW. As one might expect, however, the authors tend to describe their own prediction method (CLOGP) at the expense of others. In particular, the chapter titled “Calculation by Fragments” should instead have been called something like “The History and Development of CLOGP”, since no mention is made of alternative methods of calculating log KOW by fragments, some of which are in common use. It is also rather annoying to see the same quantity symbolized as log P, log P(octanol-water), log P(O/W), log POW, and log Poct all in the same chapter, while the commonly used log KOW is omitted altogether. The later chapters on present-day work are organized by type of effect (nonspecific toxicity, effects on proteins and enzymes, metabolic effects, mutagenicity and carcinogenicity, antimicrobial effects, etc.). A large number of examples from the literature are given, along with discussion of the relative success or failure of most of them. It boggles the mind to imagine how long it would take to assemble this amount of information on one’s own, much less organize it in any coherent fashion. A final chapter “Notes on the Design of Bioactive Compounds” gives some basic mathematics of regression analysis and notes that a valid regression equation should reflect compounds of low activity as well as high. The authors also concede that QSAR is not really useful for the generation of entirely new leads, although radical departures from established regression equations may be instructive. Volume 2 is an extensive collection of experimental Hammett σ and log KOW (octanol-water partition coefficient) values. The authors have noted which values they think are best, although for some compounds they select more than one “best” value, and none for others. An appendix contains structure diagrams for entries where the structure is not readily apparent from the name. Some readers might object that this compilation is little more than a literature dump, and the authors admit that their goal in this volume was to be inclusive rather than critical. Surely, however, there is value in making this amount of data available in one place at a reasonable price (by today’s standards, at least), especially since the original literature references are included. This volume would likely save anyone who uses this sort of information on a regular basis many hours in the library. Volume 1 of Exploring QSAR certainly lives up to its title, providing as it does a thorough exploration of both the history and the current practice of QSAR prediction of all sorts of biological activity. Moreover, anyone interested in knowing what QSAR work, if any, related to a particular problem has been published would likely find this book a useful supplement to a keyword literature search. Volume 2 is more a compendium of data that workers interested in exploring or using QSAR might wish to have available. One might want to know, for example, as this reviewer recently did, whether experimental log KOW determinations have been made for a series of homologues of a
156 J. Chem. Inf. Comput. Sci., Vol. 36, No. 1, 1996 particular type. In this volume, that information was available on a time scale of minutes rather than hours or days. QSAR is a special topic, to be sure, but workers in the field will probably put these volumes to good use. This review was written by Gordon Cash in his private capacity. No official support or endorsement by the Environmental Protection
0095-2338/96/1636-0156$12.00/0
BOOK REVIEWS Agency is intended or should be inferred.
Gordon G. Cash United States EnVironmental Agency CI950319G
© 1996 American Chemical Society