Best of
Computer-Science

2004

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

Convex Optimization


Stephen Boyd - 2004
    A comprehensive introduction to the subject, this book shows in detail how such problems can be solved numerically with great efficiency. The focus is on recognizing convex optimization problems and then finding the most appropriate technique for solving them. The text contains many worked examples and homework exercises and will appeal to students, researchers and practitioners in fields such as engineering, computer science, mathematics, statistics, finance, and economics.

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Java: The Complete Reference


Herbert Schildt - 2004
    Updated for Java Platform, Standard Edition 7 (Java SE 7), this comprehensive volume covers the entire Java language, including its syntax, keywords, and fundamental programming principles. You'll also find information on key elements of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. In addition, new Java SE 7 features such as try-with-resources, strings in switch, type inference with the diamond operator, NIO.2, and the Fork/Join Framework are discussed in detail.Coverage includes: Data types and operatorsControl statementsClasses and objectsConstructors and methodsMethod overloading and overridingInterfaces and packagesInheritanceException handlingGenericsAutoboxingEnumerationsAnnotationsThe try-with-resources statementVarargsMultithreadingThe I/O classesNetworkingThe Collections FrameworkApplets and servletsJavaBeansAWT and SwingThe Concurrent APIMuch, much more

Physically Based Rendering: From Theory to Implementation


Matt Pharr - 2004
    The result is a stunning achievement in graphics education. Through the ideas and software in this book, you will learn to design and employ a full-featured rendering system for creating stunning imagery.This new edition greatly refines its best-selling predecessor by streamlining all obsolete code as well as adding sections on parallel rendering and system design; animating transformations; multispectral rendering; realistic lens systems; blue noise and adaptive sampling patterns and reconstruction; measured BRDFs; and instant global illumination, as well as subsurface and multiple-scattering integrators.These updates reflect the current state-of-the-art technology, and along with the lucid pairing of text and code, ensure the book's leading position as a reference text for those working with images, whether it is for film, video, photography, digital design, visualization, or gaming.

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

High Performance MySQL: Optimization, Backups, Replication & Load Balancing


Jeremy D. Zawodny - 2004
    This book is an insider's guide to these little understood topics.Author Jeremy Zawodny has managed large numbers of MySQL servers for mission-critical work at Yahoo!, maintained years of contacts with the MySQL AB team, and presents regularly at conferences. Jeremy and Derek have spent months experimenting, interviewing major users of MySQL, talking to MySQL AB, benchmarking, and writing some of their own tools in order to produce the information in this book.In "High Performance MySQL" you will learn about MySQL indexing and optimization in depth so you can make better use of these key features. You will learn practical replication, backup, and load-balancing strategies with information that goes beyond available tools to discuss their effects in real-life environments. And you'll learn the supporting techniques you need to carry out these tasks, including advanced configuration, benchmarking, and investigating logs.Topics include: A review of configuration and setup optionsStorage engines and table typesBenchmarkingIndexesQuery OptimizationApplication DesignServer PerformanceReplicationLoad-balancingBackup and RecoverySecurity

C++ Coding Standards: 101 Rules, Guidelines, and Best Practices


Herb Sutter - 2004
    This happens automatically when following agood, simple set of guidelines.*They improve development speed, because the programmer doesn't need toalways make decisions starting from first principles.*They enhance teamwork by eliminating needless debates on inconsequentialissues and by making it easy for teammates to read and maintain each other'scode.The coding standards introduced by this book are a collection of guidelines forwriting high-quality C++ code.***They are the distilled conclusions of a rich collective experience of the C++community. Until now, this body of knowledge has been available only asfolklore or spread in bits and pieces throughout books.

Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam


Bryan Basham - 2004
    Isn't it time you learned the latest (J2EE 1.4) versions of Servlets & JSPs? This book will get you way up to speed on the technology you'll know it so well, in fact, that you can pass the Sun Certified Web Component Developer (SCWCD) 1.4 exam. If that's what you want to do, that is. Maybe you don't care about the exam, but need to use Servlets & JSPs in your next project. You're working on a deadline. You're over the legal limit for caffeine. You can't waste your time with a book that makes sense only AFTER you're an expert (or worse one that puts you to sleep). No problem. Head First Servlets and JSP's brain-friendly approach drives the knowledge straight into your head (without sharp instruments). You'll interact with servlets and JSPs in ways that help you learn quickly and deeply. It may not be The Da Vinci Code, but quickly see why so many reviewers call it "a page turner". Most importantly, this book will help you use what you learn. It won't get you through the exam only to have you forget everything the next day. Learn to write servlets and JSPs, what makes the Container tick (and what ticks it off), how to use the new JSP Expression Language (EL), what you should NOT write in a JSP, how to write deployment descriptors, secure applications, and even use some server-side design patterns. Can't talk about Struts at a cocktail party? That'll change. You won't just pass the exam, you will truly understand this stuff, and you'll be able to put it to work right away. This new exam is tough--much tougher than the previous version of the SCWCD. The authors of Head First Servlets and JSP know: they created it. (Not that it EVER occurred to them that if they made the exam really hard you'd have to buy a study guide to pass it.) The least they could do is give you a stimulating, fun way to pass the thing. If you're one of the thousands who used Head First EJB to pass the SCWCD exam, you know what to expect!

How Linux Works: What Every Superuser Should Know


Brian Ward - 2004
    Some books try to give you copy-and-paste instructions for how to deal with every single system issue that may arise, but How Linux Works actually shows you how the Linux system functions so that you can come up with your own solutions. After a guided tour of filesystems, the boot sequence, system management basics, and networking, author Brian Ward delves into open-ended topics such as development tools, custom kernels, and buying hardware, all from an administrator's point of view. With a mixture of background theory and real-world examples, this book shows both "how" to administer Linux, and "why" each particular technique works, so that you will know how to make Linux work for you.

The Design and Implementation of the FreeBSD Operating System


Marshall Kirk McKusick - 2004
    While explaining key design decisions, it details the concepts, data structures, and algorithms used in implementing the systems facilities. It is both a practical reference and an in-depth study of a contemporary, portable, open source operating system.

Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3d Technology)


Christer Ericson - 2004
    It provides the tools and know-how needed to implement industrial-strength collision detection for the detailed dynamic environments of applications such as 3D games, virtual reality applications, and physical simulators. Full description

The Tao of Network Security Monitoring: Beyond Intrusion Detection


Richard Bejtlich - 2004
    This book reducesthe investigative workload of computer security incident response teams(CSIRT) by posturing organizations for incident response success.Firewalls can fail. Intrusion-detection systems can be bypassed. Networkmonitors can be overloaded. These are the alarming but true facts aboutnetwork security. In fact, too often, security administrators' tools can serve asgateways into the very networks they are defending.Now, a novel approach to network monitoring seeks to overcome theselimitations by providing dynamic information about the vulnerability of allparts of a network. Called network security monitoring (NSM), it draws on acombination of auditing, vulnerability assessment, intrusion detection andprevention, and incident response for the most comprehensive approach tonetwork security yet. By focusing on case studies and the application of opensourcetools, the author helps readers gain hands-on knowledge of how tobetter defend networks and how to mitigate damage from security incidents.

The Shellcoder's Handbook: Discovering and Exploiting Security Holes


Jack Koziol - 2004
    This much-anticipated revision, written by the ultimate group of top security experts in the world, features 40 percent new content on how to find security holes in any operating system or applicationNew material addresses the many new exploitation techniques that have been discovered since the first edition, including attacking "unbreakable" software packages such as McAfee's Entercept, Mac OS X, XP, Office 2003, and VistaAlso features the first-ever published information on exploiting Cisco's IOS, with content that has never before been exploredThe companion Web site features downloadable code files

Microsoft Windows Internals: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000 (Pro-Developer)


Mark E. Russinovich - 2004
    This classic guide—fully updated for Windows Server 2003, Windows XP, and Windows 2000, including 64-bit extensions—describes the architecture and internals of the Windows operating system. You’ll find hands-on experiments you can use to experience Windows internal behavior firsthand, along with advanced troubleshooting information to help you keep your systems running smoothly and efficiently. Whether you’re a developer or a system administrator, you’ll find critical architectural insights that you can quickly apply for better design, debugging, performance, and support.Get in-depth, inside knowledge of the Windows operating system: Understand the key mechanisms that configure and control Windows, including dispatching, startup and shutdown, and the registry Explore the Windows security model, including access, privileges, and auditing Investigate internal system architecture using the kernel debugger and other tools Examine the data structures and algorithms that deal with processes, threads, and jobs Observe how Windows manages virtual and physical memory Understand the operation and format of NTFS, and troubleshoot file system access problems View the Windows networking stack from top to bottom, including mapping, APIs, name resolution, and protocol drivers Troubleshoot boot problems and perform crash analysis

