Programming ebooks. Part II. (15 books)

Posted By: Alexpal
Продолжаем тему, начатую здесь. Сегодня очередные 15 книжек.
А вообще вот так живешь себе спокойно, живешь, уважаешь всякие ISBN'ы и другие особые приметы книжек... Вдруг — бац! и вторая смена... :)
Ну что ж, в свете доктрины, озвученной Аваксом, постараемся перепереть полечку со старофранцузского на язык партии. :) Посмотрим, как получится — уж больно несимпатичны мне эти палки вертикальные... :)
Если же серьезно, на мой взгляд, архинужную и архиважную статью Авакс написал.

Cynthia Gibas, Per Jambeck, "Developing Bioinformatics Computer Skills" First Edition
O'Reilly | ISBN 1-56592-664-1 | 2001 Year | PDF | 2,7 Mb | 446 Pages

Most biological science students and researchers are starting to use computers as more than word-processing or data-collection and plotting devices. Many don't have backgrounds in computer science or computational theory, and to them, the fields of computational biology and bioinformatics may seem hopelessly large and complex. This book, motivated by our interactions with our students and colleagues, is by no means a comprehensive bible on all aspects of bioinformatics. It is, however, a thoughtful introduction to some of the most important topics in bioinformatics. We introduce standard computational techniques for finding information in biological sequence, genome, and molecular structure databases; we talk about how to identify genes and detect characteristic patterns that identify gene families; and we discuss the modeling of phylogenetic relationships, molecular structures, and biochemical properties. We also discuss ways you can use your computer as a tool to organize data, to think systematically about data-analysis processes, and to begin thinking about automation of data handling.
Bioinformatics is a fairly advanced topic, so even an introductory book like this one assumes certain levels of background knowledge. To get the most out of this book you should have some coursework or experience in molecular biology, chemistry, and mathematics. An undergraduate course or two in computer programming would also be helpful.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Introduction to Algorithms, Second Edition"
The Massachusetts Institute of Technology | ISBN 0262032937 | 2001 Year | PDF | 12 Mb | 974 Pages

This book is designed to be both versatile and complete. You will find it useful for a variety of courses, from an undergraduate course in data structures up through a graduate course in algorithms. Because we have provided considerably more material than can fit in a typical one-term course, you should think of the book as a "buffet" or "smorgasbord" from which you can pick and choose the material that best supports the course you wish to teach.
You should find it easy to organize your course around just the chapters you need. We have made chapters relatively self-contained, so that you need not worry about an unexpected and unnecessary dependence of one chapter on another. Each chapter presents the easier material first and the more difficult material later, with section boundaries marking natural stopping points. In an undergraduate course, you might use only the earlier sections from a chapter; in a graduate course, you might cover the entire chapter.
We have included over 920 exercises and over 140 problems. Each section ends with exercises, and each chapter ends with problems. The exercises are generally short questions that test basic mastery of the material. Some are simple self-check thought exercises, whereas others are more substantial and are suitable as assigned homework. The problems are more elaborate case studies that often introduce new material; they typically consist of several questions that lead the student through the steps required to arrive at a solution.

Amit Konar, "Artificial Intelligence and Soft Computing. Behavioral and Cognitive Modeling of the Human Brain"
CRC Press | ISBN 0849313856| 1999 Year | PDF | 7,5 Mb | 816 Pages

