Best of
Computer-Science

1997

The Algorithm Design Manual


Steven S. Skiena - 1997
    Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.

Mastering Regular Expressions


Jeffrey E.F. Friedl - 1997
    They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, VB.NET and C# (and any language using the .NET Framework), PHP, and MySQL.If you don't use regular expressions yet, you will discover in this book a whole new world of mastery over your data. If you already use them, you'll appreciate this book's unprecedented detail and breadth of coverage. If you think you know all you need to know about regularexpressions, this book is a stunning eye-opener.As this book shows, a command of regular expressions is an invaluable skill. Regular expressions allow you to code complex and subtle text processing that you never imagined could be automated. Regular expressions can save you time and aggravation. They can be used to craft elegant solutions to a wide range of problems. Once you've mastered regular expressions, they'll become an invaluable part of your toolkit. You will wonder how you ever got by without them.Yet despite their wide availability, flexibility, and unparalleled power, regular expressions are frequently underutilized. Yet what is power in the hands of an expert can be fraught with peril for the unwary. Mastering Regular Expressions will help you navigate the minefield to becoming an expert and help you optimize your use of regular expressions.Mastering Regular Expressions, Third Edition, now includes a full chapter devoted to PHP and its powerful and expressive suite of regular expression functions, in addition to enhanced PHP coverage in the central "core" chapters. Furthermore, this edition has been updated throughout to reflect advances in other languages, including expanded in-depth coverage of Sun's java.util.regex package, which has emerged as the standard Java regex implementation.Topics include:A comparison of features among different versions of many languages and toolsHow the regular expression engine worksOptimization (major savings available here!)Matching just what you want, but not what you don't wantSections and chapters on individual languagesWritten in the lucid, entertaining tone that makes a complex, dry topic become crystal-clear to programmers, and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions, Third Edition offers a wealth information that you can put to immediateuse.Reviews of this new edition and the second edition: "There isn't a better (or more useful) book available on regular expressions."--Zak Greant, Managing Director, eZ Systems"A real tour-de-force of a book which not only covers the mechanics of regexes in extraordinary detail but also talks about efficiency and the use of regexes in Perl, Java, and .NET...If you use regular expressions as part of your professional work (even if you already have a good book on whatever language you're programming in) I would strongly recommend this book to you."--Dr. Chris Brown, Linux Format"The author does an outstanding job leading the reader from regexnovice to master. The book is extremely easy to read and chock full ofuseful and relevant examples...Regular expressions are valuable toolsthat every developer should have in their toolbox. Mastering RegularExpressions is the definitive guide to the subject, and an outstandingresource that belongs on every programmer's bookshelf. Ten out of TenHorseshoes."--Jason Menard, Java Ranch

Conceptual Mathematics: A First Introduction to Categories


F. William Lawvere - 1997
    Written by two of the best-known names in categorical logic, Conceptual Mathematics is the first book to apply categories to the most elementary mathematics. It thus serves two purposes: first, to provide a key to mathematics for the general reader or beginning student; and second, to furnish an easy introduction to categories for computer scientists, logicians, physicists, and linguists who want to gain some familiarity with the categorical method without initially committing themselves to extended study.

Graphics Programming Black Book Special Edition


Michael Abrash - 1997
    -- Includes everything that master Abrash has ever written about optimization and real-time graphics.-- Explains the intricacies of Intel CPU operation and other "black art" performance issues.-- Treats both 2D and 3D graphics in great detail, with an emphasis on speed.

Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching


Robert Sedgewick - 1997
    Many new algorithms are presented, and the explanations of each algorithm are much more detailed than in previous editions. A new text design and detailed, innovative figures, with accompanying commentary, greatly enhance the presentation. The third edition retains the successful blend of theory and practice that has made Sedgewick's work an invaluable resource for more than 250,000 programmers! Whether you are a student learning the algorithms for the first time or a professional interested in having up-to-date reference material, you will find a wealth of useful information in this book.

Computational Geometry: Algorithms and Applications


Mark de Berg - 1997
    The focus is on algorithms and hence the book is well suited for students in computer science and engineering. Motivation is provided from the application areas: all solutions and techniques from computational geometry are related to particular applications in robotics, graphics, CAD/CAM, and geographic information systems. For students this motivation will be especially welcome. Modern insights in computational geometry are used to provide solutions that are both efficient and easy to understand and implement. All the basic techniques and topics from computational geometry, as well as several more advanced topics, are covered. The book is largely self-contained and can be used for self-study by anyone with a basic background in algorithms. In the second edition, besides revisions to the first edition, a number of new exercises have been added.