Hackers & Painters: Big Ideas from the Computer Age


Paul Graham - 2004
    Who are these people, what motivates them, and why should you care?Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.

The Essential Turing: Seminal Writings in Computing, Logic, Philosophy, Artificial Intelligence, and Artificial Life Plus the Secrets of Enigma


Alan Turing - 2004
    In 1935, aged 22, he developed the mathematical theory upon which all subsequent stored-program digital computers are modeled.At the outbreak of hostilities with Germany in September 1939, he joined the Government Codebreaking team at Bletchley Park, Buckinghamshire and played a crucial role in deciphering Engima, the code used by the German armed forces to protect their radio communications. Turing's work on the versionof Enigma used by the German navy was vital to the battle for supremacy in the North Atlantic. He also contributed to the attack on the cyphers known as Fish, which were used by the German High Command for the encryption of signals during the latter part of the war. His contribution helped toshorten the war in Europe by an estimated two years.After the war, his theoretical work led to the development of Britain's first computers at the National Physical Laboratory and the Royal Society Computing Machine Laboratory at Manchester University.Turing was also a founding father of modern cognitive science, theorizing that the cortex at birth is an unorganized machine which through training becomes organized into a universal machine or something like it. He went on to develop the use of computers to model biological growth, launchingthe discipline now referred to as Artificial Life.The papers in this book are the key works for understanding Turing's phenomenal contribution across all these fields. The collection includes Turing's declassified wartime Treatise on the Enigma; letters from Turing to Churchill and to codebreakers; lectures, papers, and broadcasts which opened upthe concept of AI and its implications; and the paper which formed the genesis of the investigation of Artifical Life.

C All-in-One Desk Reference for Dummies


Dan Gookin - 2004
    * Covers everything users need to get up to speed on C programming, including advanced topics to take their programming skill to the next level * Walks C programmers through the entire development cycle of a C program-designing and developing the program, writing source code, compiling the code, linking the code to create the executable programs, debugging, and deployment * Provides thorough coverage of keywords, program flow, conditional statements, constants and variables, numeric values, arrays, strings, functions, pointers, debugging, prototyping, and much more * Addresses some advanced programming topics such as graphics and game programming as well as Windows and Linux programming * Includes dozens of sample programs that readers can adapt and modify for their own uses * Written by the author of the first-ever For Dummies book-a man known for his ability to take complex material and present it in a way that makes it simple and fun

Beginning Web Programming with HTML, XHTML and CSS


Jon Duckett - 2004
    It follows standards-based principles, but also teaches readers ways around problems they are likely to face using (X)HTML.While XHTML is the "current" standard, the book still covers HTML because many people do not yet understand that XHTML is the official successor to HTML, and many readers will still stick with HTML for backward compatibility and simpler/informal Web pages that don't require XHTML compliance.The book teaches basic principles of usability and accessibility along the way, to get users into the mode of developing Web pages that will be available to as many viewers as possible from the start. The book also covers the most commonly used programming/scripting language -- JavaScript -- and provides readers with a roadmap of other Web technologies to learn after mastering this book to add more functionality to their sites.

Concepts, Techniques, and Models of Computer Programming


Peter Van Roy - 2004
    The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together.After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language—a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.

Ant Colony Optimization


Marco Dorigo - 2004
    The attempt to develop algorithms inspired by one aspect of ant behavior, the ability to find what computer scientists would call shortest paths, has become the field of ant colony optimization (ACO), the most successful and widely recognized algorithmic technique based on ant behavior. This book presents an overview of this rapidly growing field, from its theoretical inception to practical applications, including descriptions of many available ACO algorithms and their uses.The book first describes the translation of observed ant behavior into working optimization algorithms. The ant colony metaheuristic is then introduced and viewed in the general context of combinatorial optimization. This is followed by a detailed description and guide to all major ACO algorithms and a report on current theoretical findings. The book surveys ACO applications now in use, including routing, assignment, scheduling, subset, machine learning, and bioinformatics problems. AntNet, an ACO algorithm designed for the network routing problem, is described in detail. The authors conclude by summarizing the progress in the field and outlining future research directions. Each chapter ends with bibliographic material, bullet points setting out important ideas covered in the chapter, and exercises. Ant Colony Optimization will be of interest to academic and industry researchers, graduate students, and practitioners who wish to learn how to implement ACO algorithms.

Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions


Herb Sutter - 2004
    This book follows in the tradition of the first two: It delivers new material, organized in bite-sized Items and grouped into themed sections. Readers of the first two books will find some familiar section themes, now including new material, such as exception safety, generic programming, and optimization and memory management techniques. The books overlap in structure and theme, not in content. This book continues the strong emphasis on generic programming and on using the C++ standard library effectively, including coverage of important template and generic programming techniques. Sutter's goal for this third and final book in his set is to present case studies that pull together themes from the previous books. This book also covers important points presented at the C++ Standard Committee where corrections to the Standard have been discussed and accepted.

A Byte of Python


Swaroop C.H. - 2004
    An introduction to Python programming for beginners.

The Mathematica Guidebook for Programming


Michael Trott - 2004
    It gives users a deeper understanding of Mathematica by instructive implementations, explanations, and examples from a range of disciplines at varying levels of complexity. The three volumes -- Programming, Graphics, and Mathematics, total 3,000 pages and contain more than 15,000 Mathematica inputs, over 1,500 graphics, 4,000+ references, and more than 500 exercises.This first volume begins with the structure of Mathematica expressions, the syntax of Mathematica, its programming, graphic, numeric and symbolic capabilities. It then covers the hierarchical construction of objects out of symbolic expressions, the definition of functions, the recognition of patterns and their efficient application, program flows and program structuring, and the manipulation of lists.An indispensible resource for students, researchers and professionals in mathematics, the sciences, and engineering.

Mechanizing Proof: Computing, Risk, and Trust


Donald Angus MacKenzie - 2004
    But how can we know that this computing is trustworthy? In Mechanizing Proof, Donald MacKenzie addresses this key issue by investigating the interrelations of computing, risk, and mathematical proof over the last half century from the perspectives of history and sociology. His discussion draws on the technical literature of computer science and artificial intelligence and on extensive interviews with participants.MacKenzie argues that our culture now contains two ideals of proof: proof as traditionally conducted by human mathematicians, and formal, mechanized proof. He describes the systems constructed by those committed to the latter ideal and the many questions those systems raise about the nature of proof. He looks at the primary social influence on the development of automated proof--the need to predict the behavior of the computer systems upon which human life and security depend--and explores the involvement of powerful organizations such as the National Security Agency. He concludes that in mechanizing proof, and in pursuing dependable computer systems, we do not obviate the need for trust in our collective human judgment.

Programming from the Ground Up


Jonathan Bartlett - 2004
    It takes you a step at a time through these concepts: * How the processor views memory * How the processor operates * How programs interact with the operating system * How computers represent data internally * How to do low-level and high-level optimization Most beginning-level programming books attempt to shield the reader from how their computer really works. Programming from the Ground Up starts by teaching how the computer works under the hood, so that the programmer will have a sufficient background to be successful in all areas of programming. This book is being used by Princeton University in their COS 217 "Introduction to Programming Systems" course.

C++ Primer Plus


Stephen Prata - 2004
    This guide also illustrates how to handle input and output, make programs perform repetitive tasks, manipulate data, hide information, use functions and build flexible, easily modifiable programs.

Refactoring to Patterns


Joshua Kerievsky - 2004
    In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively. "

Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices


George Varghese - 2004
    Network Algorithmics provides a complete, coherent methodology for maximizing speed while meeting your other design goals.Author George Varghese begins by laying out the implementation bottlenecks that are most often encountered at four disparate levels of implementation: protocol, OS, hardware, and architecture. He then derives 15 solid principles--ranging from the commonly recognized to the groundbreaking--that are key to breaking these bottlenecks.The rest of the book is devoted to a systematic application of these principles to bottlenecks found specifically in endnodes, interconnect devices, and specialty functions such as security and measurement that can be located anywhere along the network. This immensely practical, clearly presented information will benefit anyone involved with network implementation, as well as students who have made this work their goal.FOR INSTRUCTORS: To obtain access to the solutions manual for this title simply register on our textbook website (textbooks.elsevier.com)and request access to the Computer Science subject area. Once approved (usually within one business day) you will be able to access all of the instructor-only materials through the Instructor Manual link on this book's academic web page at textbooks.elsevier.com.