With all the material available in the field of artificial intelligence (AI) and soft computing-texts, monographs, and journal articles-there remains a serious gap in the literature. Until now, there has been no comprehensive resource accessible to a broad audience yet containing a depth and breadth of information that enables the reader to fully understand and readily apply AI and soft computing concepts.Artificial Intelligence and Soft Computing fills this gap. It presents both the traditional and the modern aspects of AI and soft computing in a clear, insightful, and highly comprehensive style. It provides an in-depth analysis of mathematical models and algorithms and demonstrates their applications in real world problems. Beginning with the behavioral perspective of "human cognition," the text covers the tools and techniques required for its intelligent realization on machines. The author addresses the classical aspects-search, symbolic logic, planning, and machine learning-in detail and includes the latest research in these areas. He introduces the modern aspects of soft computing from first principles and discusses them in a manner that enables a beginner to grasp the subject. He also covers a number of other leading aspects of AI research, including nonmonotonic and spatio-temporal reasoning, knowledge acquisition, and much more. Artificial Intelligence and Soft Computing: Behavioral and Cognitive Modeling of the Human Brain is unique for its diverse content, clear presentation, and overall completeness. It provides a practical, detailed introduction that will prove valuable to computer science practitioners and students as well as to researchers migrating to the subject from other disciplines.

Warren Ernst, "Presenting ActiveX™"
Sams | ISBN 1575211564 | Year | PDF | 1,6 Mb | 318 Pages

This book is divided into five parts (the fifth includes four appendixes), each of which contains three to five chapters. Each part is intended to approach ActiveX from different perspectives, so although some material might overlap from part to part, each will have a different "slant."
Part I, "Fundamentals of the Internet and ActiveX," is an overview of the Internet and the role ActiveX can play within it. These chapters explore the current deficiencies of the Internet in transmitting information that isn't static and unchanging, how the Internet can support new technology, and how to use Internet Explorer 3.0 to start using ActiveX today.
Part II, "Components of ActiveX," defines and explains the available portions of the family of ActiveX technologies. Each chapter takes a single ActiveX technology, explains how it's similar to or different from existing technology, reviews how it's used and created, and presents examples you can experience.
Part III, "Developing ActiveX Controls," takes you a step further than Part II by actively taking you through the process of creating different ActiveX modules, including scripting, precompiled modules, and Web server enhancements.
Part IV, "Issues and the Future of ActiveX," reviews some of the potential pitfalls and working solutions to using ActiveX, compares these issues to those associated with Java-based technologies, and explores how ActiveX will be incorporated into the next version of Windows NT.

Brent Rector, "Introducing Microsoft WinFX: The Application Programming Interface for the Next Generation of Microsoft Windows, Code Name Longhorn"
Microsoft Press | ISBN 0735620857 | 2004 Year | CHM | 1,4 Mb | 208 Pages

Get a headstart evaluating and programming with Microsoft’s next-generation client operating system. Get an expert, developer-focused introduction to the next generation Windows client operating system. Windows programming authority Brent Rector takes you inside the WinFX application model, explaining how its unified, managed-coded environment dramatically simplifies many programmatic “housekeeping” tasks and provides application security services from the very beginning of the development process. Then you’ll jump right into compiling, deploying, and running your first applications. From learning the new Extensible Application Markup Language (XAML) to taking advantage of the radical enhancements in security and privacy features, unified storage, file system APIs, rich media, and collaboration and communication services — you get the prerelease insights and preview code to dig into the “Longhorn” API right now.
Discover how to:
— Design applications using the WinFX application model
— Work with the Microsoft .NET Build Engine
— Exploit XAML to produce media-rich user interfaces and enhance online page navigation
— Use the new WinFS storage system in Longhorn to access, manipulate, extend, and share data with less programmatic complexity
— Move information between a .NET object and the UI and back again — without writing any procedural code — using data binding
— Create security-enhanced communication applications — from Web services to RemoteObjects — with the new Windows communications technology, code name “indigo”
— Write mobile applications with improved power management, grab-and-go docking, and wireless networking capabilities.

Michele Marchesi, Giancarlo Succi, Don Wells, Laurie Williams, "Extreme Programming Perspectives"
Addison Wesley | ISBN 0-201-77005-9 | 2002 Year | CHM | 2 Mb | 640 Pages

