Best of
Computer-Science

2006

CLR via C# (Pro-Developer)


Jeffrey Richter - 2006
    This guide is suitable for developers building various kinds of application - including Microsoft[registered] ASP.NET, Windows[registered] Forms, Microsoft[registered] SQL Server[registered], Web services, and console applications.

Pattern Recognition and Machine Learning


Christopher M. Bishop - 2006
    However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years. In particular, Bayesian methods have grown from a specialist niche to become mainstream, while graphical models have emerged as a general framework for describing and applying probabilistic models. Also, the practical applicability of Bayesian methods has been greatly enhanced through the development of a range of approximate inference algorithms such as variational Bayes and expectation propagation. Similarly, new models based on kernels have had a significant impact on both algorithms and applications. This new textbook reflects these recent developments while providing a comprehensive introduction to the fields of pattern recognition and machine learning. It is aimed at advanced undergraduates or first-year PhD students, as well as researchers and practitioners, and assumes no previous knowledge of pattern recognition or machine learning concepts. Knowledge of multivariate calculus and basic linear algebra is required, and some familiarity with probabilities would be helpful though not essential as the book includes a self-contained introduction to basic probability theory.

Agile Principles, Patterns, and Practices in C#


Robert C. Martin - 2006
    Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#. This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors' Web site.Readers will come away from this book understandingAgile principles, and the fourteen practices of Extreme Programming Spiking, splitting, velocity, and planning iterations and releases Test-driven development, test-first design, and acceptance testing Refactoring with unit testing Pair programming Agile design and design smells The five types of UML diagrams and how to use them effectively Object-oriented package design and design patterns How to put all of it together for a real-world project Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.

Implementing Lean Software Development: From Concept to Cash


Mary Poppendieck - 2006
    These principles have revolutionized manufacturing and have been adopted by the most innovative product companies including Toyota and 3M. In 2003 the Poppendieck's published Lean Software Development: An Agile Toolkit which showed how these same lean principles can be successfully applied to software development. Since that publication the authors have increased their understanding of Lean and Agile problems faced by large organizations and have emerged as leading advocates for bringing Lean production techniques to software development. While their first book provides an introduction, theoretical advice and a reference to Lean, this follow-up incorporates their gained knowledge and understanding of what works and goes steps further to provide hands-on guidance for implementing a Lean system. Using historical case studies from prominent companies such as Polaris, Lockheed and Fujistu the authors prove the overall value of Lean practices and shows how to effectively apply these methods to software production.

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities


Mark Dowd - 2006
    Drawing on their extraordinary experience, they introduce a start-to-finish methodology for "ripping apart" applications to reveal even the most subtle and well-hidden security flaws.

Algorithms


Sanjoy Dasgupta - 2006
    Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal. Features include: The use of boxes to strengthen the narrative: pieces that provide historical context, descriptions of how the algorithms are used in practice, and excursions for the mathematically sophisticated.Carefully chosen advanced topics that can be skipped in a standard one-semester course, but can be covered in an advanced algorithms course or in a more leisurely two-semester sequence.An accessible treatment of linear programming introduces students to one of the greatest achievements in algorithms. An optional chapter on the quantum algorithm for factoring provides a unique peephole into this exciting topic. In addition to the text, DasGupta also offers a Solutions Manual, which is available on the Online Learning Center.Algorithms is an outstanding undergraduate text, equally informed by the historical roots and contemporary applications of its subject. Like a captivating novel, it is a joy to read. Tim Roughgarden Stanford University

Linux Administration Handbook


Evi Nemeth - 2006
    Several things make this one stand out. Here's the most important: Linux Administration Handbook is designed for administrators working in industrial-strength production environments. It never glosses over the "subtleties" that can get you in big trouble. It doesn't stint on technical detail. It's never satisfied with restating the man pages. And it's full of war stories from folks who've been there. Evi Nemeth and her coauthors: Boy, have they ever been there. (Just ask any gray-bearded Unix sysadmin about their earlier, legendary Unix System Administration Handbook.) There's only been one downside to Linux Administration Handbook: It's been nearly five years since it was written. Well, that flaw's just been remedied. The new Second Edition has been systematically revised for the latest administration tools (think Nagios and LVM). It's carefully targeted at today's five most widely used distributions: Red Hat Enterprise Linux 4.3, Fedora Core 5, SUSE Linux 10.2, Debian 3.2 "Etch," and Ubuntu 6.06. The result: a book you can rely on for the next five years. Rely on to do what? Just about everything. You'll find chapters on booting and shutting down; "rootly" powers; controlling processes; the Linux filesystem; on adding new users. You'll learn the most efficient ways to perform backups. How to make sense of syslogs and log files. Everything you need to know about drivers, the kernel, networking, NFS -- and Internet services, from web hosting to email. Nemeth & Company bring their experience to bear on troubleshooting, performance optimization, print management, security, Windows interoperability, even "policies and politics." Whatever Linux books you already own, if you depend on Linux to run efficiently and reliably, you need this one, too. Bill Camarda, from the December 2006 href="http://www.barnesandnoble.com/newslet... Only