VBA and Macros for Microsoft Excel


Bill Jelen - 2004
    That can be hard to do for businesses that have complex needs, such as custom software applications. However, VBA and Macros for Microsoft Excel can teach you ways to customize pre-existing software to meet your specific needs. A variety of topics are covered that are sure to give you a solid knowledge of the VBA language. Event programming, user forms, carts, pivot tables, multi-dimensional arrays and Web queries are just a few of the areas you will learn about in this book. Written by the principal behind the leading Excel Web site, www.mrexcel.com, this book is sure to save you time and money!

Automated Testing Handbook


Linda G. Hayes - 2004
    Yet, even with all of the tools and technology available, the overwhelming amount of testing is still done manually. The good news is when it does succeed, software test automation reaps huge rewards. But it's like anything--if you've never done it before, you must learn through trial and error. The problem is you don't have time to make mistakes. The stakes are too high, and you can't afford technology that won't save you time and money. Instead, get the benefit of the experiences of hundreds of companies who have implemented automated testing-- what worked, what didn't and why. Who Will Benefit From This Handbook Managers of software development and QA Software testers Software developers Software quality consultants Anyone using or considering test automation

The Mathematica Guidebook for Graphics [With DVD-ROM]


Michael Trott - 2004
    It gives users a deeper understanding of Mathematica by instructive implementations, explanations, and examples from a range of disciplines at varying levels of complexity. The three volumes - Programming, Graphics, and Mathematics - each with a CD, total 3,000 pages and contain more than 15,000 Mathematica inputs, over 1,500 graphics, 4,000+ references, and more than 500 exercises. This second volume covers 2 and 3D graphics, providing a detailed treatment of creating images from graphic primitives such as points, lines, and polygons. It also shows how to graphically display functions that are given either analytically or in discrete form and a number of images from the Mathamatica graphics gallery. The use of Mathematicas graphics capabilities provides a very efficient and instructive way to learn how to deal with the structures arising in solving complicated problems.

Linear Models with R


Julian James Faraway - 2004
    While most of them do serve a purpose, the fact remains that data analysis cannot be properly learned without actually doing it, and this means using a statistical software package. There are many of these to choose from as well, all with their particular strengths and weaknesses. Lately, however, one such package has begun to rise above the others thanks to its free availability, its versatility as a programming language, and its interactivity. That software is R. In the first book that directly uses R to teach data analysis, Linear Models with R focuses on the practice of regression and analysis of variance. It clearly demonstrates the different methods available and more importantly, in which situations each one applies. It covers all of the standard topics, from the basics of estimation to missing data, factorial designs, and block designs, but it also includes discussion on topics, such as model uncertainty, rarely addressed in books of this type. The presentation incorporates an abundance of examples that clarify both the use of each technique and the conclusions one can draw from the results. All of the data sets used in the book are available for download from http: //www.stat.lsa.umich.edu/ faraway/LMR/. The author assumes that readers know the essentials of statistical inference and have a basic knowledge of data analysis, linear algebra, and calculus. The treatment reflects his view of statistical theory and his belief that qualitative statistical concepts, while somewhat more difficult to learn, are just as important because they enable us to practice statistics rather than just talk about it.

Linux Pocket Guide


Daniel J. Barrett - 2004
    Every page of Linux Pocket Guide lives up to this billing. It clearly explains how to get up to speed quickly on day-to-day Linux use. Once you're up and running, Linux Pocket Guide provides an easy-to-use reference that you can keep by your keyboard for those times when you want a fast, useful answer, not hours in the man pages.Linux Pocket Guide is organized the way you use Linux: by function, not just alphabetically. It's not the 'bible of Linux; it's a practical and concise guide to the options and commands you need most. It starts with general concepts like files and directories, the shell, and X windows, and then presents detailed overviews of the most essential commands, with clear examples. You'll learn each command's purpose, usage, options, location on disk, and even the RPM package that installed it.The Linux Pocket Guide is tailored to Fedora Linux--the latest spin-off of Red Hat Linux--but most of the information applies to any Linux system.Throw in a host of valuable power user tips and a friendly and accessible style, and you'll quickly find this practical, to-the-point book a small but mighty resource for Linux users.