Extreme Programming (XP) has been established as a significant departure from traditional software development methods. The success of the XP 2001 and XP Universe 2001 conferences is no surprise; some of the brightest minds in software engineering gathered at these venues to discuss the discipline that is XP. These conferences showcase the continuously changing face of XP. Common programming practices will never be the same, and developers and business people alike need to bear this fact in mind as they plan for the future.
Inspired by the techniques and challenges explored at these conferences, Extreme Programming Perspectives presents 47 articles that represent the insights and practical wisdom of the leaders of the XP community. Encompassing a wide variety of key topics on XP and other agile methodologies, this book offers experience-based techniques for implementing XP effectively and provides successful transitioning strategies.
Articles are grouped into six main sections:
— an overview of XP and agile methodologies;
— XP development practices;
— issues involved in transitioning to XP and agile methodologies;
— real-life experiences of working with XP;
— tools for facilitating XP development;
— and finally, ideas for expanding and extending XP.

J.Adams, "Advanced Animation with DirectX"
Premier Press | ISBN | 2003 Year | PDF | 2,2 Mb | 353 Pages

Welcome to Advanced Animation with DirectX® ! This book is your guide to getting past the basics of DirectX graphics and into the bigger world of advanced animation! Take the information you already know and learn how to expand it into a vast array of various eyepopping graphical effects. Keep your highschool textbooks at school, however, because this book won't bore you with pages of theories and algorithms. Instead, you'll see realworld examples of some of the hottest animation techniques used today. Jampacked with easy to understand concepts, fully commented code, and cool demos, this book makes learning the advanced stuff simple and fun!
This means there is no room wasted on teaching basic concepts, such as initializing Direct3D or using Windows message pumps, so you need to know a little something about Direct3D in general before you go on. Whoa! Don't put the book down just yet. I'm talking about the extreme basics, such as initializing Direct3D, using materials and textures, and handling vertex buffers. If you know all that, then you are definitely ready to move on to the advanced stuff, and this book is the place to start!

Chapter 1: Preparing for the Book
Chapter 2: Timing in Animation and Movement
Chapter 3: Using the .X File Format
Chapter 4: Working with Skeletal Animation
Chapter 5: Using KeyFramed Skeletal Animation
Chapter 6: Blending Skeletal Animations
Chapter 7: Implementing Rag Doll Animation
Chapter 8: Working with Morphing Animation
Chapter 9: Using KeyFramed Morphing Animation
Chapter 10: Blending Morphing Animations
Chapter 11: Morphing Facial Animation
Chapter 12: Using Particles in Animation
Chapter 13: Simulating Cloth and Soft Body Mesh Animation
Chapter 14: Using Animated Textures

Kent Beck, Martin Fowler, "Planning Extreme Programming" First Edition
Addison Wesley | ISBN 0-201-71091-9 | 2000 Year | PDF | 0,8 Mb | 160 Pages

The hallmarks of Extreme Programming — constant integration and automated testing, frequent small releases that incorporate continual customer feedback, and a teamwork approach — make it an exceptionally flexible and effective approach to software development. Once considered radical, Extreme Programming (XP) is rapidly becoming recognized as an approach particularly well-suited to small teams facing vague or rapidly changing requirements — that is, the majority of projects in today’s fast-paced software development world.
Within this context of flexibility and rapid-fire changes, planning is critical; without it, software projects can quickly fall apart. Written by acknowledged XP authorities Kent Beck and Martin Fowler, Planning Extreme Programming presents the approaches, methods, and advice you need to plan and track a successful Extreme Programming project. The key XP philosophy: Planning is not a one-time event, but a constant process of reevaluation and course-correction throughout the lifecycle of the project.
You will learn how planning is essential to controlling workload, reducing programmer stress, increasing productivity, and keeping projects on track. Planning Extreme Programming also focuses on the importance of estimating the cost and time for each user story (requirement), determining its priority, and planning software releases accordingly.
Specific topics include:
• Planning and the four key variables: cost, quality, time, and scope
• Deciding how many features to incorporate into a release
• Estimating scope, time, and effort for user stories
• Prioritizing user stories
• Balancing the business value and technical risk of user stories
• Rebuilding the release plan based on customer and programmer input
• Choosing the iteration length
• Tracking an iteration
• What to do when you’re not going to make the date
• Dealing with bugs
• Making changes to the team
• Outsourcing
• Working with business contracts