Molecular Modelling: Principles and Applications


Andrew R. Leach - 1997
    Postgraduates and researchers in academia and in the chemical and pharmaceutical industries. This new edition introduces background theory and techniques of molecular modelling, also illustrates applications in studying physical, chemical and biological phenomena. It includes simple numerical examples and numerous explanatory figures and a colour plate section.

The Essence of SQL: A Guide to Learning Most of SQL in the Least Amount of Time


David Rozenshtein - 1997
    -- Excellent resource for corporate training and as a university text.-- Author is a nationally recognized, widely published SQL expert.-- Compatible with all SQL dialects.

Calendrical Calculations


Nachum Dershowitz - 1997
    The authors frame the calendars of the world in a completely algorithmic form, allowing easy conversion among these calendars and the determination of secular and religious holidays. LISP code for all the algorithms are available on the Web.

Automata and Computability


Dexter C. Kozen - 1997
    The first part of the book is devoted to finite automata and their properties. Pushdown automata provide a broader class of models and enable the analysis of context-free languages. In the remaining chapters, Turing machines are introduced and the book culminates in analyses of effective computability, decidability, and G�del's incompleteness theorems. Students who already have some experience with elementary discrete mathematics will find this a well-paced first course, and a number of supplementary chapters introduce more advanced concepts.

Computer Architecture: Concepts and Evolution


Gerrit A. Blaauw - 1997
    Blaauw and Frederick P. Brooks, Jr. provide a definitive guide and reference for practicing computer architects and for students. The book complements Brooks recently updated classic, The Mythical Man-Month, focusing here on the design of hardware and there on software, here on the content of computer architecture and there on the process of architecture design. The books focus on architecture issues complements Blaauws early work on implementation techniques. Having experienced most of the computer age, the authors draw heavily on their first-hand knowledge, emphasizing timeless insights and observations. Blaauw and Brooks first develop a conceptual framework for understanding computer architecture. They then describe not only what present architectural practice is, but how it came to be so. A major theme is the early divergence and the later reconvergence of computer architectures. They examine both innovations that survived and became part of the standard computer, and the many ideas that were explored in real machines but did not survive. In describing the discards, they also address why these ideas did not make it. The authors goals ar

Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management


Michael J.A. Berry - 1997
    Packed with more than forty percent new and updated material, this edition shows business managers, marketing analysts, and data mining specialists how to harness fundamental data mining methods and techniques to solve common types of business problemsEach chapter covers a new data mining technique, and then shows readers how to apply the technique for improved marketing, sales, and customer supportThe authors build on their reputation for concise, clear, and practical explanations of complex concepts, making this book the perfect introduction to data miningMore advanced chapters cover such topics as how to prepare data for analysis and how to create the necessary infrastructure for data miningCovers core data mining techniques, including decision trees, neural networks, collaborative filtering, association rules, link analysis, clustering, and survival analysis

Numbers and Geometry


John Stiilwell - 1997
    The aim of this book is to give a broad view of these subjects at the level of calculus, without being a calculus (or a pre-calculus) book. Its roots are in arithmetic and geometry, the two opposite poles of mathematics, and the source of historic conceptual conflict. The resolution of this conflict, and its role in the development of mathematics, is one of the main stories in the book. The key is algebra, which brings arithmetic and geometry together, and allows them to flourish and branch out in new directions. Stillwell has chosen an array of exciting and worthwhile topics and elegantly combines mathematical history with mathematics. He believes that most of mathematics is about numbers, curves and functions, and the links between these concepts can be suggested by a thorough study of simple examples, such as the circle and the square. This book covers the main ideas of Euclid--geometry, arithmetic and the theory of real numbers, but with 2000 years of extra insights attached. NUMBERS AND GEOMETRY presupposes only high school algebra and therefore can be read by any well prepared student entering university. Moreover, this book will be popular with graduate students and researchers in mathematics because it is such an attractive and unusual treatment of fundamental topics. Also, it will serve admirably in courses aimed at giving students from other areas a view of some of the basic ideas in mathematics. There is a set of well-written exercises at the end of each section, so new ideas can be instantly tested and reinforced.

Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology


Dan Gusfield - 1997
    This volume is a comprehensive look at computer algorithms for string processing. In addition to pure computer science, Gusfield adds extensive discussions on biological problems that are cast as string problems and on methods developed to solve them. This text emphasizes the fundamental ideas and techniques central to today's applications. New approaches to this complex material simplify methods that up to now have been for the specialist alone. With over 400 exercises to reinforce the material and develop additional topics, the book is suitable as a text for graduate or advanced undergraduate students in computer science, computational biology, or bio-informatics.

Creating Web Pages Simplified


IDG Books Worldwide - 1997
    Illustrations are found on every page, helping users learn more with less reading.

Models of Computation: Exploring the Power of Computing


John E. Savage - 1997
    Using problems defined over infinite domains and abstract machine models as models, emphasis is given to concrete problems of the kind found in algorithms textbooks, as well as machine models related to current technology. The book integrates the theme of parallelism throughout the book (for example, circuits are presented as parallel machines) and studies the exchanges between space, time and other resources on a variety of machine models.

Software Verification and Validation for Practitioners and Managers


Steven R. Rakitin - 1997
    This edition has been revised and includes five new chapters and five new appendices focused on management techniques to make your company's software V&V efforts more cost-effective. Managers should learn how to help their organization create more accurate estimates and schedules. Practitioners should learn fundamental software V&V practices such as the formal inspection process, configuration management, effective testing techniques, and how to use measurements to drive further process improvements.

Artificial Neural Networks


Robert J. Schalkoff - 1997
    This new text has been designed to present the concepts of artificial neural networks in a concise and logical manner for your computer engineering students.

Foundations of Cryptography: Volume 1, Basic Tools


Oded Goldreich - 1997
    This book presents a rigorous and systematic treatment of the foundational issues: defining cryptographic tasks and solving new cryptographic problems using existing tools. It focuses on the basic mathematical tools: computational difficulty (one-way functions), pseudorandomness and zero-knowledge proofs. Rather than describing ad-hoc approaches, this book emphasizes the clarification of fundamental concepts and the demonstration of the feasibility of solving cryptographic problems. It is suitable for use in a graduate course on cryptography and as a reference book for experts.

Agent Sourcebook


Colin Harrison - 1997
    It describes the different commercial agents currently in use, strategic benefits, and integrating agents into existing systems. The authors use real case studies to show how to successfully deploy agents for specific business purposes.

Introduction to Information Theory and Data Compression


Darrel R. Hankerson - 1997
    Although the two topics are related, this unique treatment allows readers to explore either topic independently. The authors' presentation of information theory is pitched at an elementary level, making the book less daunting than most other texts. The second edition includes a detailed history of information theory that provides a solid background for the quantification of the topic as developed by Claude Shannon. It also covers the information rate of a code and the trade-off between error correction and rate of information transmission, probabilistic finite state source automata, and wavelet methods.

Fractional Graph Theory: A Rational Approach to the Theory of Graphs


Edward R. Scheinerman - 1997
    The graph model covers a wide variety of natural phenomena, and it is the study of these phenomena that gives rise to many of the questions asked by pure graph theorists.

Exploring Computer Science with Scheme


Oliver Grillmeyer - 1997
    The emphasis is on presenting a problem-solving approach and on providing a survey of all of the most important topics covered in computer science degree programmes. Scheme is used throughout as the programming language and the author stresses a functional programming approach which concentrates on the creation of simple functions that are composed to obtain the desired programming goal. Such simple functions are easily tested individually. This greatly helps in producing programs that work right first time. Throughout, the author presents techniques to aid in the writing of programs and makes liberal use of boxes which present "Mistakes to Avoid." Many programming examples are discussed in detail which illustrate general approaches to programming. These include: * abstracting a problem; * creating pseudo code as an intermediate solution; * top-down and bottom-up design; * building procedural and data abstractions; * writing progams in modules which are easily testable. Numerous exercises help the readers test their understanding of the material and develop some ideas in greater depth. As a result this text will make an ideal first course for all students coming to computer science for the first time.

The Essence Of Logic


John Kelly - 1997
    Propositional Logic is explored through using Semantic Tableaux, Natural Deduction and the Sequent Calculus. More formal axiomatic systems are examined and illustrated, and important theorems about these systems are presented. Properties of soundness, completeness and consistency are explained in terms of Propositional Systems; then concepts of resolution are introduced, with an eye towards their use in programming. The book then turns to First Order Predicate Logic, its theoretical underpinnings and uses.Undergraduate computer science and logic courses.