A First Course in Logic: An Introduction to Model Theory, Proof Theory, Computability, and Complexity


Shawn Hedman - 2004
    Based on the author's teaching notes at the University of Maryland and aimed at a broad audience, this text covers the fundamental topics inclassical logic in an extremely clear, thorough and accurate style that is accessible to all the above. Covering propositional logic, first-order logic, and second-order logic, as well as proof theory, computability theory, and model theory, the text also contains numerous carefully gradedexercises and is ideal for a first or refresher course.

Murach's Mainframe COBOL


Mike Murach - 2004
    So if you want to learn how to write COBOL programs the way they're written in the best enterprise COBOL shops, this is the book for you. And when you're done learning from this book, it becomes the best reference you'll ever find for use on the job. Throughout the book, you will learn how to use COBOL on IBM mainframes because that's where 90 per cent or more of all COBOL is running. But to work on a mainframe, you need to know more than just the COBOL language. That's why this book also shows you: how to use the ISPF editor for entering programs; how to use TSO/E and JCL to compile and test programs; how to use the AMS utility to work with VSAM files; how to use CICS for developing interactive COBOL programs; how to use DB2 for developing COBOL programs that handle database data; how to maintain legacy programs. If you want to learn COBOL for other platforms, this book will get you off to a good start because COBOL is a standard language. In fact, all of the COBOL that's presented in this book will also run on any other platform that has a COBOL compiler. Remember, though, that billions of lines of mainframe COBOL are currently in use, and those programs will keep programmers busy for many years to come.

Inversion of Control Containers and the Dependency Injection pattern


Martin Fowler - 2004
    Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, under the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative. The choice between them is less important than the principle of separating configuration from use.

Essentials of Computer Architecture


Douglas E. Comer - 2004
    Douglas Comer takes a clear, concise approach to computer architecture that readers love. By exploring the fundamental concepts from a programmer 's perspective and explaining programming consequences, this unique text covers exactly the material students need to understand and construct efficient and correct programs for modern hardware.

Fuzzy Logic with Engineering Applications


Timothy J. Ross - 2004
    Fuzzy logic is a reasoning system based on a foundation of fuzzy set theory, itself an extension of classical set theory, where set membership can be partial as opposed to all or none, as in the binary features of classical logic. Fuzzy logic is a relatively new discipline in which major advances have been made over the last decade or so with regard to theory and applications. Following on from the successful first edition, this fully updated new edition is therefore very timely and much anticipated. Concentration on the topics of fuzzy logic combined with an abundance of worked examples, chapter problems and commercial case studies is designed to help motivate a mainstream engineering audience, and the book is further strengthened by the inclusion of an online solutions manual as well as dedicated software codes.Senior undergraduate and postgraduate students in most engineering disciplines, academics and practicing engineers, plus some working in economics, control theory, operational research etc, will all find this a valuable addition to their bookshelves.

Computer Science Education Research


Sally Fincher - 2004
    It represents the diversity of traditions and approaches inherent in this interdisciplinary area, while also providing a structure within which to make sense of that diversity. It provides multiple 'entry points'- to literature, to methods, to topics Part One, 'The Field and the Endeavor', frames the nature and conduct of research in computer science education. Part Two, 'Perspectives and Approaches', provides a number of grounded chapters on particular topics or themes, written by experts in each domain. These chapters cover the following topics: * design* novice misconceptions* programming environments for novices* algorithm visualisation* a schema theory view on learning to program* critical theory as a theoretical approach to computer science education researchJuxtaposed and taken together, these chapters indicate just how varied the perspectives and research approaches can be. These chapters, too, act as entry points, with illustrations drawn from published work.

Game Development Essentials: Video Game Art


Todd Gantzler - 2004
    A strong foundation in game artistry is the essential first step, and leading game art designer Todd Gantzler takes readers behind the scenes to show them how to create the entire visual world - from characters to environments - that a game player encounters on the computer screen. Hands-on tutorial instruction suitable for beginning-to-intermediate-level game artists explains the process involved in creating art for real-time 3D digital games and, specifically, video games. The book highlights the technical aspects of preparing art quickly and effectively while conforming to the limitations and specifications of today's most widely used 3D game engines.