R.E.Bryant, D.R.O’Hallaron, "Computer Systems. A Programmers Perspective" 1st edition
Prentice Hall | ISBN 013034074X| 2001 Year | PDF | 4,4 Mb | 783 Pages

This book is for programmers who want to write faster and more reliable programs. By learning how programs are mapped onto the system and executed, readers will better understand why programs behave the way they do and how inefficiencies arise. Computer systems are viewed broadly, comprising processor and memory hardware, compiler, operating system, and networking environment. With its programmer's perspective, readers can clearly see how learning about the inner workings of computer systems will help their further development as computer scientists and engineers. It also helps prepare them for further study in computer architecture, operating systems, compilers, and networking.
Topics include: data representations, machine-level representations of C programs, processor architecture, program optimization, memory hierarchy, linking, exceptional control flow, virtual memory and memory management, system-level I/O, network programming, and concurrent programming. The coverage focuses on how these areas affect application and system programmers. For example, when covering data representations, it considers how the finite representations used to represent numbers can approximate integer and real numbers, but with limitations that must be understood by programmers. When covering caching, it discusses how the ordering of loop indices in matrix code can affect program performance. When covering networking, it describes how a concurrent server can efficiently handle requests from multiple clients.
The book is based on Intel-compatible (IA32) machines executing C programs on Unix or related operating systems such as Linux. Some familiarity with C or C++ is assumed, although hints are included to help readers making the transition from Java to C.
A complete set of resources, including labs and assignments, lecture notes, and code examples are available via the book's Web site at
This book explains the important and enduring concepts underlying all computer systems, and shows the concrete ways that these ideas affect the correctness, performance, and utility of application programs. The book's concrete and hands-on approach will help readers understand what is going on “under the hood” of a computer system. This book focuses on the key concepts of basic network programming, program structure and execution, running programs on a system, and interaction and communication between programs. For anyone interested in computer organization and architecture as well as computer systems.

I Program Structure and Execution
2 Representing and Manipulating Information
3 Machine-Level Representation of C Programs
4 Processor Architecture
5 Optimizing Program Performance
6 The Memory Hierarchy
II Running Programs on a System
7 Linking
8 Exceptional Control Flow
9 Measuring Program Execution Time
10 Virtual Memory
III Interaction and Communication Between Programs
11 Concurrent Programming with Threads
12 Network Programming
A Error handling
B Solutions to Practice Problems

Ilene Burnstein, "Practical Software Testing: a process-oriented approach"
Springer-Verlag | ISBN | 2003 Year | PDF | 2,6 Mb | 732 Pages

Software testing is rapidly evolving as a critical sub-discipline of software engineering. The industry needs professionals educated in the modern methods and tools of software testing and quality assurance. Based on the needs of software professionals, "Practical Software Testing" takes a unique approach to teaching readers how to effectively plan for testing, design test cases, test at multiple levels, organize a testing team, and optimize use of testing tools. It introduces testing concepts that are managerial-, technical-, and process-oriented, using the Testing Maturity Model (TMM) as a framework.
— includes a sample test plan, comprehensive exercises, and definitions for software testing and quality
— introduces both technical and managerial aspects of testing in a clear and precise style, for integrated learning
— balanced perspective and comprehensive view of all testing aspects
— uses the TMM framework to introduce testing in a systematic, evolutionary way, and describes industrial TMM applications
— covers testing topics with either procedurally based or object-oriented programming code. With its accessible, practical, and well-focused framework, this new resource provides an integrated presentation of software-testing processes and practices. Professionals and practitioners in software testing, software quality assurance, or software validation and verification will benefit greatly from using this essential resource.

Tom Meigs, "Ultimate Game Design Building Game Worlds"
McGraw Hill| ISBN | 2003 Year | PDF | 4,5 Mb | 369 Pages

