Skip to Main Content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.

RCL Career Resources Computer and Information Technology: Computer Programming

RCL Computer Programming + Choice Titles

Outstanding Academic Title

When conducting a study of the design concepts in programming languages, there is no more comprehensive resource than this book. The work explores design concepts using a mathematical metalanguage, an abstract syntax, and a method of expressing denotational semantics. Using such abstract representations, Turbak (Wellesley College) and Gifford (MIT) are able to describe the concepts at work in the many programming languages in use today, without actually using those specific programming languages to illustrate the concepts. This keeps the information pure and uncorrupted by language nuances. It also invites students of this topic to imagine programming language syntaxes of their own, considering what might be used to express these languages' declarative and behavioral semantics. Excellent in content and profound in scope, this advanced book is destined to be cited among the definitive works in modern computer science for years to come. The volume includes an extensive set of references. Summing Up: Essential. Upper-division undergraduate through professional collections.

--F. H. Wild III, University of Rhode Island

Outstanding Academic Title

Unfortunately, humankind is flawed and will make mistakes. For programmers, finding their mistakes is at once necessary but often extremely difficult because of the sophistication of programs today. Although there are a few books on debugging, generally these publications cover only source code debuggers. This work goes further and stands out as a guide for logically approaching the whole problem. A new student may find a source code debugger interesting to see what is happening "inside" his/her program. However, professionals face regression testing, possible memory leaks, problems with multithreading and parallel programs, poor performance, and problems compiling and linking their work. Software developers Grötker and colleagues tell readers how to set up a structured process for debugging, categorize the possible bugs, demonstrate writing programs so that they may be more easily debugged, and examine the various tools available. The work contains voluminous appendixes, listing the various programs that can be used and where to get them. In addition, the authors have a Web site providing links to the sources for the various tools and a listing of other debugging books along with relevant journals. Surely an essential resource for professional programmers. Summing Up: Highly recommended. Academic, professional, and two-year technical program libraries, all levels.

--R. P. Sarna, Maine Maritime Academy

This third edition of Essentials of Programming Languages (2nd ed., 2001; 1st ed., 1992) provides a very thorough analysis of the theory behind computer language interpreters. The book points out that not only are interpreters for implementing specific computer languages necessary, but that many interactive programs essentially use embedded interpreters--though programmers don't always realize that. Friedman (Indiana Univ.) and Wand (Northeastern Univ.) cover topics such as data abstraction, expressions, states, continuation-passing, and objects and classes. An appendix covers a parsing system. Each topic is developed carefully--reminiscent of a good number theory work. As such, it is not a book for the beginning programmer, but rather for programming majors, graduate students, and working professional programmers. It is assumed that the reader has a background in data structures and experience in a procedural language as well as a language like Scheme, ML, Python, or Haskell. The code illustrating the different concepts is written in Scheme, specifically PLT's DrScheme (available free at http://www.drscheme.org/), an excellent choice for the book. In fact, in DrScheme under Choose Language, users can select a version of Scheme tailored to an earlier edition of this work. This book should be in libraries serving professional programmers or those studying to become one. Summing Up: Highly recommended. Undergraduates through professionals.

--R. P. Sarna, Maine Maritime Academy

Nair (Creighton Univ.) aims to teach Java using an object-oriented approach predicated on the capabilities of object orientation. In particular, the author presents object orientation as the primary means to simulate real life, adhering to the notion that "everything is an object." The book covers a good deal of Java, while also providing the rudiments of UML, some fundamental algorithms like sorting, and data structures like arrays. The coverage is intended for the beginner. More advanced language concepts such as exceptions, for example, are covered only briefly. Nair adopts an "incremental approach to topic presentation" that is successful in partitioning the main concepts of Java into separate chapters. But at times this approach may lead to confusion as some chapters do not introduce new Java concepts, providing instead some insight into computer science. The abundance of examples and exercises is very valuable, but a student may need further motivation (the "what's in it for me" factor) that must be supplied by the instructor. The notes on common pitfalls and good programming practice are useful. The style in this book is slightly uneven, with minor effects on readability. Summing Up: Recommended. Lower-division undergraduates, two-year technical program students, and general readers.

--L. Benedicenti, University of Regina