Windows Forensics and Incident Recovery


Harlan Carvey - 2004
    Windowssystems are highly pervasive throughout the entire computing infrastructure,from home and school systems, to high-end e-commerce sites. In contrast tothis pervasiveness, information regarding conducting effective incidentresponse and forensic audit activities on Windows systems is limited. Whilethere are many security books available, none focus specifically on Windowssecurity. There are also resources available online, but they are scattered andoften too general. This book is a compilation of all the information currentlyavailable on this subject. It is for anyone who manages or administers Windowssystems (including home users) and needs to know how to react when theysuspect that an incident has occurred. It guides the reader throughinformation, tools, and techniques that are required to conduct incidentresponse or a live forensics audit activities. By providing the necessarybackground for understanding how incidents occur and how data can behidden on compromised systems, the reader will have a better understanding ofthe "whys" and "hows" of incident response and forensic audit activities. *It isimportant to note that regulatory issues are also pushing organizations towardbetter security and incident preparedness policies.

Fundamentals of Software Engineering


Rajib Mall - 2004
    

Error Control Coding


Shu Lin - 2004
    Completely updated to cover the latest developments, it presents state-of-the-art error control techniques. Coverage of the fundamentals of coding and the applications of codes to the design of real error control systems. Contains the most recent developments of coded modulation, trellises for codes, soft-decision decoding algorithms, turbo coding for reliable data transmission and other areas. There are two new chapters on Reed-Solomon codes and concatenated coding schemes. Also contains hundreds of new and revised examples; and more than 200 illustrations of code structures, encoding and decoding circuits and error performance of many important codes and error control coding systems. Appropriate for those with minimum mathematical background as a comprehensive reference for coding theory.

Computer Networking First-Step


Wendell Odom - 2004
    From connecting our computers together at home and surfing the net at high speeds to editing and sharing digital music and video, computer networking has become both ubiquitous and indispensable. No experience needed! Computer Networking First-Step explains the basics of computer networking in easy-to-grasp language that all of us can understand. This book takes you on a guided tour of the core technologies that make up network and Internet traffic. Whether you are looking to take your first step into a career in networking or are interested in just gaining a conversational knowledge of the technology, this book is for you!

Interactive Theorem Proving and Program Development: Coq Art: The Calculus of Inductive Constructions


Yves Bertot - 2004
    A practical introduction to the development of proofs and certified programs using Coq.An invaluable tool for researchers, students, and engineers interested in formal methods and the development of zero-fault software.

Topology for Computing


Afra J. Zomorodian - 2004
    Such problems arise in many areas, such as computer graphics, robotics, structural biology, and chemistry. The author starts from the basics of topology, assuming no prior exposure to the subject, and moves rapidly up to recent advances in the area, including topological persistence and hierarchical Morse complexes. Algorithms and data structures are presented when appropriate.

Excel 2010: Intermediate Student Manual [With CDROM]


Axzo Press - 2004
    

An Introduction to GCC


Brian J. Gough - 2004
    Many books teach the C and C++ languages, this book teaches you how to use the compiler itself. All the common problems and error messages encountered by new users of GCC are carefully explained, with numerous easy-to-follow "Hello World" examples. Topics covered include: compiling C and C++ programs using header files and libraries, warning options, use of the preprocessor, static and dynamic linking, debugging, optimization, platform-specific options, profiling and coverage testing, paths and environment variables, and the C++ standard library and templates. Features a special foreword by Richard M. Stallman, principal developer of GCC and founder of the GNU Project. All the money raised from the sale of this book will support the development of free software and documentation.

Enterprise Information Systems: A Pattern-Based Approach


Cheryl L. Dunn - 2004
    It also shows how a well-designed REA-based Accounting Information System is the Enterprise Information System.

Graph Theory With Applications To Engineering And Computer Science


Narsingh Deo - 2004
    GRAPH THEORY WITH APPLICATIONS TO ENGINEERING AND COMPUTER SCIENCE-PHI-DEO, NARSINGH-1979-EDN-1