Computer Architecture: A Quantitative Approach


John L. Hennessy - 2006
    Today, Intel and other semiconductor firms are abandoning the single fast processor model in favor of multi-core microprocessors--chips that combine two or more processors in a single package. In the fourth edition of "Computer Architecture," the authors focus on this historic shift, increasing their coverage of multiprocessors and exploring the most effective ways of achieving parallelism as the key to unlocking the power of multiple processor architectures. Additionally, the new edition has expanded and updated coverage of design topics beyond processor performance, including power, reliability, availability, and dependability. CD System Requirements"PDF Viewer"The CD material includes PDF documents that you can read with a PDF viewer such as Adobe, Acrobat or Adobe Reader. Recent versions of Adobe Reader for some platforms are included on the CD. "HTML Browser"The navigation framework on this CD is delivered in HTML and JavaScript. It is recommended that you install the latest version of your favorite HTML browser to view this CD. The content has been verified under Windows XP with the following browsers: Internet Explorer 6.0, Firefox 1.5; under Mac OS X (Panther) with the following browsers: Internet Explorer 5.2, Firefox 1.0.6, Safari 1.3; and under Mandriva Linux 2006 with the following browsers: Firefox 1.0.6, Konqueror 3.4.2, Mozilla 1.7.11. The content is designed to be viewed in a browser window that is at least 720 pixels wide. You may find the content does not display well if your display is not set to at least 1024x768 pixel resolution. "Operating System"This CD can be used under any operating system that includes an HTML browser and a PDF viewer. This includes Windows, Mac OS, and most Linux and Unix systems. Increased coverage on achieving parallelism with multiprocessors. Case studies of latest technology from industry including the Sun Niagara Multiprocessor, AMD Opteron, and Pentium 4. Three review appendices, included in the printed volume, review the basic and intermediate principles the main text relies upon. Eight reference appendices, collected on the CD, cover a range of topics including specific architectures, embedded systems, application specific processors--some guest authored by subject experts.

Mac OS X Internals: A Systems Approach


Amit Singh - 2006
    Understanding the design, implementation, and workings of Mac OS X requires examination of several technologies that differ in their age, origins, philosophies, and roles. Mac OS X Internals: A Systems Approach is the first book that dissects the internals of the system, presenting a detailed picture that grows incrementally as you read. For example, you will learn the roles of the firmware, the bootloader, the Mach and BSD kernel components (including the process, virtual memory, IPC, and file system layers), the object-oriented I/O Kit driver framework, user libraries, and other core pieces of software. You will learn how these pieces connect and work internally, where they originated, and how they evolved. The book also covers several key areas of the Intel-based Macintosh computers.A solid understanding of system internals is immensely useful in design, development, and debugging for programmers of various skill levels. System programmers can use the book as a reference and to construct a better picture of how the core system works. Application programmers can gain a deeper understanding of how their applications interact with the system. System administrators and power users can use the book to harness the power of the rich environment offered by Mac OS X. Finally, members of the Windows, Linux, BSD, and other Unix communities will find the book valuable in comparing and contrasting Mac OS X with their respective systems. Mac OS X Internals focuses on the technical aspects of OS X and is so full of extremely useful information and programming examples that it will definitely become a mandatory tool for every Mac OS X programmer.

Inside the Machine


Jon Stokes - 2006
    Once you understand how the microprocessor-or central processing unit (CPU)-works, you'll have a firm grasp of the fundamental concepts at the heart of all modern computing.Inside the Machine, from the co-founder of the highly respected Ars Technica website, explains how microprocessors operate-what they do and how they do it. The book uses analogies, full-color diagrams, and clear language to convey the ideas that form the basis of modern computing. After discussing computers in the abstract, the book examines specific microprocessors from Intel, IBM, and Motorola, from the original models up through today's leading processors. It contains the most comprehensive and up-to-date information available (online or in print) on Intel's latest processors: the Pentium M, Core, and Core 2 Duo. Inside the Machine also explains technology terms and concepts that readers often hear but may not fully understand, such as "pipelining," "L1 cache," "main memory," "superscalar processing," and "out-of-order execution."Includes discussion of:Parts of the computer and microprocessor Programming fundamentals (arithmetic instructions, memory accesses, control flow instructions, and data types) Intermediate and advanced microprocessor concepts (branch prediction and speculative execution) Intermediate and advanced microprocessor concepts (branch prediction and speculative execution) Intermediate and advanced computing concepts (instruction set architectures, RISC and CISC, the memory hierarchy, and encoding and decoding machine language instructions) 64-bit computing vs. 32-bit computing Caching and performance Inside the Machine is perfect for students of science and engineering, IT and business professionals, and the growing community of hardware tinkerers who like to dig into the guts of their machines.