Filled with tips and techniques from veteran game designers at Sony, Blizzard, Disney, LucasArts, Activision, 3DO, and many others!
Plan, design, and create enthralling game environments complete with richly animated characters and objects by applying the expert techniques described in this one-of-a-kind resource. Veteran game developer Tom Meigs covers the foundations of game design, including previsualization, level stubbing and layout, lighting, texturing, behavior scripting, and using particles, and explains in detail each stage of game development and design. Each chapter features an in-depth interview with a game industry expert as well as case a study based on Tom's real-world experiences working on Sony PlayStation games and various other projects. Plus, you'll get priceless advice on how to get into the game development industry now with details on the different types of jobs available.
— Develop a comprehensive previsualization process for your game project
— Create topographic maps and reference drawings for level planning and layout
— Build up your game scenes with lighting, texturing, particles, effects, and audio
— Place actors, props, and items and tune specific camera details
— Learn about game design by genre — sports, fighting, RTS, role-playing, — FPS, sims, MMOG, and others
— Script action events using JavaScript, Visual Basic, Python, Perl, and other tools
— Develop and design games for wireless devices including PDAs and mobile phones
— Implement a testing loop
— Learn how to avoid mistakes and set yourself up for success
Build games with techniques and insights from a pro. Author and game developer Tom Meigs shows you the finer points of world building and behavior scripting. Learn about level stubbing, lighting, prop and item placement, camera tricks, particle and effects systems, communication loops, Massively Multiplayer Online Games, and much more.

"DDJ Algorithms and Data Structures Articles"
| CHM | 2,4 Mb

А это сборник статей по алгоритмам. В нем же листинги примеров к статьям на языке C.
Все собрано в один chm-файл.

AUTOROUTING WITH THE A* ALGORITHM by Randy Nevin; September 1989
SIMULATED ANNEALING by Michael P. McLaughlin; September 1989
SELF-ADJUSTING DATA STRUCTURES by Andrew M. Liao; February 1990
ONE-WAY HASH FUNCTIONS by Bruce Schneier; September 1991
AUDIO COMPRESSION by John W. Ratcliff; July 1992
ALGORITHMS FOR STEREOSCOPIC IMAGING by Victor J. Duvanenko and W.E. Robbins; April 1993
THE IDEA ENCRYPTION ALGORITHM by Bruce Schneier; December 1993
ALGORITHM ALLEY: Rendering Circles and Ellipses by Tim Kientzle; July 1994
ALGORITHM ALLEY: Genetic Annealing by Kenneth V. Price; October 1994
ALGORITHM ALLEY: Truly Random Numbers by Colin Plumb; November 1994
Real-Time Scheduling Algorithms by Alberto Daniel Ferrari; December 1994
Morphing on Your PC by Scott Anderson; Sourcebook, Winter 1994
The RC5 Encryption Algorithm by Ronald L. Rivest; January 1995
ALGORITHM ALLEY: The GOST Encryption Algorithm by Bruce Schneier; January 1995
ALGORITHM ALLEY: Faster FFTs by J.G.G. Dobbe; February 1995
ALGORITHM ALLEY: Computing the Day of the Week by Kim S. Larsen; April 1995
ALGORITHM ALLEY: Generating Sequential Keys in an Arbitrary Radix by Gene Callahan; December 1995
Evaluating Data-Compression Algorithms by G. Jason Mathews; January 1996
ALGORITHM ALLEY: Multiple Encryption: Weighing Security and Performance by Burton S. Kaliski, Jr. and M.J.B. Robshaw; January 1996
ALGORITHM ALLEY: Binary Search by Micha Hofri; February 1996
ALGORITHM ALLEY: A Fast Integer Square Root by Peter Heinrich; April 1996
ALGORITHM ALLEY: Building Decision Trees with the ID3 Algorithm by Andrew Colin; June 1996
ALGORITHM ALLEY: Minimal Perfect Hashing by Carlo Pescio; July 1996
ALGORITHM ALLEY: Fast String Searching With Suffix Trees by Mark R. Nelson; August 1996
ALGORITHM ALLEY: HATs: Hashed Array Trees by Edward Sitarski; September 1996
ALGORITHM ALLEY: The Fibonacci Heap by John Boyer; January 1997
Scheduling Algorithms and NP-Complete Problems by Oleg Kiselyov; February 1997
Elliptic Curves and Cryptography by Aleksandar Jurisic and Alfred J. Menezes; April 1997
ALGORITHM ALLEY: Understanding CRCs by Tim Kientzle; April 1997
ALGORITHM ALLEY: Topological Sorting by Jonathan Pincus and Jerry Schwarz; August 1997
The Block Cipher Square Algorithm by Joan Daemen, Lars R. Knudsen, and Vincent Rijmen; October 1997
ALGORITHM ALLEY: Inside IMA ADPCM by Tim Kientzle; November 1997
ALGORITHM ALLEY: Resizable Data Structures by John Boyer; January 1998
ALGORITHM ALLEY: The Flashsort1 Algorithm by Karl-Dietrich Neubert; February 1998
ALGORITHM ALLEY: Exponential Smoothing by William Stallings; March 1998
ALGORITHM ALLEY: Adaptive Delta Modulation by Gary D. Knott; April 1998
ALGORITHM ALLEY: The Cost of Recursion by Jon Bentley; June 1998