Universal Artificial Intelligence: Sequential Decisions Based on Algorithmic Probability


Marcus Hutter - 2004
    The dream of creating artificial devices that reach or outperform human inteUigence is an old one. It is also one of the dreams of my youth, which have never left me. What makes this challenge so interesting? A solution would have enormous implications on our society, and there are reasons to believe that the AI problem can be solved in my expected lifetime. So, it's worth sticking to it for a lifetime, even if it takes 30 years or so to reap the benefits. The AI problem. The science of artificial intelligence (AI) may be defined as the construction of intelligent systems and their analysis. A natural definition of a system is anything that has an input and an output stream. Intelligence is more complicated. It can have many faces like creativity, solving prob lems, pattern recognition, classification, learning, induction, deduction, build ing analogies, optimization, surviving in an environment, language processing, and knowledge. A formal definition incorporating every aspect of intelligence, however, seems difficult. Most, if not all known facets of intelligence can be formulated as goal driven or, more precisely, as maximizing some utility func tion. It is, therefore, sufficient to study goal-driven AI; e. g. the (biological) goal of animals and humans is to survive and spread. The goal of AI systems should be to be useful to humans."

Models of a Man: Essays in Memory of Herbert A. Simon


Mie Augier - 2004
    In 1978 he was awarded the Nobel Prize ineconomics for his research into the decision-making process within economic organizations. Hiswell-known book The Sciences of the Artificial addresses the implications of the decision-making andproblem-solving processes for the social sciences.This book (the title is a variation on the titleof Simon's autobiography, Models of My Life) is a collection of short essays, all original, bycolleagues from many fields who felt Simon's influence and mourn his loss. Mixing reminiscence andanalysis, the book represents "a small acknowledgment of a large debt."Each of the more than fortycontributors was asked to write about the one work by Simon that he or she had found mostinfluential. The editors then grouped the essays into four sections: "Modeling Man," "Organizationsand Administration," "Modeling Systems," and "Minds and Machines." The contributors include suchprominent figures as Kenneth Arrow, William Baumol, William Cooper, Gerd Gigerenzer, DanielKahneman, David Klahr, Franco Modigliani, Paul Samuelson, and Vernon Smith. Although they considertopics as disparate as "Is Bounded Rationality Unboundedly Rational?" and "Personal Recollectionsfrom 15 Years of Monthly Meetings," each essay is a testament to the legacy of Herbert Simon -- tosee the unity rather than the divergences among disciplines.

Petri Net Theory And The Modeling Of Systems


James Lyle Peterson - 2004
    

TCP/IP First-Step


Mark Sportack - 2004
    It is the official protocol of the Internet and, consequently, has become the predominant communications protocol suite in many private networks and internetworks. No TCP/IP experience needed! TCP/IP First-Step explores TCP/IP concepts in a reader-friendly manner that assumes no previous experience. Learn about packetized data transfer, open networking, reference models, and standards bodies. Understand the architecture of the TCP/IP protocol suite and learn about its components, functions, and respective uses. TCP/IP First-Step helps you understand TCP/IP s role in the network. Learn more about the First-Step Series at www.ciscopress.com/firststep."

Mathematical Techniques in Multisensor Data Fusion


David L. Hall - 2004
    The latest edition covers these areas as well as smart agents, human computer interaction, cognitive aides to analysis and data system fusion control. data fusion system, this book guides you through the process of determining the trade-offs among competing data fusion algorithms, selecting commercial off-the-shelf (COTS) tools, and understanding when data fusion improves systems processing. Completely new chapters in this second edition explain data fusion system control, DARPA's recently developed TRIP model, and the latest applications of data fusion in data warehousing and medical equipment, as well as defence systems.

The Assembly Programming Master Book


Vlad Pirogov - 2004
    The algorithmic knowledge and skills lost in high-level programming provides the justification demonstrated in this guide for using Assembly code. Working applications with detailed comments and descriptions of their operating principles, along with material that can be considered hackish, are included. The tools and techniques of code analysis and modification are covered, making this a useful tool for programmers eager to become better acquainted with hacker methods. Not a guide on Assembly language, this represents a symbiosis between the Assembly language and the Windows operating system.

Assembly Language and Computer Architecture Using C++ and Java


Anthony J. Dos Reis - 2004
    Because of