Out of the Tar Pit


Ben Moseley - 2006
    

The Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation


Donald Ervin Knuth - 2006
    Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually. The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e ISBN: 0321751043 Art of Computer Programming, Volume 4, Fascicle 4, The: Generating All Trees--History of Combinatorial Generation: Generating All Trees--History of Combinatorial Generation This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science.The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his cookbook solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published at regular intervals. Each fascicle will encompass a section or more of wholly new or revised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 4, Fascicle 4 This latest fascicle covers the generation of all trees, a basic topic that has surprisingly rich ties to the first three volumes of "The Art of Computer Programming." In thoroughly discussing this well-known subject, while providing 124 new exercises, Knuth continues to build a firm foundation for programming. To that same end, this fascicle also covers the history of combinatorial generation. Spanning many centuries, across many parts of the world, Knuth tells a fascinating story of interest and relevance to every artful programmer, much of it never before told. The story even includes a touch of suspense: two problems that no one has yet been able to solve. "

Linux Phrasebook


Scott Granneman - 2006
    Itincludes code phrases that allow Linux users to employ the command line to complete onerous and repetitive tasks, as well as flexible code and commands can be customized to meet the needs of any Linux user. The concise information combined with random accessibility makes the "Linux Phrasebook "a robust, yet agile, reference guide that no Linux user should be without.

Object-Oriented Programming with ANSI and Turbo C++


Ashok Namdev Kamthane - 2006
    This comprehensive book, enriched with illustrations and a number of solved programs, will help you unleash the full potential of C++. Prof. Kamthane explains each concept in an easy-to-understand manner and takes you straight to applications.

Solaris Internals: Solaris 10 and Opensolaris Kernel Architecture


Richard McDougall - 2006
    Any person using Solaris--in any capacity--would be remiss not to include these two new volumes in their personal library. With advanced observability tools in Solaris (likeDTrace), you will more often find yourself in what was previously unchartable territory. Solaris(TM) Internals, Second Edition, provides us a fantastic means to be able to quickly understand these systems and further explore the Solaris architecture--especially when coupled with OpenSolaris source availability."--Jarod Jenson, chief systems architect, Aeysis"The Solaris(TM) Internals volumes by Jim Mauro and Richard McDougall must be on your bookshelf if you are interested in in-depth knowledge of Solaris operating system internals and architecture. As a senior Unix engineer for many years, I found the first edition of Solaris(TM) Internals the only fully comprehensive source for kernel developers, systems programmers, and systems administrators. The new second edition, with the companion performance and debugging book, is an indispensable reference set, containing many useful and practical explanations of Solaris and its underlying subsystems, including tools and methods for observing and analyzing any system running Solaris 10 or OpenSolaris."--Marc Strahl, senior UNIX engineer Solaris(TM) Internals, Second Edition, describes the algorithms and data structures of all the major subsystems in the Solaris 10 and OpenSolaris kernels. The text has been extensively revised since the first edition, with more than 600 pages of new material. Integrated Solaris tools and utilities, including DTrace, MDB, kstat, and the process tools, are used throughout to illustrate how the reader can observe the Solaris kernel in action. The companion volume, Solaris(TM) Performance and Tools, extends the examples contained here, and expands the scope to performance and behavior analysis. Coverage includes: Virtual and physical memory Processes, threads, and scheduling File system framework and UFS implementation Networking: TCP/IP implementation Resource management facilities and zones The Solaris(TM) Internals volumes make a superb reference for anyone using Solaris 10 and OpenSolaris.

Understanding and Using Linear Programming


Jiří Matoušek - 2006
    Our guiding phrase is, what everytheoreticalcomputerscientistshouldknowaboutlinearprogramming. The book is relatively concise, in order to allow the reader to focus on the basic ideas. For a number of topics commonly appearing in thicker books on the subject, we were seriously tempted to add them to the main text, but we decided to present them only very brie?y in a separate glossary. At the same time, we aim at covering the main results with complete proofs and in su?cient detail, in a way ready for presentation in class. One of the main focuses is applications of linear programming, both in practice and in theory. Linear programming has become an extremely ?- ible tool in theoretical computer science and in mathematics. While many of the ?nest modern applications are much too complicated to be included in an introductory text, we hope to communicate some of the ?avor (and excitement) of such applications on simpler examples."

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities


John McDonald - 2006
    Drawing on their extraordinary experience, they introduce a start-to-finish methodology for "ripping apart" applications to reveal even the most subtle and well-hidden security flaws. "The Art of Software Security Assessment" covers the full spectrum of software vulnerabilities in both UNIX/Linux and Windows environments. It demonstrates how to audit security in applications of all sizes and functions, including network and Web software. Moreover, it teaches using extensive examples of real code "drawn from past flaws in many of the industry's highest-profile applications." Coverage includes - Code auditing: theory, practice, proven methodologies, and secrets of the trade - Bridging the gap between secure software design and post-implementation review - Performing architectural assessment: design review, threat modeling, and operational review - Identifying vulnerabilities related to memory management, data types, and malformed data - UNIX/Linux assessment: privileges, files, and processes - Windows-specific issues, including objects and the filesystem - Auditing interprocess communication, synchronization, and state - Evaluating network software: IP stacks, firewalls, and common application protocols - Auditing Web applications and technologies

Starting Out with Java: From Control Structures Through Data Structures


Tony Gaddis - 2006
    Tony Gaddis emphasizes problem-solving and program design by teaching the Java programming language through a step-by-step detailed presentation. He introduces procedural programming early and covers control structures and methods before objects. Students are engaged and have plenty of opportunity to practice using programming concepts through practical tools that include end-of-section and chapter exercises, case studies and programming projects.

C++ for Game Programmers (Charles River Media Game Development)


Mike Dickheiser - 2006
    This book covers the high-level problem-solving constructs that are most commonly found in games and other interactive applications. It provides a hands-on discussion of using C++ to create efficient solutions to difficult problems in a highly structured manner. Full description

Let's Tell a Story Together


Jimmy Maher - 2006
    http://maher.filfre.net/if-book/

Programming in Haskell


Graham Hutton - 2006
    This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include freely accessible Powerpoint slides for each chapter, solutions to exercises and examination questions (with solutions) available to instructors, and a downloadable code that's fully compliant with the latest Haskell release.

History and Culture of Tamil Nadu - Volume 2 - 1310-1885 AD


Chithra Madhavan - 2006
    guide to cultural, administrative and economic development of the region, with index. v. one also available, information on request

IEEE Computer Society Real-World Software Engineering Problems: A Self-Study Guide for Today's Software Professional


J. Fernando Naveda - 2006
    The book offers workable, real-world sample problems with solutions to help readers solve common problems. In addition to its role as the definitive preparation guide for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program, this resource also serves as an appropriate guide for graduate-level courses in software engineering or for professionals interested in sharpening or refreshing their skills. The book includes a comprehensive collection of sample problems, each of which includes the problem's statement, the solution, an explanation, and references. Topics covered include: * Engineering economics * Test * Ethics * Maintenance * Professional practice * Software configuration * Standards * Quality assurance * Requirements * Metrics * Software design * Tools and methods * Coding * SQA and V & V IEEE Computer Society Real-World Software Engineering Problems offers an invaluable guide to preparing for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program for software professionals, as well as providing students with a practical resource for coursework or general study.

Theory of Computation


Dexter C. Kozen - 2006
    It cover cores material in the foundations of computing for graduate students in computer science and also provides an introduction to some more advanced topics for those intending further study in the area. This innovative text focuses primarily on computational complexity theory: the classification of computational problems in terms of their inherent complexity. The book contains an invaluable collection of lectures for first-year graduates on the theory of computation. Topics and features include more than 40 lectures for first year graduate students, and a dozen homework sets and exercises.

Real World Image Sharpening with Adobe Photoshop, Camera Raw, and Lightroom


Bruce Fraser - 2006
    This second edition of the definitive book by the late Bruce Fraser teaches readers all they need to know about sharpening, including when to use it, why it's needed, how to use the camera's features, how to recognize an image that needs sharpening, how much to use, what's bad sharpening, and how to fix oversharpening. Real World Image Sharpening with Adobe Photoshop, Camera Raw, and Lightroom, Second Edition is written by Fraser's friend and renowned photographer Jeff Schewe. It adds essential coverage of Adobe Photoshop Lightroom and Adobe Camera Raw, since many of the key sharpening functions have migrated from Photoshop to those tools since the first edition of the book was published.The book shows readers how to: recognize the kind of sharpening that each image needs; become acquainted with the full arsenal of sharpening tools built into Photoshop, Lightroom, and Camera Raw; sharpen part of an image selectively; create a complete sharpening workflow that allows sharpening images optimally for different uses; balance the contradictory demands of sharpening and noise reduction; and more.

OpenGL Distilled


Paul Martz - 2006
    The preferred application programming interface for developing 3D applications, OpenGL is widely used in video game development, visualization and simulation, CAD, virtual reality, modeling, and computer-generated animation. OpenGL(R) Distilled provides the fundamental information you need to start programming 3D graphics, from setting up an OpenGL development environment to creating realistic textures and shadows. Written in an engaging, easy-to-follow style, this book makes it easy to find the information you're looking for. You'll quickly learn the essential and most-often-used features of OpenGL 2.0, along with the best coding practices and troubleshooting tips.Topics includeDrawing and rendering geometric data such as points, lines, and polygons Controlling color and lighting to create elegant graphics Creating and orienting views Increasing image realism with texture mapping and shadows Improving rendering performance Preserving graphics integrity across platforms A companion Web site includes complete source code examples, color versions of special effects described in the book, and additional resources.