Windows NT File System Internals


Rajeev Nagar - 1997
    The book provides numerous code examples included on diskette, as well as the source for a complete, usable filter driver.This book appeals to a wide audience: system programmers implementing kernel-mode code such as file systems, device drivers, network redirectors, or filter drivers; system administrators who simply want to learn more about the systems they manage; software engineers interested in NT internals; and computer science students examining the intricacies of file system technology.Topics covered in the book include:An introduction to NT system components The NT I/O Manager The NT Virtual Memory Manager The NT Cache Manager Structured driver development under Windows NT Writing a file system driver Writing a filter driver

Modern Compiler Implementation in ML


Andrew W. Appel - 1997
    It includes good coverage of current techniques in code generation and register allocation, as well as functional and object-oriented languages, that are missing from most books. In addition, more advanced chapters are now included so that it can be used as the basis for two-semester or graduate course. The most accepted and successful techniques are described in a concise way, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual C header files. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the advanced chapters, covers the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.

The Netrexx Language


M.F. Cowlishaw - 1997
    With NetRexx, you can create programs and applets for the Java environment faster and more easily than by programming in Java. Using and writing Java classes is especially easy in NetRexx, as the different types of numbers and strings that Java expects are handled automatically by the language. Inspired by two very different programming languages, Rexx and Java, NetRexx blends the easy-to-learn syntax of Rexx with the robustness and portability of the Java environment. The result is a language which is tuned for both scripting and application development, and is therefore truly general-purpose. In this book, Cowlishaw both introduces and defines the NetRexx language; these descriptions are complemented by a discussion of the key design principles of the language.

Genetic Algorithms and Engineering Design


Mitsuo Gen - 1997
    Genetic Algorithms and Engineering Designis the only book to cover the most recent technologies and theirapplication to manufacturing, presenting a comprehensive and fullyup-to-date treatment of genetic algorithms in industrialengineering and operations research.Beginning with a tutorial on genetic algorithm fundamentals andtheir use in solving constrained and combinatorial optimizationproblems, the book applies these techniques to problems in specificareas--sequencing, scheduling and production plans, transportationand vehicle routing, facility layout, location-allocation, andmore. Each topic features a clearly written problem description, mathematical model, and summary of conventional heuristicalgorithms. All algorithms are explained in intuitive, rather thanhighly-technical, language and are reinforced with illustrativefigures and numerical examples.Written by two internationally acknowledged experts in the field, Genetic Algorithms and Engineering Design features originalmaterial on the foundation and application of genetic algorithms, and also standardizes the terms and symbols used in othersources--making this complex subject truly accessible to thebeginner as well as to the more advanced reader.Ideal for both self-study and classroom use, this self-containedreference provides indispensable state-of-the-art guidance toprofessionals and students working in industrial engineering, management science, operations research, computer science, andartificial intelligence. The only comprehensive, state-of-the-arttreatment available on the use of genetic algorithms in industrialengineering and operations research . . .Written by internationally recognized experts in the field ofgenetic algorithms and artificial intelligence, Genetic Algorithmsand Engineering Design provides total coverage of currenttechnologies and their application to manufacturing systems.Incorporating original material on the foundation and applicationof genetic algorithms, this unique resource also standardizes theterms and symbols used in other sources--making this complexsubject truly accessible to students as well as experiencedprofessionals. Designed for clarity and ease of use, thisself-contained reference: * Provides a comprehensive survey of selection strategies, penaltytechniques, and genetic operators used for constrained andcombinatorial optimization problems * Shows how to use genetic algorithms to make production schedules, solve facility/location problems, make transportation/vehiclerouting plans, enhance system reliability, and much more * Contains detailed numerical examples, plus more than 160auxiliary figures to make solution procedures transparent andunderstandable

Complexity and Real Computation


Lenore Blum - 1997
    The objects of study are algorithms defined within a formal model of computation. Upper bounds on the computational complexity of a problem are usually derived by constructing and analyzing specific algorithms. Meaningful lower bounds on computational complexity are harder to come by, and are not available for most problems of interest. The dominant approach in complexity theory is to consider algorithms as oper- ating on finite strings of symbols from a finite alphabet. Such strings may represent various discrete objects such as integers or algebraic expressions, but cannot rep- resent real or complex numbers, unless the numbers are rounded to approximate values from a discrete set. A major concern of the theory is the number of com- putation steps required to solve a problem, as a function of the length of the input string.

