Issue No. 06 - June (2005 vol. 38)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2005.184
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd ed., Barry Wilkinson and Michael Allen. This non-theoretical, highly accessible text, which is linked to real parallel programming software, provides a practical approach to techniques that students can use to write and evaluate their parallel programs.
Supported by the National Science Foundation and exhaustively class-tested, this book concentrates exclusively on parallel programs that can be executed on networked workstations using freely available parallel software tools rather than requiring access to a special multiprocessor system.
This second edition has been revised to incorporate a greater focus on cluster programming, which has become more widespread with the availability of low-cost computers.
Prentice Hall PTR; www.phptr.com; 0-13-140563-2; 496 pp.; $83.00.
Data Mining and Knowledge Discovery with Evolutionary Algorithms, Alex A. Freitas. This book integrates two areas of computer science: data mining and evolutionary algorithms. Both areas have become increasingly popular in the last few years, and their integration is currently the subject of active research.
The author emphasizes the importance of discovering comprehensible, interesting knowledge that can be potentially useful for intelligent decision making. He observes that applying evolutionary algorithms to data mining leverages their robust search methods to perform a global search in the space of candidate solutions. In contrast, most rule-induction methods perform a local, greedy search in the space of candidate rules. Intuitively, the global search of evolutionary algorithms can discover interesting rules and patterns that the greedy search would miss.
Springer; www.springeronline.com; 3-540-43331-7; 265 pp.; $63.95.
Understanding Your User: A Practical Guide to User Requirements, Methods, Tools, and Techniques, Catherine Courage and Kathy Baxter. Many companies employ a user-centered design process, but for most companies, usability begins and ends with the usability test. Although usability testing is a critical part of an effective user-centered life cycle, it provides only one component of the UCD process. This book focuses on the requirements-gathering stage, which often receives less attention than usability testing but is equally important.
This book focuses on the user-requirements-gathering stage of product development and provides techniques that may be new to usability professionals. For each technique, readers will learn how to prepare for and conduct the activity and how to analyze and present it. Because each method provides different information about users and their requirements, the techniques can be used together to form a complete picture of the users' requirements or separately to address specific product questions.
Morgan Kaufmann; www.mkp.com; 1-55860-935-0; 704 pp.; $59.95.
Agile Development with ICONIX Process: People, Process, and Pragmatism, Doug Rosenberg, Matt Stephens, and Mark Collins-Cope. This book describes how to apply the ICONIX Process—a minimal, use-case-driven modeling process—in an agile software project. It offers practical advice for avoiding common agile pitfalls and defines a core agile subset that can help readers avoid spending years learning to do agile programming.
The book follows a real-life .NET/C# project through several iterations from inception and UML modeling to working code. Readers can then go online to compare the finished product with the initial set of use cases.
The authors also introduce several extensions to the core ICONIX process, including combining test-driven development with upfront design to maximize both approaches, using Java and JUnit examples.
Apress; www.apress.com; 1-59059-464-9; 261 pp.; $39.99.
An Introduction to Programming with Mathematica, 3rd ed., Paul Wellin, Richard Gaylord, and Samuel Kamin. The authors of this book introduce the Mathematica programming language to a wide audience. Since the book's initial edition, significant changes have occurred in Mathematica and its use worldwide. Keeping pace with these changes, the updated version of this book includes new and revised chapters on numerics, procedural, rule-based, and front-end programming, and it covers the latest features up to and including Mathematica 5.1.
Mathematica notebooks, available from the publisher, contain examples, programs, and solutions to the book's exercises. Additionally, material to supplement later versions of the software will be made available.
This text can help scientific students, researchers, and programmers deepen their understanding of Mathematica. It should also appeal to those keen to program using an interactive language containing programming paradigms from all major programming languages.
Cambridge University Press; www.cambridge.org; 0-521-84678-1; 570 pp.; $70.