Architecture and Patterns for It Service Management, Resource Planning, and Governance: Making Shoes for the Cobbler's Children


Charles T. Betz - 2006
    It fills the gap between high-level guidance on IT governance and detailed discussions about specific vendor technologies. It provides a unique value chain approach to integrating the COBIT, ITIL, and CMM frameworks into a coherent, unified whole. It presents a field-tested, detailed conceptual information model with definitions and usage scenarios, mapped to both process and system architectures.This book is recommended for practitioners and managers engaged in IT support in large companies, particularly those who are information architects, enterprise architects, senior software engineers, program/project managers, and IT managers/directors.

Java SE 6: The Complete Reference


Herbert Schildt - 2006
    He includes information on Java Platform Standard Edition 6 (Java SE 6) and offers complete coverage of the Java language, its syntax, keywords, and fundamental programming principles.

The Art of Software Security Testing: Identifying Software Security Flaws


Chris Wysopal - 2006
    This book takes the basic idea several steps forward. Written by masters of software exploit, this book describes in very basic terms how security testing differs from standard software testing as practiced by QA groups everywhere. It unifies in one place ideas from Michael Howard, David Litchfield, Greg Hoglund, and me into a concise introductory package. Improve your security testing by reading this book today." -Gary McGraw, Ph.D., CTO, Cigital; Author, Software Security, Exploiting Software, Building Secure Software, and Software Fault Injection; www.cigital.com/ gem "As 2006 closes out, we will see over 5,000 software vulnerabilities announced to the public. Many of these vulnerabilities were, or will be, found in enterprise applications from companies who are staffed with large, professional, QA teams. How then can it be that these flaws consistently continue to escape even well-structured diligent testing? The answer, in part, is that testing still by and large only scratches the surface when validating the presence of security flaws. Books such as this hopefully will start to bring a more thorough level of understanding to the arena of security testing and make us all a little safer over time." -Alfred Huger, Senior Director, Development, Symantec Corporation "Software security testing may indeed be an art, but this book provides the paint-by-numbers to perform good, solid, and appropriately destructive security testing: proof that an ounce of creative destruction is worth a pound of patching later. If understanding how software can be broken is step one in every programmers' twelve-step program to defensible, secure, robust software, then knowledgeable security testing comprises at least steps two through six." -Mary Ann Davidson, Chief Security Officer, Oracle "Over the past few years, several excellent books have come out teaching developers how to write more secure software by describing common security failure patterns. However, none of these books have targeted the tester whose job it is to find the security problems before they make it out of the R&D lab and into customer hands. Into this void comes The Art of Software Security Testing: Identifying Software Security Flaws. The authors, all of whom have extensive experience in security testing, explain how to use free tools to find the problems in software, giving plenty of examples of what a software flaw looks like when it shows up in the test tool. The reader learns why security flaws are different from other types of bugs (we want to know not only that 'the program does what it's supposed to, ' but also that 'the program doesn't do that which it's not supposed to'), and how to use the tools to find them. Examples are primarily based on C code, but some description of Java, C#, and scripting languages help for those environments. The authors cover both Windows and UNIX-based test tools, with plenty of screenshots to see what to expect. Anyone who's doing QA testing on software should read this book, whether as a refresher for finding security problems, or as a starting point for QA people who have focused on testing functionality." -Jeremy Epstein, WebMethods State-of-the-Art Software Security Testing: Expert, Up to Date, and Comprehensive The Art of Software Security Testing delivers in-depth, up-to-date, battle-tested techniques for anticipating and identifying software security problems before the "bad guys" do. Drawing on decades of experience in application and penetration testing, this book's authors can help you transform your approach from mere "verification" to proactive "attack." The authors begin by systematically reviewing the design and coding vulnerabilities that can arise in software, and offering realistic guidance in avoiding them. Next, they show you ways to customize software debugging tools to test the unique aspects of any program and then analyze the results to identify exploitable vulnerabilities. Coverage includesTips on how to think the way software attackers think to strengthen your defense strategy Cost-effectively integrating security testing into your development lifecycle Using threat modeling to prioritize testing based on your top areas of risk Building testing labs for performing white-, grey-, and black-box software testing Choosing and using the right tools for each testing project Executing today's leading attacks, from fault injection to buffer overflows Determining which flaws are most likely to be exploited by real-world attackers This book is indispensable for every technical professional responsible for software security: testers, QA specialists, security professionals, developers, and more. For IT managers and leaders, it offers a proven blueprint for implementing effective security testing or strengthening existing processes. Foreword xiii Preface xvii Acknowledgments xxix About the Authors xxxi Part I: Introduction Chapter 1: Case Your Own Joint: A Paradigm Shift from Traditional Software Testing 3 Chapter 2: How Vulnerabilities Get Into All Software 19 Chapter 3: The Secure Software Development Lifecycle 55 Chapter 4: Risk-Based Security Testing: Prioritizing Security Testing with Threat Modeling 73 Chapter 5: Shades of Analysis: White, Gray, and Black Box Testing 93 Part II: Performing the Attacks Chapter 6: Generic Network Fault Injection 107 Chapter 7: Web Applications: Session Attacks 125 Chapter 8: Web Applications: Common Issues 141 Chapter 9: Web Proxies: Using WebScarab 169 Chapter 10: Implementing a Custom Fuzz Utility 185 Chapter 11: Local Fault Injection 201 Part III: Analysis Chapter 12: Determining Exploitability 233 Index 251