Java Design: Building Better Apps & Applets


Peter Coad - 1997
    They review object models, scenario views, multithreading, concurrency, exceptions, and more, presenting leading-edge design techniques that are proven to work. This new edition features UML 1.1 notation throughout; six powerful new strategies for designing with interfaces; important new coverage of swing classes, design models for Enterprise Beans, inner classes, packages, Infobus architecture and much more. The CD-ROM contains the breakthrough TOGETHER/J Whiteboard Edition, a completely free, Java-based, full UML, platform-independent visual modeler for enterprise-wide software development. For any professional software developer interested in client/server programming with Java.

Building an Optimizing Compiler


Bob Morgan - 1997
    These courses emphasize either the implementation of languages or parallel processing. Little analysis is presented for generating excellent code for a language on a single processor. Building an Optimizing Compiler addresses this gap. It provides a high level design for a thorough optimizer, code generator, scheduler and register allocator for a generic modern RISC processor. In the process it addresses the small issues that have a long impact on the implementation. The book approaches this subject from a practical viewpoint. Theory is introduced where intuitive arguments are insufficient, however the theory is described in practical terms. A single running example is used throughout the book to illustrate the compilation process. 7 Provides a complete theory for Static Single Aassignment Methods and partial redundancy methods for code optimization7 Provides a new generatization of register allocation techniques7 Techniques described are applicable to most programming languages for PCs, workstations or servers

The Complete PC Upgrade and Maintenance Guide


Mark Minasi - 1997
    Author Mark Minasi takes information from his experiences as a computer technician (among other things) and explains problems you may encounter. This book is full of sentences that begin, "I once saw ..." or "This happened to me ..." Rather than explain the differences among different kinds of screwdrivers in the beginning of the book, the author gets right to the point by showing how to disassemble a machine and see what's inside. Then, there's a sort of "hall of horrors" for PC components--a section that details how different parts can fail. Quickly, the book moves into explanations of general troubleshooting and problem-solving techniques. The bulk of this book is a series of chapters explaining how to install and fix various components, such as RAM, hard disks, modems, video-capture cards, and audio peripherals. There aren't a lot of illustrations, but most of the ones here are useful. Minasi wraps up his book with a table of hard drive specifications, manufacturer contact information, and an excellent, lengthy glossary of computer and hardware terms. You'll also find two companion CD-ROMs, one containing video clips of Minasi's lectures and the other containing handy diagnostic software. Taken as a whole, The Complete PC Upgrade and Maintenance Guide, Seventh Edition, is an excellent value. The author does an outstanding job of communicating his ample knowledge to the reader.

Writing for Computer Science


Justin Zobel - 1997
    For the most part the book is a discussion of good writing style and effective research strategies. Some of the material is accepted wisdom, some is controversial, and some is my opinions. Although the book is brief, it is designed to be comprehensive: some readers may be interested in exploring topics further, but for most readers this book should be suf?cient. The ?rst edition of this book was almost entirely about writing. This e- tion, partly in response to reader feedback and partly in response to issues that arose in my ownexperiences as an advisor, researcher, and referee, is also about research methods. Indeed, the two topics writing about and doing research are not clearly separated. It is a small step from asking how do I write? to askingwhatisitthatIwriteabout? As previously, the guidance on writing focuses on research, but much of the material is applicable to general technical and professional communication. Likewise, the guidance on the practice of research has broader lessons. A pr- titioner trying a new algorithm or explaining to colleagues why one solution is preferable to another should be con?dent that the arguments are built on robust foundations. And, while this edition has a stronger emphasis on research than did the ?rst, nothing has been deleted; there is additional material on research, but the guidance on writing has not been taken away."

The Supermen: The Story of Seymour Cray and the Technical Wizards Behind the Supercomputer


Charles J. Murray - 1997
    This is the story of a technical genius who, against all odds, created a series of machines that revolutionized the computing industry. Chronicling each major breakthrough, Murray takes us behind the scenes to witness late-night brainstorming sessions, miraculous eleventh-hour fixes, and flashes of insight when bold new ideas were cooked up. Drawing from rare in-depth interviews with Seymour Cray, Murray gives us an unparalleled portrait of the man and his methods, reporting not only Cray's personal reflections, but the recollections of his closest colleagues and the truth behind the rumors.