Daniel Sanchez-Crespo Dalmau, "Core Techniques and Algorithms in Game Programming" 1st edition
New Riders Games | ISBN 0131020099 | 2003 Year | CHM | 4,6 Mb | 912 Pages

To even try to keep pace with the rapid evolution of game development, you need a strong foundation in core programming techniques-not a hefty volume on one narrow topic or one that devotes itself to API-specific implementations. Finally, there's a guide that delivers! As a professor at the Spanish university that offered that country's first master's degree in video game creation, author Daniel Sanchez-Crespo recognizes that there's a core programming curriculum every game designer should be well versed in-and he's outlined it in these pages! By focusing on time-tested coding techniques-and providing code samples that use C++, and the OpenGL and DirectX APIs-Daniel has produced a guide whose shelf life will extend long beyond the latest industry trend. Code design, data structures, design patterns, AI, scripting engines, 3D pipelines, texture mapping, and more: They're all covered here-in clear, coherent fashion and with a focus on the essentials that will have you referring back to this volume for years to come.

James C. Leiterman, "Vector Games Math Processors (Wordware Game Math Library)"
Wordware Publishing, Inc. | ISBN 1556229216 | 2002 Year | PDF | 5,8 Mb | 507 Pages

Due to the advancement of video games and game console hardware, the super computer is now a home consumer appliance. Vector Game Math Processors explains to programmers how to write parallel-based integer and floating point based math algorithms for use in video games as well as scientific applications. Every manufacturer uses their own terms such as SIMD, Packed Data, Parallel Data, Semi-Vector, and Vector but they are all different labels for the methodology for programming multiple sets of data with the same computer instruction at the same time. Programmers have been publicly declaring these newer processors more complex and harder to program. The primary goal of this book is to explain the differences in these processors. This is an advanced title appropriate for experienced game and graphics programmers and is part of the Wordware Game Developer's Library.

James Leiterman, "Learn Vertex & Pixel Shader Programming with DirectX 9"
Wordware Publishing, Inc.| ISBN 1556222874 | 2004 Year | PDF | 8,6 Mb | 400 Pages

This book covers all the fundamentals of programming vectors using SIMD methodology in conjunction with the Direct3D 9 application interfaces.
The next logical step in making 3D graphics and animation go faster is to allow a programmer to add his own code directly into the rendering pipeline. The way is now paved where a simple C-style scripting language called Cg is implemented as well as an assembly programming language with miscellaneous levels of syntax for programming registers fort he new programmable vertex and pixel shader-based video cards.
This book is laid out as a reference manual in terms of functionlity and is organized into three primary sections:
— Vertex shaders
— Pixel shaders
— Reference information