Software Estimation: Demystifying the Black Art


Steve McConnell - 2006
    In fact, generating accurate estimates is straightforward—once you understand the art of creating them.In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation—distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency.

Gene Expression Programming: Mathematical Modeling by an Artificial Intelligence


Candida Ferreira - 2006
    This monograph provides all the implementation details of GEP so that anyone with elementary programming skills will be able to implement it themselves. The book also includes a self-contained introduction to this new exciting field of computational intelligence, including several new algorithms for decision tree induction, data mining, classifier systems, function finding, polynomial induction, times series prediction, evolution of linking functions, automatically defined functions, parameter optimization, logic synthesis, combinatorial optimization, and complete neural network induction. The book also discusses some important and controversial evolutionary topics that might be refreshing to both evolutionary computer scientists and biologists.This second edition has been substantially revised and extended with five new chapters, including a new chapter describing two new algorithms for inducing decision trees with nominal and numeric/mixed attributes."

Quantum Computing Devices: Principles, Designs, and Analysis


Goong Chen - 2006
    It explores contemporary and important aspects of quantum computation, particularly focusing on the role of quantum electronic devices as quantum gates.Largely self-contained and written in a tutorial style, this reference presents the analysis, design, and modeling of the major types of quantum computing devices: ion traps, cavity quantum electrodynamics (QED), linear optics, quantum dots, nuclear magnetic resonance (NMR), superconducting quantum interference devices (SQUID), and neutral atom traps. It begins by explaining the fundamentals and algorithms of quantum computing, followed by the operations and formalisms of quantum systems. For each electronic device, the subsequent chapters discuss physical properties, the setup of qubits, control actions that produce the quantum gates that are universal for quantum computing, relevant measurements, and decoherence properties of the systems. The book also includes tables, diagrams, and figures that illustrate various data, uses, and designs of quantum computing.As nanoelectronics will inevitably replace microelectronics, the development of quantum information science and quantum computing technology is imperative to the future of information science and technology. Quantum Computing Devices: Principles, Designs, and Analysis helps fulfill this need by providing a comprehensive collection of the most promising devices for the future.

Studies in Computational Intelligence, Volume 32: Complex-Valued Neural Networks


Akira Hirose - 2006
    Emphasizing basic concepts and ways of thinking about neural networks, the author focuses on neural networks that deal with complex numbers; the practical advantages of complex-valued neural networks, and their origins; the development of principal applications? The book uses detailed examples to answer these questions and more.

Design for Manufacturability & Concurrent Engineering; How to Design for Low Cost, Design in High Quality, Design for Lean Manufacture, and Design Quickly for Fast Production


David M. Anderson - 2006
    The book presents many effective methodologies to design low-cost products by concurrently engineering products in multifunctional teams that will simplify concepts, optimize architecture, optimize the use of modules and off-the-shelf parts, have pre-selected vendors help design custom parts, understand and avoid previous problems,and then thoroughly design for manufacturability for quick launches without expensive change orders.DESIGN IN HIGH QUALITY. Chapter 10 shows how to design quality and reliability into the product with poka-yoke and 50 design guidelines.DESIGN FOR LEAN MANUFACTURE. The book shows how to standardize parts and design products for lean production, JIT, build-to-order, and mass customization.DESIGN QUICKLY FOR FAST PRODUCTION. Chapter 3 shows how thorough up-front work is the key to quickly developing products, avoiding changes, and achieving fast ramps.

Lectures on the Curry-Howard Isomorphism: Volume 149


Morten Heine B. Sørensen - 2006
    For instance, minimal propositional logic corresponds to simply typed lambda-calculus, first-order logic corresponds to dependent types, second-order logic corresponds to polymorphic types, sequent calculus is related to explicit substitution, etc.The isomorphism has many aspects, even at the syntactic level: formulas correspond to types, proofs correspond to terms, provability corresponds to inhabitation, proof normalization corresponds to term reduction, etc.But there is more to the isomorphism than this. For instance, it is an old idea---due to Brouwer, Kolmogorov, and Heyting---that a constructive proof of an implication is a procedure that transformsproofs of the antecedent into proofs of the succedent; the Curry-Howard isomorphism gives syntactic representations of such procedures. The Curry-Howard isomorphism also provides theoretical foundations for many modern proof-assistant systems (e.g. Coq).This book give an introduction to parts of proof theory and related aspects of type theory relevant for the Curry-Howard isomorphism. It can serve as an introduction to any or both of typed lambda-calculus and intuitionistic logic.Key features - The Curry-Howard Isomorphism treated as common theme - Reader-friendly introduction to two complementary subjects: Lambda-calculus and constructive logics - Thorough study of the connection between calculi and logics - Elaborate study of classical logics and control operators - Account of dialogue games for classical and intuitionistic logic - Theoretical foundations of computer-assisted reasoning

Discrete Mathematics Using a Computer


John M. O'Donnell - 2006
    They have to ?gure out for themselves how to apply the ideas of discrete mathematics to computing problems. It is not easy. Most students fail to experience broad success in this enterprise, which is not surprising, since many of the most important advances in science and engineeringhavebeen, precisely, applicationsofmathematicstospeci?cscience and engineering problems. Tobesure, mostdiscretemathtextbooksincorporatesomeaspectsapplying discrete math to computing, but it usually takes the form of asking students to write programs to compute the number of three-ball combinations there are in a set of ten balls or, at best, to implement a graph algorithm. Few texts ask students to use mathematical logic to analyze properties of digital circuits or computer programs or to apply the set theoretic model of functions to understand higher-order operations. A major aim of this text is to integrate, tightly, the study of discrete mathematics with the study of central problems of computer science

Evolutionary Computation


Kenneth A. De Jong - 2006
    In this clear and comprehensive introduction to the field, Kenneth De Jong presents an integrated view of the state of the art in evolutionary computation. Although other books have described such particular areas of the field as genetic algorithms, genetic programming, evolution strategies, and evolutionary programming, Evolutionary Computation is noteworthy for considering these systems as specific instances of a more general class of evolutionary algorithms. This useful overview of a fragmented field is suitable for classroom use or as a reference for computer scientists and engineers.

Introduction to Computational Science: Modeling and Simulation for the Sciences


Angela B. Shiflet - 2006
    This textbook provides students with a versatile and accessible introduction to the subject. It assumes only a background in high school algebra, enables instructors to follow tailored pathways through the material, and is the only textbook of its kind designed specifically for an introductory course in the computational science and engineering curriculum. While the text itself is generic, an accompanying website offers tutorials and files in a variety of software packages.This fully updated and expanded edition features two new chapters on agent-based simulations and modeling with matrices, ten new project modules, and an additional module on diffusion. Besides increased treatment of high-performance computing and its applications, the book also includes additional quick review questions with answers, exercises, and individual and team projects.The only introductory textbook of its kind--now fully updated and expandedFeatures two new chapters on agent-based simulations and modeling with matricesIncreased coverage of high-performance computing and its applicationsIncludes additional modules, review questions, exercises, and projectsAn online instructor's manual with exercise answers, selected project solutions, and a test bank and solutions (available only to professors)An online illustration package is available to professors

Computer Forensics: Principles and Practices


Linda Volonino - 2006
    "

Quantitative Analysis, Derivatives Modeling, and Trading Strategies: In the Presence of Counterparty Credit Risk for the Fixed-Income Market


Yi Tang - 2006
    It is written from the viewpoint of financial engineers or practitioners, and, as such, it puts more emphasis on the practical applications of financial mathematics in the real market than the mathematics itself with precise (and tedious) technical conditions. It attempts to combine economic insights with mathematics and modeling so as to help the reader to develop intuitions.Among the modeling and the numerical techniques presented are the practical applications of the martingale theories, such as martingale model factory and martingale resampling and interpolation. In addition, the book addresses the counterparty credit risk modeling, pricing, and arbitraging strategies from the perspective of a front office functionality and a revenue center (rather than merely a risk management functionality), which are relatively recent developments and are of increasing importance. It also discusses various trading structuring strategies and touches upon some popular credit/IR/FX hybrid products, such as PRDC, TARN, Snowballs, Snowbears, CCDS, and credit extinguishers.While the primary scope of this book is the fixed-income market (with further focus on the interest rate market), many of the methodologies presented also apply to other financial markets, such as the credit, equity, foreign exchange, and commodity markets.

Synchronization Algorithms and Concurrent Programming


Gadi Taubenfeld - 2006
    Synchronization is a fundamental challenge in computer science. It is fast becoming a major performance and design issue for concurrent programming on modern architectures, and for the design of distributed systems. This is the first text to give a complete and coherent view of all aspects of synchronization algorithms. Computer science students, programmers, system designers and researchers will be able to solve problems and master techniques that go beyond the treatment provided in introductory texts on operating systems, distributed computing and concurrency. Dozens of algorithms are presented and their performance is analyzed according to precise complexity measures. algorithms and key concepts covered in detail; self-review questions with solutions to check your understanding; a wealth of end-of-chapter exercises and bibliographic notes; over 300 annotated references guiding you through the contemporary research literature; and a companion website provides Power Point slides and other teaching and learning aids for students and instructors. About the author: Gadi Taubenfeld is an Associate Professor of Computer Science at the Interdisciplinary Center in Herzliya, Israel. He is an established authority in the area of concurrent and distributed computing and has published widely in leading journals and conferences. He was the head of the computer science division at Israel's Open University; member of technical staff at AT&T Bell Laboratories; consultant to AT&T Labs - Research; and a research scientist and lecturer at Yale University. He holds a PhD in Computer Science from the Technion - Israel Institute of Technology.

Handbook of Constraint Programming


Francesca Rossi - 2006
    Constraint programming is currently applied with success to many domains, such as scheduling, planning, vehicle routing, configuration, networks, and bioinformatics.The aim of this handbook is to capture the full breadth and depth of the constraint programming field and to be encyclopedic in its scope and coverage. While there are several excellent books on constraint programming, such books necessarily focus on the main notions and techniques and cannot cover also extensions, applications, and languages. The handbook gives a reasonably complete coverage of all these lines of work, based on constraint programming, so that a reader can have a rather precise idea of the whole field and its potential. Of course each line of work is dealt with in a survey-like style, where some details may be neglected in favor of coverage. However, the extensive bibliography of each chapter will help the interested readers to find suitable sources for the missing details. Each chapter of the handbook is intended to be a self-contained survey of a topic, and is written by one or more authors who are leading researchers in the area.The intended audience of the handbook is researchers, graduate students, higher-year undergraduates and practitioners who wish to learn about the state-of-the-art in constraint programming. No prior knowledge about the field is necessary to be able to read the chapters and gather useful knowledge. Researchers from other fields should find in this handbook an effective way to learn about constraint programming and to possibly use some of the constraint programming concepts and techniques in their work, thus providing a means for a fruitful cross-fertilization among different research areas.The handbook is organized in two parts. The first part covers the basic foundations of constraint programming, including the history, the notion of constraint propagation, basic search methods, global constraints, tractability and computational complexity, and important issues in modeling a problem as a constraint problem. The second part covers constraint languages and solver, several useful extensions to the basic framework (such as interval constraints, structured domains, and distributed CSPs), and successful application areas for constraint programming.- Covers the whole field of constraint programming- Survey-style chapters- Five chapters on applications

Quantum Information: An Overview


Gregg Jaeger - 2006
    Around 1992 a few of us were led by Charles Bennett into a Garden of Eden of quantum information, communication, and computation. No sooner had we started exploring our surroundings and naming the birds and the beasts, than Peter Shor put an end to that apparent innocence by showing that factoring could be turned--by means of quantum hardware--into a po- nomial task. Fast factoring meant business; everybody seemed to be awfully interested in factoring. Not that anyone had any use for factoring per se, but it seemed that all the world's secrets were protected by factor-keyed padlocks. Think of all the power and the glory (and something else) that you might get by acting as a consultant to big businesses and government agencies, helping them pick everyone else's locks and at the same time build unpickable ones (well, nearly unpickable) for themselves. And if one can get an exponential advantage in factoring, wouldn't an exponential advantage be lying around the corner for practically any other computational task? Quantum infor- tion "and all that" has indeed blossomed in a few years into a wonderful new chapter of physics, comparable in ?avor and scope to thermodynamics. It has alsoturnedintoaveritable"industry"--producingpapers, conferences, exp- iments, e?ects, devices--even proposals for quantum computer architectures.

The Computational Nature of Language Learning and Evolution


Partha Niyogi - 2006
    We can observe the learning of language by children and marvel at the phenomenon of language acquisition; the evolution of a language, however, is not so directly experienced. Language learning by children is robust and reliable, but it cannot be perfect or languages would never change -- and English, for example, would not have evolved from the language of the Anglo-Saxon Chronicles. In this book Partha Niyogi introduces a framework for analyzing the precise nature of the relationship between learning by the individual and evolution of the population.Learning is the mechanism by which language is transferred from old speakers to new. Niyogi shows that the evolution of language over time will depend upon the learning procedure -- that different learning algorithms may have different evolutionary consequences. He finds that the dynamics of language evolution are typically nonlinear, with bifurcations that can be seen as the natural explanatory construct for the dramatic patterns of change observed in historical linguistics. Niyogi investigates the roles of natural selection, communicative efficiency, and learning in the origin and evolution of language -- in particular, whether natural selection is necessary for the emergence of shared languages.Over the years, historical linguists have postulated several accounts of documented language change. Additionally, biologists have postulated accounts of the evolution of communication systems in the animal world. This book creates a mathematical and computational framework within which to embed those accounts, offering a research tool to aid analysis in an area in which data is often sparse and speculation often plentiful.