Computer programming / software engineering Books
John Wiley & Sons Inc Introduction to Engineering Programming
Book SynopsisClick here to read ACCU''s review of this book.This text is an indispensable collection of four tutorials covering concepts in modern engineering computations, and engineering programming in ANSI C, MATLAB Version 5 and Java 1.1.Table of ContentsCONCEPTS IN MODERN ENGINEERING COMPUTATIONS. Introduction to Engineering Computations. Principles of Engineering Software Development. C PROGRAMMING TUTORIAL. Getting Started. Basic Data Types and Variables. Operators and Expressions. Control of Flow. Functions I. Arrays and Pointers. Functions II. Dynamic Allocation of Memory. The C Preprocessor. Input and Output. MATLAB PROGRAMMING TUTORIAL. Introduction to MATLAB. MATLAB Graphics. Solution of Linear Matrix Equations. JAVA PROGRAMMING TUTORIAL. Introduction to Java. Object-Oriented Program Design. The Java Language. Java Graphics. Appendices. References. Index.
£163.76
John Wiley & Sons Inc Programming 3e
Book SynopsisThis book explains and illustrates key concepts of programming by taking a breadth approach to programming languages. It uses C++ as the primary language throughout, demonstrating imperative, functional and object--oriented language concepts.Table of ContentsSyntax and Semantics. Structuring the Data. Structuring the Computation. Structuring the Program. Object-Oriented Languages. Functional Programming Languages. Logic and Rule-Based Languages. Languages in Context. Appendix. Bibliography. Index.
£154.76
John Wiley & Sons Inc Karel
Book SynopsisUsing the same format that has become so popular in Pascal, Karel the Robot has now become object-oriented. This book is intended to teach novice programmers the fundamentals of object-oriented programming. It accomplishes this goal with an analog equivalent of C++ that allows introductory computer science students to work through a programming project from start to finish.The book opens by explaining the elaborate Robot world that Karel lives in, a world filled with objects. The text continues this strong metaphor throughout. Through the metaphor, students learn the art of solving programming problems in an object-oriented paradigm.This text is suitable for any introductory or second course in computer science where C++ is used.Table of ContentsThe Robot World. Primitive Instructions and Simple Programs. Extending the Robot Programming Language. Conditionally Executing Instructions. Instructions That Repeat. Advanced Techniques for Robots. Appendices.
£72.15
John Wiley & Sons Inc Antipatterns
Book SynopsisPatterns are popular in software development and used to identify different types of procedures, designs, or codes that work. AntiPatterns are the exact opposite, targeting common errors and issues that can cause a project to fail. This book provides practical guidelines on detecting AntiPatterns and the refactored solutions that correct them.Table of ContentsINTRODUCTION TO ANTIPATTERNS. Introduction to Patterns and AntiPatterns. AntiPatterns Reference Model. Templates for Patterns and AntiPatterns. Advice for Using AntiPatterns. ANTIPATTERNS Software Development AntiPatterns. Software Architecture AntiPatterns. Software Project Management AntiPatterns. CONCLUSIONS AND RESOURCES. Appendices. Index.
£41.60
John Wiley & Sons Inc Agile Modeling
Book SynopsisAgile Modeling (AM) is a collection of techniques for modeling software that can be applied on an eXtreme Programming (XP) project. Because XP is fast-moving software development, modeling an XP project needs to be quick as well. Traditional modeling techniques based on the UML do not work.Trade Review“…I would not hesitate in recommending this book…” (CVu, October 2004) “…easy-to-follow…enjoyable writing style…overall the book is impressive…valuable reading…” (Software Testing, Verification & Reliability, March 2003)Table of ContentsForeword xi Preface xiii Part One Introduction to Agile Modeling 1 Chapter 1 Introduction 3 Enter Agile Software Development 6 Agile Modeling 8 The SWA Online Case Study 17 A Brief Overview of this Book 18 Chapter 2 Agile Modeling Values 19 Communication 20 Simplicity 21 Feedback 22 Courage 23 Humility 25 Beyond Motherhood and Apple Pie 26 Chapter 3 Core Principles 27 Software Is Your Primary Goal 28 Enabling the Next Effort Is Your Secondary Goal 28 Travel Light 29 Assume Simplicity 29 Embrace Change 30 Incremental Change 31 Model with a Purpose 31 Multiple Models 32 Quality Work 34 Rapid Feedback 35 Maximize Stakeholder Investment 37 Why Core Principles? 37 Chapter 4 Supplementary Principles 38 Content Is More Important Than Representation 38 Everyone Can Learn from Everyone Else 41 Know Your Models 41 Local Adaptation 42 Open and Honest Communication 42 Work with People’s Instincts 42 Benefiting from These Principles 43 Chapter 5 Core Practices 44 Practices for Iterative and Incremental Modeling 45 Practices for Effective Teamwork 52 Practices That Enable Simplicity 56 Practices for Validating Your Work 58 Chapter 6 Supplementary Practices 60 Practices to Improve Your Productivity 61 Practices for Agile Documentation 64 Practices Concerning Your Motivation 68 Really Good Ideas 71 How to Schedule AM Practices on Your Project 72 Chapter 7 Order from Chaos: How the AM Practices Fit Together 73 The Core Practices 73 The Supplementary Practices 76 How the Categories Relate to One Another 77 Chaos and Order: Chaordic 79 Looking Ahead 80 Part Two Agile Modeling in Practice 81 Chapter 8 Communication 83 How Do We Communicate? 84 Factors That Affect Communication 85 Communication and Agile Modeling 86 Effective Communication 87 Chapter 9 Nurturing an Agile Culture 89 Overcome the Misconceptions That Surround Modeling 89 Think Small 95 Loosen Up a Bit 96 Rigidly Support Rights and Responsibilities 97 Rethink Presentations to Project Stakeholders 98 Chapter 10 Using the Simplest Tools Possible? 101 Agile Modeling with Simple Tools? 102 The Evolution of a Model 107 Agile Modeling with CASE Tools 111 Use the Media 115 The Effect of Tools on Models 116 Using the Simplest Tools In Practice 117 Chapter 11 Agile Work Areas 118 Agile Modeling Room 118 Effective Work Areas 122 Making This Work in the Real World 122 Chapter 12 Agile Modeling Teams 124 Recruit a Few Good Developers 124 Recognize That There Is No “I” in Agile 128 Require that Everyone Actively Participates 130 Model in Teams 130 Making This Work in the Real World 132 Chapter 13 Agile Modeling Sessions 134 Modeling Session Duration 134 Types of Modeling Sessions 136 Participants in Modeling Sessions 138 The Formality of Modeling Sessions 140 How to Make This Work in the Real World 142 Chapter 14 Agile Documentation 143 Why Do People Document? 144 When Does a Model Become Permanent? 147 Chapter 15 The UML and Beyond 168 The UML Is Not Sufficient 169 The UML Is Too Complex 171 The UML Is Not a Methodology or Process 171 Forget about Executable UML (for Now) 172 Making the UMLWork in Practice 173 Part Three Agile Modeling and eXtreme Programming (XP) 175 Chapter 16 Setting the Record Straight 177 Modeling Is a Part of XP 178 Documentation Happens 179 XP and the UML? 181 And the Verdict Is? 183 Chapter 17 Agile Modeling and eXtreme Programming 184 The Potential Fit between AM and XP 185 Refactoring and AM 185 Test-First Development and AM 188 Which AM Practices Should You Adopt? 189 Chapter 18 Agile Modeling Throughout the XP Lifecycle 190 Exploration Phase 191 Planning Phase 192 Iterations to Release Phase 194 Productionizing 196 Maintenance 197 How Do You Make This Work? 198 Chapter 19 Modeling During the XP Exploration Phase 199 Initial Requirements Up Front (IRUF) 199 Metaphors, Architectures, and Spikes 203 Setting the Foundation for Your Project 206 Chapter 20 Modeling During an XP Iteration: Searching for Items 207 The Task 208 Modeling the Physical Database Schema 209 Observations 212 Chapter 21 Modeling During an XP Iteration: Totaling an Order 214 The Task 214 Requirements Modeling to the Rescue 215 Help from an Outside Expert 217 A Quick Design Session 218 Formalizing a Contract Model 220 What about Changes in the Future? 220 Observations 222 How to Make This Work in the Real World 222 Part Four Agile Modeling and the Unified Process 223 Chapter 22 Agile Modeling and the Unified Process 225 How Modeling Works in the Unified Process 226 How Good Is the Fit? 227 Choose To Be Agile 231 Chapter 23 Agile Modeling throughout the Unified Process Lifecycle 232 The Modeling Disciplines 232 Non-Modeling Disciplines 242 How Do You Make This Work? 245 Chapter 24 Agile Business Modeling 246 A Business/Essential Use Case Model 247 A Simple Business Object Model 248 An Agile Supplementary Business Specification 249 A Business Vision 252 How to Make This Work in Practice 253 Chapter 25 Agile Requirements 254 The Context Model 255 Use Case Model 258 Use Case Story Board 262 Supplementary Specification 265 How to Make This Work in Practice 267 Chapter 26 Agile Analysis and Design 269 Rethinking Analysis and Design Models in the UP 270 Architectural Modeling 272 Creating Use Case Realizations 277 Time to Update Our Use Case? 281 Time to Use a CASE Tool? 284 Design Class Modeling 284 Data Modeling 287 Embracing Change 290 How Does This Work in Practice? 291 Chapter 27 Agile Infrastructure Management 292 Infrastructure Models 293 Infrastructure Modeling 294 Setting Modeling Standards and Guidelines 297 Core Infrastructure Teams 299 Scaling AM with Core Architecture Teams 301 How to Make This Work in the Real World 302 Chapter 28 Adopting AM on an UP Project 304 How Does This Work? 308 Part Five Looking Ahead 309 Chapter 29 Adopting Agile Modeling or Overcoming Adversity 311 Evaluate the Fit 312 Keep It Simple 315 Overcome Organizational and Cultural Challenges 316 Consider Alternatives to Full Adoption of AM 324 How to Make This Work in Practice 324 Chapter 30 Conclusion: Choose to Succeed 325 Common Misconceptions Regarding Agile Modeling 325 When Is(n’t) it Agile Modeling? 326 Agile Modeling Resources 328 A Few Parting Thoughts . . . 329 Appendix A Modeling Techniques 330 Glossary of Definitions and Abbreviations 358 References and Suggested Reading 369 Index 375
£34.00
John Wiley & Sons Inc Software Design
Book SynopsisUML (the Unified Modeling Language), design patterns, and software component technologies are three new advances that help software engineers create more efficient and effective software designs. Now Eric Braude pulls these three advances together into one unified presentation.Table of ContentsPrologue: The Software Process Part I: Design Principles, The Unified Modeling Language, and Code-Level Design Part II: Design Patterns Part III: Components Part IV: Object-Oriented Analysis and Design
£131.05
John Wiley & Sons Inc C and UNIX
Book SynopsisSome things just naturally fit together. Such is the case for C and UNIX: these software tools have been developed in tandem -- C is an excellent programming language, UNIX is an excellent operating system. They work well together and many software developers choose to take advantage of the symbiotic relationship between C and UNIX. In this book the essential features of C and UNIX are introduced, and readers are shown how to write more powerful and more efficient programs. The book is divided into four parts: Basic Program Syntax and Control, Program Design and Control of Input/Output, Data Structure Design and Management, and Advanced Features of C and UNIX.Table of ContentsPrograms. Flow of Control. Functions. Input/Output. Program Design. Arrays. Strings. Structures. Dynamic Memory Management. Data Structure Design. Specialized Tools. Advanced Programming Topics. Advanced Design Methods. Appendices. Index.
£140.35
John Wiley & Sons Inc Fortran 90 For Engineers
Book SynopsisFive-step problem solving process. A five-step methodology for solving problems is used throughout the text. Each step is clearly identified to help students focus on the process of breaking a problem into smaller components and then addressing the smaller components throughout the text. The five steps are: State the problem clearly.Table of ContentsSolving Problems with Fortran 90 Arithmetic Computations and Simple Programs Control Constructs Engineering and Scientific Data Files Array Processing External Procedures Additional Data Types An Introduction to Pointers Appendix A: Fortran 90 Intrinsic Functions Solutions to Try It! Exercises Answers to Selected Problems
£81.65
John Wiley & Sons Inc Algorithm Design
Book Synopsis Are you looking for something different in your Algorithms text? Are you looking for an Algorithms text that offers theoretical analysis techniques as well as design patterns and experimental methods for the engineering of algorithms? Michael Goodrich and Roberto Tamassia, authors of the successful, Data Structures and Algorithms in Java, 2/e, have written Algorithm Design, a text designed to provide a comprehensive introduction to the design, implementation and analysis of computer algorithms and data structures from a modern perspective. Written for an undergraduate, junior-senior algorithms course this text offers several implementation case studies and uses Internet applications to motivate many topics such as hashing, sorting and searching. Table of ContentsI Fundamental Tools 1 1 Algorithm Analysis 3 1.1 Methodologies for Analyzing Algorithms 5 1.2 Asymptotic Notation 13 1.3 A Quick Mathematical Review 21 1.4 Case Studies in Algorithm Analysis 31 1.5 Amortization 34 1.6 Experimentation 42 1.7 Exercises 47 2 Basic Data Structures 55 2.1 Stack sand Queues 57 2.2 Vectors, Lists, and Sequences 65 2.3 Trees 75 2.4 Priority Queues and Heaps 94 2.5 Dictionaries and Hash Tables 114 2.6 Java Example: Heap 128 2.7 Exercises 131 3 Search Trees and Skip Lists 139 3.1 Ordered Dictionaries and Binary Search Trees 141 3.2 AVL Trees 152 3.3 Bounded-Depth Search Trees 159 3.4 Splay Trees 185 3.5 Sk i p Lists 195 3.6 Java Example: AVL and Red-Black Trees 202 3.7 Exercises 212 4 Sorting, Sets, and Selection 217 4.1 Merge-Sort 219 4.2 The Set Abstract Data Type 225 4.3 Quick -Sort 235 4.4 A Lower Bound on Comparison-Based Sorting 239 4.5 Buck et-Sort and Radix-Sort 241 4.6 Comparison of Sorting Algorithms 244 4.7 Selection 245 4.8 Java Example: In-Place Quick -Sort 248 4.9 Exercises 251 5 Fundamental Techniques 257 5.1 The GreedyMethod 259 5.2 Divide-and-Conquer 263 5.3 Dynamic Programming 274 5.4 Exercises 282 II Graph Algorithms 285 6 Graphs 287 6.1 The Graph Abstract Data Type 289 6.2 Data Structures for Graphs 296 6.3 Graph Traversal 303 6.4 Directed Graphs 316 6.5 Java Example: Depth-First Search 329 6.6 Exercises 335 7 Weighted Graphs 339 7.1 Single-Source Shortest Paths 341 7.2 All-Pairs Shortest Paths 354 7.3 Minimum Spanning Trees 360 7.4 Java Example: Dijk stra’s Algorithm 373 7.5 Exercises 376 8 Network Flow and Matching 381 8.1 Flows and Cuts 383 8.2 Maximum Flow 387 8.3 Maximum BipartiteMatching 396 8.4 Minimum-Cost Flow 398 8.5 Java Example: Minimum-Cost Flow 405 8.6 Exercises 412 III Internet Algorithmics 415 9 Text Processing 417 9.1 Strings and PatternMatching Algorithms 419 9.2 Tries 429 9.3 Text Compression 440 9.4 Text Similarity Testing 443 9.5 Exercises 447 10 Number Theory and Cryptography 451 10.1 Fundamental Algorithms Involving Numbers 453 10.2 Cryptographic Computations 471 10.3 Information Security Algorithms and Protocols 481 10.4 The Fast Fourier Transform 488 10.5 Java Example: FFT 500 10.6 Exercises 508 11 Network Algorithms 511 11.1 ComplexityMeasures and Models 513 11.2 Fundamental Distributed Algorithms 517 11.3 Broadcast and Unicast Routing 530 11.4 Multicast Routing 535 11.5 Exercises 541 IV Additional Topics 545 12 Computational Geometry 547 12.1 Range Trees 549 12.2 Priority Search Trees 556 12.3 Quadtrees and k-D Trees 561 12.4 The Plane Sweep Technique 565 12.5 Convex Hulls 572 12.6 Java Example: Convex Hull 583 12.7 Exercises 587 13 NP-Completeness 591 13.1 P and NP 593 13.2 NP-Completeness 599 13.3 Important NP-Complete Problems 603 13.4 Approximation Algorithms 618 13.5 Back track i ng and Branch-and-Bound 627 13.6 Exercises 638 14 Algorithmic Frameworks 643 14.1 External-Memory Algorithms 645 14.2 Parallel Algorithms 657 14.3 Online Algorithms 667 14.4 Exercises 680 A Useful Mathematical Facts 685 Bibliography 689 Index 698
£155.66
John Wiley & Sons Inc Enterprise Integration
Book SynopsisAs enterprise integration typically consumes huge portions of IT budgets, companies increasingly turn to component technologies such as Enterprise JavaBeans and CORBA to streamline business processes for corporate-wide decision support.Table of ContentsForeword. Introduction. Acknowledgments. Assessing the Technology Landscape. Setting Enterprise Integration Design Objectives. Defining the Enterprise Architecture. Establishing the Enterprise Infrastructure. Creating a Business System Domain. Providing the Messaging Infrastructure. Integrating Workflow Management. Providing Web-Based User Access. Integrating with XML. Using Component Technology. Ensuring Enterprise System Security. Supporting Enterprise Intelligence. Implementing the Architecture. References. Index.
£61.75
John Wiley & Sons Inc Software Paradigms
Book SynopsisSoftware Paradigms provides the first complete compilation of software paradigms commonly used to develop large software applications, with coverage ranging from discrete problems to full-scale applications.Trade Review"...an excellent course reference for someone with significant but varied...software development ideas...a handy reference for identifying the similarities between...software development elements…" (IEEE Software Magazine, January/February 2006) "…useful to some programmers." (CHOICE, October 2005) "This is a good survey of the various topics…quite relevant to the CSQE body of knowledge architecture topic." (Software Quality Professional, September 2005) "…a timely work that helps put recent advances in software architecture and framework development in context with earlier software design concepts." (Computing Reviews.com, July 29, 2005) "…a welcome…addition to the literature on software development paradigm." (Computing Reviews.com, May 3, 2005)Table of ContentsADVICE FOR THE INSTRUCTOR. ACKNOWLEDGMENTS. 1 Introduction. 1.1 The Meaning of Paradigm. 1.2 Software Solves Problems. 1.3 Designing and Developing Software. 1.4 Understanding Problem Paradigms. 1.5 Overview of Book. 1.6 Conventions. 1.7 Exercises. 2 Paradigm Overview. 2.1 Problem Paradigms. 2.2 A Functional Classification of Problems. 2.3 Programming Languages. 2.4 Design Patterns. 2.5 Components. 2.6 Software Architectures. 2.7 Frameworks. 2.8 Further Reading. 2.9 Exercises. I DESIGN PATTERNS. 3 Overview of Design Patterns. 3.1 A Brief History of Patterns. 3.2 Why Patterns? 3.3 Pattern Spaces. 3.4 Types of Software Patterns. 3.5 Describing Patterns. 3.6 How Do We Discover Patterns? 3.7 Using Patterns. 3.8 Further Reading. 3.9 Exercises. 4 Software Patterns. 4.1 Singleton. 4.2 The Wrapper Pattern. 4.3 The Abstract Factory Pattern. 4.4 Observer Pattern. 4.5 Exercises. 5 Human–Computer Interface Patterns. 5.1 Style Guides. 5.2 An HCI Pattern Language. 5.3 Web Design Patterns. 5.4 Further Reading. 5.5 Exercises. 6 Other Pattern Domains. 6.1 Coplien’s Patterns. 6.2 Object-Oriented Patterns. 6.3 Antipatterns. 6.4 Further Reading. 6.5 Exercises. 7 Pattern Design. 7.1 Design Pattern Issues. 7.2 Some Simple Pattern Design Principles. 7.3 Limitations of Design Patterns. 7.4 Further Reading. 7.5 Exercises. II COMPONENTS. 8 Component Concepts. 8.1 What Are Software Components? 8.2 Why Use Components? 8.3 Component Models. 8.4 Using Components. 8.5 Component Reuse. 8.6 Exercises. 9 Types of Components. 9.1 Event-Based Components. 9.2 Java Events. 9.3 Distributed Components. 9.4 Transaction Processing. 9.5 Further Reading. 9.6 Exercises. 10 Component Technologies. 10.1 CORBA. 10.2 System Object Model. 10.3 Microsoft’s COM/DCOM. 10.4 JavaBeans. 10.5 Further Reading. 10.6 Exercises. 11 Component-Based Software Engineering. 11.1 Defining CBSE. 11.2 Problems with CBSE. 11.3 Problems in Using Components. 11.4 Problems with Glue Code. 11.5 Exercises. III SOFTWARE ARCHITECTURES. 12 Overview of Software Architectures. 12.1 Software Architecture Elements and Description. 12.2 Why Do We Need a Software Architecture? 12.3 Software Architecting Versus Software Engineering. 12.4 Domain-Specific Software Architectures. 12.5 Roles and Benefits. 12.6 Software Architecture Models. 12.7 What To Look For. 12.8 Further Reading. 12.9 Exercises. 13 Data Flow Systems. 13.1 The Data Flow Model. 13.2 Batch Sequential Systems. 13.3 Pipe and Filter Architecture. 13.4 Further Reading. 13.5 Exercises. 14 Call-and-Return Systems. 14.1 Main Program and Subroutines. 14.2 Client–Server Systems. 14.3 Object-Oriented Systems. 14.4 Hierarchically Layered Systems. 14.5 Further Reading. 14.6 Exercises. 15 Virtual Machines. 15.1 Interpreters. 15.2 Virtual Machine Examples. 15.3 Rule-Based Systems. 15.4 Advantages and Disadvantages. 15.5 Further Reading. 15.6 Exercises. 16 Independent Component Systems. 16.1 Communicating Sequential Processes. 16.2 Event-Based Systems. 16.3 Event System Issues. 16.4 Broker Systems. 16.5 Further Reading. 16.6 Exercises. 17 Data-Centric Systems. 17.1 Database Systems. 17.2 Blackboard Systems. 17.3 The Linda Model and Language. 17.4 Further Reading. 17.5 Exercises. 18 Concurrent Software Architectures. 18.1 Basic Concepts. 18.2 Parallel Programming. 18.3 Data Parallel Systems. 18.4 Message Passing Systems. 18.5 A Parallel Programming Methodology. 18.6 Further Reading. 18.7 Exercises. 19 Software Architecture Challenges. 19.1 Software Architecture Description. 19.2 Design Issues. 19.3 Analysis of Software Architectures. 19.4 Further Reading. 19.5 Exercises. IV FRAMEWORKS. 20 Framework Concepts. 20.1 Types of Frameworks. 20.2 Framework Elements. 20.3 Using Frameworks. 20.4 Documenting Frameworks. 20.5 Designing Frameworks. 20.6 Problems with Frameworks. 20.7 Framework Domains. 20.8 Further Reading. 20.9 Exercises. 21 GUI Frameworks. 21.1 Smalltalk-80 Programming Environment. 21.2 MacApp Framework. 21.3 The Taligent Framework. 21.4 Other Frameworks. 21.5 Further Reading. 21.6 Exercises. 22 Development Frameworks. 22.1 Java as a Framework. 22.2 Microsoft’s .NET Framework. 22.3 IBM’s San Francisco Project. 22.4 POOMA. 22.5 Further Reading. 22.6 Exercises. 23 Challenges in Frameworks. 23.1 Developing Frameworks. 23.2 Application Development Using a Framework. 23.3 Testing Frameworks. 23.4 Issues in Framework Usage. 23.5 Exercises. BIBLIOGRAPHY. GLOSSARY. INDEX.
£128.66
John Wiley & Sons Inc Java in Distributed Systems
Book SynopsisLarge and complex software systems, such as Internet applications, depend on distributed applications. Although Java has helped reduce the complexity of distributed systems, developers still have to contend with diverse hardware platforms, remote communication over networks, and system failures. Java in Distributed Systems provides a comprehensive guide for anyone wishing to deepen their knowledge of Java in distributed applications. Beginning with a tutorial guide to distributed programming in the Java environment, it shows you how building blocks from threads to Jini can help you to fulfil Sun''s vision, that ''the Network is the Computer''. It then goes on to focus on aspects that are still challenging researchers such as concurrency, distribution, and persistence. Key Features: - One of the few books to focus specifically on Java for building distributed applications - Coverage includes threads & sockets, RMI, CORBA, Voyager, Mobile agents, JDBC, objTrade Review"...has a nice layout and reads well..." (CVu, June 2006)Table of ContentsPreface. Introduction. JAVA IN DISTRIBUTED SYSTEMS. Concurrency in Java. Java Sockets. RMI. CORBA. Voyager. Mobile Agents. JDBC. Object-Oriented Databases. A Persistent Programming Language. Tuplespaces in Java. Jini. A DISTRIBUTED JAVA. Distributed Programming Languages and Concurrency. Virtual Processors. Dejay: A Distributed Java. Examples. Appendix A: The Chat Interface. Appendix B: The BulletinBoard Interface. List of Figures. Bibliography. Index.
£56.00
John Wiley & Sons Inc Techniques of PROLOG Programming with
Book SynopsisApproaches the subject by applying the format used in successful language courses. Offers a comprehensive exhibition of Prolog programming techniques in four stages--declarative, procedural, advanced and meta-programming. Presents simple and efficient implementation of logical negation and quantified goals which are necessary in expert systems.Trade Review"This book has the possibility of being The Prolog Reference Book I would recommend the book for all the high quality examples alone. " Roy Freedman, Inductive Solutions, Inc. "This is the strongest book (in Prolog programming) on the market, by virtue of its coverage. The author hits a lot of the tried and true stuff in Prolog as well as some new departures. " Kevin Reilly, University of Alabama at Birmingham "The writing style is very clear and the explanations are logically presented. Students with no background in Prolog should be able to read the first two-thirds of this book and understand all of it. " Clint Smullen, University of Tennessee "The overall balance of the work is reasonable and appropriate. The organization is good, the examples and problems are excellent I believe it will be an excellent book for Prolog and AI courses. " Quang van Tran, Oklahoma State University "There seems to be hardly any programming problem which is not dealt with in one place or another. This should enable a very rich range of courses to be developed around the book. " Christopher Hogger, Imperial College, LondonTable of ContentsDeclarative Prolog Programming. Procedural Prolog Programming. Control and Side-Effect Features of Prolog. Development of Prolog Programs. Advanced Programming Techniques and Data Structures. Search Techniques. Meta-Programming in Prolog. Building Expert Systems in Prolog. Natural Language Processing in Prolog. System Simulation in Prolog. Appendices. Bibliography. Index.
£136.80
John Wiley & Sons Inc C for Programmers
Book SynopsisOne of the attractive aspects of C++ is that it offers good facilities for object-oriented programming (OOP), but, as a hybrid language, it also supports procedural programming. The significance of this for programmers is that it offers more flexibility allowing them to shift to object-oriented programming if and when they feel the need to do so. In this regard, C++ differs from some purely object-oriented languages, such as Smalltalk, Eiffel and Java. This book offers practical guidance on how to programme in both styles. The C++ language and its standard library have gone through a good many improvements and extensions during their evolution. This third edition has therefore been completely revised in accordance with the C++ language revision, which is embodied in the ANSI/ISO C++ Standard. For example, the new, important type string is used throughout the book and the Standard Template Library (STL) is introduced to readers at an early stage and discussed in more dTable of ContentsExpressions and Statements. More Operators. Functions and Program Structure. Arrays, Pointers, and Strings. Classes and Objects. Templates. Exception Handling. Introduction to STL. Stream I/O. Some Older Library Functions. Appendices. Bibliography. Index.
£56.00
John Wiley & Sons Inc Concurrent and Realtime Systems
Book SynopsisThe CSP approach has been widely used in the specification, analysis and verification of concurrent and real-time systems, and for understanding the particular issues that can arise when concurrency is present. It provides a language which enables specifications and designs to be clearly expressed and understood, together with a supporting theory which allows them to be analyzed and shown to be correct. This book supports advanced level courses on concurrency covering timed and untimed CSP. The first half introduces the language of CSP, the primary semantic models (traces, failures, divergences and infinite traces), and their use in the modelling, analysis and verification of concurrent systems. The second half of the book introduces time into the language, brings in the timed semantic model (timed failures) and finally presents the theory of timewise refinement which links the two halves together. Accompanying website: http://www.cs.rhbnc.ac.uk/books/concurreTable of ContentsPreface ix Acknowledgements xv Part 1 The language of CSP 1 Sequential processes 3 1.1 Events and processes 3 1.2 Performing events 8 1.3 Recursion 13 1.4 Choice 20 2 Concurrency 31 2.1 Alphabetized parallel 31 2.2 Interleaving 44 2.3 Interface parallel 50 3 Abstraction and control flow 55 3.1 Hiding 55 3.2 Event renaming 62 3.3 Sequential composition 69 3.4 Interrupt 72 3.5 Notes 74 Part II Analysing processes 4 Traces 87 4.1 Sequences 87 4.2 Trace semantics 91 4.3 Recursion 117 4.4 Testing 133 4.5 Congruence 136 5 Specification and verification with traces 141 5.1 Property-oriented Specification 141 5.2 Verification 143 5.3 Recursion induction 155 5.4 Case study: Distributed sum 160 5.5 Process-oriented specification 168 6 Stable failures 173 6.1 Observing processes 174 6.2 Process semantics 178 6.3 Recursion 188 7 Specification and verification with failures 195 7.1 Property-oriented specification 195 7.2 Verification 197 7.3 Recursion induction 206 7.4 Process-oriented specification 209 7.5 Case study: Distributed sum 212 8 Failures, divergences, and infinite traces 221 8.1 Observing processes 221 8.2 Process semantics 229 8.3 Recursion 242 8.4 Specification and verification 248 8.5 Recursion induction 253 8.6 Case study: Distributed sum 256 8.7 Must testing and FDI equivalence 257 8.8 Notes 258 Part III Introducing time 9 The timed language 267 9.1 Timed computational model 268 9.2 Transitions 269 9.3 Performing events 270 9.4 Choice 275 9.5 Recursion 286 9.6 Concurrency 290 9.7 Abstraction 297 9.8 Flow of control 304 10 Timed transition systems 313 10.1 Evolution 313 10.2 Executions 315 10.3 Well-timed processes 327 10.4 Notes 329 Part IV Timed analysis 11 Semantics of timed CSP 335 11.1 Timed observations 336 11.2 Timed failures semantics 347 11.3 Recursion 358 11.4 Testing and timed failures equivalence 363 12 Timed specification and verification 369 12.1 Specification 369 12.2 Verification 375 12.3 Recursion induction 385 12.4 Ill-timed processes 388 12.5 Case study: Fischer’s protocol 390 13 Timewise refinement 399 13.1 Trace timewise refinement 400 13.2 Failures timewise refinement 410 13.3 Refinement and parallel composition 413 13.4 Case study: a railway crossing 431 13.5 FDI timewise refinement 436 13.6 Testing and timewise refinement 439 13.7 Notes 442 Appendix A: Event-based time 447 A.1 Standard CSP and took 448 A.2 Translating from timed CSP 454 A.3 Notes 465 Appendix B: Model-checking with FDR 469 B.1 Interacting with FDR 470 B.2 How FDR checks refinement 473 B.3 Machine readable CSP 478 References 485 Notation 493 Index 498 Index of Processes 507
£56.00
John Wiley & Sons Inc ComponentOriented Programming
Book SynopsisComponent Oriented Programming offers a unique programming-centered approach to component-based software development that delivers the well-developed training and practices you need to successfully apply this cost-effective method. Following an overview of basic theories and methodologies, the authors provide a unified component infrastructure for building component software using JavaBeans, EJB, OSGi, CORBA, CCM, .NET, and Web services. You''ll learn how to develop reusable software components; build a software system of pre-built software components; design and implement a component-based software system using various component-based approaches. Clear organization and self-testing features make Component Oriented Programming an ideal textbook for graduate and undergraduate courses in computer science, software engineering, or information technology as well as a valuable reference for industry professionals.Trade Review"…a hands-on, experimental approach to component-oriented programming." (Computing Reviews.com, February 27, 2006)Table of ContentsPreface. 1. Introduction. 1.1 What is COP? 1.2 Why is COP important? 1.3 What is a component? 1.4 Hardware components and software components. 1.5 From OOP to COP. 1.6 Component-based software engineering. 1.7 Summary. 1.8 Self-review questions. 1.9 Exercises. 2. A Theory of Components. 2.1 Principles of COP. 2.2 Infrastructures of COP. 2.3 Component models. 2.4 Connection models. 2.5 Deployment models. 2.6 Unifying component technologies. 2.7 Summary. 2.8 Self-review questions. 2.9 Exercises. 3. COP with JavaBeans. 3.1 Overview of JavaBeans technology. 3.2 The component model of JavaBeans. 3.3 The connection model of JavaBeans. 3.4 The deployment model of JavaBeans. 3.5 Examples and lab practice. 3.6 Summary. 3.7 Self-review questions. 3.8 Exercises. 4. Enterprise JavaBeans Components. 4.1 The EJB a rchitecture. 4.2 The component model of EJB. 4.3 The connection model of EJB. 4.4 The deployment model of EJB. 4.5 Examples and lab practice. 4.6 Summary. 4.7 Self-review questions. 4.8 Exercises. 4.9 Programming exercises. 5. CORBA Components. 5.1 The COBRA component infrastructure. 5.2 The CORBA component model (CCM). 5.3 The connection model of CORBA and CCM. 5.4 The deployment model of CORBA and CCM. 5.5 Examples and lab practice. 5.6 Summary. 5.7 Self-review questions. 5.8 Exercises. 5.9 Programming exercises. 6. .NET Components. 6.1 The .NET framework. 6.2 The component model of .NET. 6.3 The connection model of .NET. 6.4 .NET component deployments. 6.5 Visual Studio .NET. 6.6 Examples and lab practice. 6.7 Summary. 6.8 Self-review questions. 6.9 Exercises. 6.10 Programming exercises. 7. COP with OSGi Components. 7.1 Overview of OSGi technology. 7.2 The component model of OSGi. 7.3 The connection model of OSGi. 7.4 The deployment model of OSGi. 7.5 Examples and lab practice. 7.6 Summary. 7.7 Self-review questions. 7.8 Exercises. 8. Web Services Components. 8.1 The Web Services framework. 8.2 The component model of Web Services. 8.3 The connection model of Web Services. 8.4 Web Services component deployment. 8.5 Examples and lab practice. 8.6 Summary. 8.7 Self-review questions. 8.8 Exercises. 8.9 Programming exercises. Appendix.
£109.76
John Wiley & Sons Inc IEEE Computer Society RealWorld Software
Book SynopsisKey problems for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program IEEE Computer Society Real-World Software Engineering Problems helps prepare software engineering professionals for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program. 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:Trade Review"…this book provides a valuable resource to help software professionals prepare for the CSDP exam, as well as a study aid for software engineering students in general." (Computing Reviews.com, November 8, 2006)Table of ContentsPreface: How was this book developed? What is the Computer Society's Software Development Professional Exam? What are the target audiences? How is this book structured? How are problems and their answers structured? How to use this book. A.Engineering Economics. B.Ethics. C.Professional Practice. D.Standards. A.Requirements. B.Software Design. C.Coding. D.Test. E.Maintenance. F.Software COnfiguration. G.QA. H.Metrics. I.Tools and Methods. J.SQA and V&V.
£73.76
John Wiley & Sons Inc Modern Multithreading Implementing Testing and
Book SynopsisMaster the essentials of concurrent programming,including testing and debugging This textbook examines languages and libraries for multithreaded programming. Readers learn how to create threads in Java and C++, and develop essential concurrent programming and problem-solving skills.Trade Review"…an excellent work on concurrent programming, examining languages and libraries for developing multithreaded programs." (CHOICE, April 2006)Table of ContentsPreface. 1 Introduction to Concurrent Programming. 1.1 Processes and Threads: An Operating System’s View. 1.2 Advantages of Multithreading. 1.3 Threads in Java. 1.4 Threads in Win32. 1.5 Pthreads. 1.6 C++ Thread Class. 1.7 Thread Communication. 1.8 Testing and Debugging Multithreaded Programs. 1.9 Thread Synchronization. Further Reading. References. Exercises. 2 The Critical Section Problem. 2.1 Software Solutions to the Two-Thread Critical Section Problem. 2.2 Ticket-Based Solutions to the n-Thread Critical Section Problem. 2.3 Hardware Solutions to the n-Thread Critical Section Problem. 2.4 Deadlock, Livelock, and Starvation. 2.5 Tracing and Replay for Shared Variables. 2.5.6 Note on Shared Memory Consistency. Further Reading. References. Exercises. 3 Semaphores and Locks. 3.1 Counting Semaphores. 3.2 Using Semaphores. 3.3 Binary Semaphores and Locks. 3.4 Implementing Semaphores. 3.5 Semaphore-Based Solutions to Concurrent Programming Problems. 3.6 Semaphores and Locks in Java. 3.7 Semaphores and Locks in Win32. 3.7.6 Example: C++/Win32 Bounded Buffer. 3.8 Semaphores and Locks in Pthreads. 3.9 Another Note on Shared Memory Consistency. 3.10 Tracing, Testing, and Replay for Semaphores and Locks. Further Reading. References. Exercises. 4 Monitors. 4.1 Definition of Monitors. 4.2 Monitor-Based Solutions to Concurrent Programming Problems. 4.3 Monitors in Java. 4.4 Monitors in Pthreads. 4.5 Signaling Disciplines. 4.6 Using Semaphores to Implement Monitors. 4.7 Monitor Toolbox for Java. 4.8 Monitor Toolbox for Win32/C++/Pthreads. 4.9 Nested Monitor Calls. 4.10 Tracing and Replay for Monitors. 4.11 Testing Monitor-Based Programs. Further Reading. References. Exercises. 5 Message Passing. 5.1 Channel Objects. 5.2 Rendezvous. 5.3 Selective Wait. 5.4 Message-Based Solutions to Concurrent Programming Problems. 5.5 Tracing, Testing, and Replay for Message-Passing Programs. Further Reading. References. Exercises. 6 Message Passing in Distributed Programs. 6.1 TCP Sockets. 6.3 Timestamps and Event Ordering. 6.4 Message-Based Solutions to Distributed Programming Problems. 6.5 Testing and Debugging Distributed Programs. Programs. Further Reading. References. Exercises. 7 Testing and Debugging Concurrent Programs. 7.1 Synchronization Sequences of Concurrent Programs. 7.2 Paths of Concurrent Programs. 7.3 Definitions of Correctness and Faults for Concurrent Programs. 7.4 Approaches to Testing Concurrent Programs. 7.5 Reachability Testing. Further Reading. References. Exercises. Index.
£89.06
John Wiley & Sons Inc PL I Structured Programming
Book SynopsisA complete course in the PL/I programming language, presented in a simple and logical manner with many features to help the reader grasp the material quickly: checkpoint questions interspersed throughout each chapter; a detailed index to help locate references to technical points and answers to questions; a glossary of terms, and more.Table of ContentsIntroduction to PL/I. Top-Down Structured Programming. Data Types and Data Manipulation. Subroutines and Functions. Logical Testing. DOs and Arrays. File Declarations and Stream I/O. Record I/O, Structures, Pictures. Storage Classes and List Processing. File Processing. Appendixes. Index.
£149.35
John Wiley & Sons Inc Java Collections An Introduction to Abstract Data
Book SynopsisConcentrates on the in-built collection classes in Java 2, enabling more emphasis on software design and less on theory. This book gives programmers the ability to choose the best collection classes for each application. The authors explore abstract data types (ADTs) that turn up again and again in software design.Trade Review"A lovely book.... I will use this book a lot in the next few months on a Java project I'm just starting." (CVu, December 2001)Table of ContentsIntroduction 1 Part I: Ready, Set, Go with VMware Infrastructure 3 9 Chapter 1: Exploring VMware Infrastructure 3 as Your Virtual Solution 11 Chapter 2: Getting the Scoop on Capacity Planning 23 Chapter 3: Knowing Your Storage Options 39 Part II: Setting Up ESX Hosts 55 Chapter 4: ESX: The Brawn Behind the Brains 57 Chapter 5: ESX Installation — Now the Fun Begins 67 Part III: Connecting the Physical to Your Virtual Environment 81 Chapter 6: Embracing the Look and Feel of VMware Infrastructure Client 83 Chapter 7: Virtual Networking 95 Chapter 8: Connecting to Storage 119 Part IV: Fault Tolerance and Data Centers 137 Chapter 9: Getting VMware Virtual Center Running 139 Chapter 10: Making Virtual Machines 161 Chapter 11: Managing Virtual Machines 175 Chapter 12: Keeping Things Running with Virtual Clusters 193 Part V: Playing Virtual Adminstrator 209 Chapter 13: Securing Your System 211 Chapter 14: Swimming in Resource Pools 229 Chapter 15: Monitoring Your System 243 Chapter 16: Preparing for Disaster 259 Chapter 17: Troubleshooting 271 Part VI: The Part of Tens 281 Chapter 18: Ten Places to Discover More 283 Chapter 19: Ten Other VMware Products 295 Chapter 20: Ten Cool Virtual Appliances 307 Index 319
£51.29
John Wiley & Sons Inc Z
Book SynopsisOffers a thorough and comprehensive tutorial introduction to Z. Uses standard notation with practical exercises and clear descriptions and explanations. Contains information on how to relate Z specifications to actual program code and is enhanced to reflect the most current language standards.Table of ContentsTUTORIAL. First-Order Logic. Set Theory. Internal Telephone Directory. More About Relations and Schemas. Functions. Sequences. Bags. Free Types. METHODS OF REASONING. Formal Proof. Rigorous Proof. Immanent Reasoning. Reification and Decomposition. Floyd-Hoare Logic. Getting to Program Code. CASE STUDIES. Two Small Case Studies. Wing's Library Problem. Partial Specification of a Text-Editor. SPECIFICATION ANIMATION. Animation Using Miranda. REFERENCE MANUAL. Methods of Definition. Formal Definitions. Rules and Obligations. Appendices. Bibliography. Index.
£56.00
John Wiley & Sons Inc Practical Risk Assessment for Project Management
Book SynopsisThis handbook presents simple techniques for the analysis and management of risk and uncertainty. Primarily for those in IT but of relevance to any project-based business, the text assumes no more than a basic knowlege of Lotus 123 or Excel.Table of ContentsProject Risk Assessment. Modelling and Simulation. Cost Risk. Schedule Risk. Business Forecast Risk. Alternative Techniques and Tools. References. Index.
£56.00
John Wiley & Sons Inc Programming in Fortran 90
Book SynopsisFortran 90 is the most radical revision ever of this popular language, bringing it up to date with current thinking in programming language development. This is the first book aimed directly at problem solving for Engineers and Scientists using the new features of Fortran 90.Table of ContentsGetting Going: Names, TYPEs, Simple Input/Output and ProgramStructure. Simple Arithmetic. Simple Intrinsic Procedures. Repetition. Conditions. More on Input/Output: CHARACTERs and FORMAT Specifications. Arrays. Yet More on Input/Output: FILEs. Subprograms: FUNCTIONs and SUBROUTINEs. Additional Language Features. Libraries of External SUBROUTINEs. Case Studies. Appendices. Index.
£70.06
John Wiley & Sons Inc Algorithms and Data Structures in C
Book SynopsisThe aim of this work is to give breadth and depth to the C++ programmer's existing experience of the language. It presents a large number of algorithms, each of them implemented as ready-to-run (and standalone) programs.Table of ContentsSome Aspects of Programming in C++. Arithmetic. Sorting Arrays and Files. Stacks, Queues and Lists. Searching and String Processing. Binary Trees. B-trees. Tries, Priority Queues and File Compression. Graphs. Some Combinatorial Algorithms. Fundamentals of Interpreters and Compilers. Appendix. Bibliography. Index.
£56.00
John Wiley & Sons Inc STL for C Programmers
Book SynopsisIt is the first book that I have read that makes STL quickly usable by working programmers Francis Glassborow, Chair of The Association of C & C++ Users (ACCU) STL for C++ programmers Leen Ammeraal The Standard Template Library (STL) provides many useful and generally applicable programming tools. This book combines reference material and a well-paced tutorial to get you past the basics quickly. Small, complete programs illustrate the key STL features such as containers, algorithms, iterators and function objects. A section is devoted to the new string data type. All STL algorithms are formally presented by their prototypes and then informally described to show how to use them in practice. Concepts are well illustrated with a large number of example programs all of which are available via ftp (for access details please refer to the preface of the book or Wiley''s website). Finally, special examples are given to explain the advanced notions of function objects and function adaptors, incTable of ContentsSTL for Beginners. More Algorithms and Containers. Sequence Containers. Associative Containers. Container Adaptors. Function Objects and Adaptors. Generic Algorithms. An Application: Very Large Numbers. Bibliography. Index.
£56.00
John Wiley & Sons Inc Requirements Engineering
Book SynopsisRequirements Engineering Processes and Techniques Why this book was written The value of introducing requirements engineering to trainee software engineers is to equip them for the real world of software and systems development.Table of ContentsTHE REQUIREMENTS ENGINEERING PROCESS. Requirements Engineering Processes. Requirements Elicitation and Analysis. Requirements Validation. Requirements Management. REQUIREMENTS ENGINEERING TECHNIQUES. Methods for Requirements Engineering. Viewpoint-Oriented Requirements Methods. Non-functional Requirements. Interactive System Specification. Case Study. Index.
£58.85
Harvard University Press Feminist in a Software Lab
Book SynopsisTara McPherson asks what might it mean to designfrom conceptiondigital tools and applications that emerge from contextual concerns of cultural theory and from a feminist concern for difference. This question leads to the Vectors Lab, which for a dozen years has experimented with digital scholarship at the intersection of theory and praxis.Trade ReviewTara McPherson’s digital work is a model of intelligent design in a crazed world; her projects are bold and innovative. This is a fascinating account of the emancipatory drive she invests into those projects and an even bolder look at the genealogy of computing from the 1960s. She seeks to link the abstract universe of software design with ongoing ideologies of race and gender, and suggests even the algorithm is not immune from its cultural context. A must-read in every way. -- Daniel Herwitz, University of MichiganA beautifully nuanced and wide-ranging elaboration of the creative energy and possibilities that reverberate from the messy entanglements of the humanities, computational technologies, digital aesthetics, cultural histories, and feminist theory. McPherson does what few can: she moves into the messiness, not to settle the matter, but rather to expand our thinking about how to understand what matters. There is no one better at navigating the span between critical modes of theoretical inquiry and the creative cultural production of digital tools. -- Anne Balsamo, The New SchoolTara McPherson has been at the heart of the digital humanities for the last decade as a much-admired critical scholar and tool-maker. This book is a letter from the trenches of that discipline as well as an impassioned and sophisticated argument for why digital humanists must concern themselves with both praxis and theory. This book radicalizes the digital humanities, persuasively arguing for the centrality of difference in parts of the field that ignore it. Richly illustrated with digital scholarly projects on race, gender, and social justice that her lab helped to build, as well as a retelling of the history of code and computing using a feminist lens, this book is deeply generous and generative. -- Lisa Nakamura, University of Michigan
£32.26
Princeton University Press Coding Freedom
Book SynopsisExploring the rise and political significance of the free and open source software (F/OSS) movement in the US and Europe, this title details the ethics behind hackers' devotion to F/OSS, the social codes that guide its production, and the political struggles through which hackers question the scope and direction of copyright and patent law.Trade ReviewOne of Choice's Outstanding Academic Titles for 2013 "Coding Freedom is insightful and fascinating, a superbly observed picture of the motives, divisions and history of the free software and software freedom world."--Cory Doctorow, BoingBoing "Anyone who thinks about programmers, open source, online communities, or the politics of intellectual property should have a copy of Coding Freedom on the shelf. It is an invaluable portrait of how free-software coders work, individually and collectively."--James Grimmelmann, Jotwell "The hacker ethic may be peculiar to outsiders. But it stems from a deep commitment to justice, fairness, and freedom. Anthropologist Gabriella Coleman describes in her phenomenal book Coding Freedom how hacker ethic gets encoded into both technical and political practice."--Danah Boyd, Wired "Though occasionally she uses academic jargon, her book is an intriguing read and connects the dots... Reading this book will help you to understand the conflict, as well as hacker culture."--David Hutchinson, io9.com "[S]triking and important... Coleman has captured a great deal of the essential spirit of the free- and open-software movement... I strongly suggest that you buy a copy of the book."--John Gilbey, Times Higher Education "[I]t is well-written and the analyses really get to the heart of some deeply ethical questions about individual, group and political relationships in voluntary groups which are rarely considered in such detail."--John R. Hudson, Briefing Bradford "This work by Coleman is at once history, ethnography, cultural criticism, and storytelling... Once can read the book as a narrative of the free software and open source movements, or as a sympathetic description of the behavior norms of hackers... Some readers will likely not consider hackers' aesthetic appreciation of good or clever coding as beauty, nor hackers' humor as funny, but these are Coleman's courageous attempts to provide a rounded depiction of this subculture. This book seems likely to be one of the defining works of cultural anthropology."--Choice "Coding Freedom is a persuasive piece of writing that tackles some of the questions central to the current political climate."--Sebastian Kubitschko, Culture Machine "Coding Freedom is an important analysis of F/OSS that offers deep ethnographic detail and creates a complex appreciation of this phenomenon. Coleman is also able to take this rich detail and extend it into the ethics and politics of F/OSS, connecting internal community principles to wider political effects, of which she provides a unique analysis. This book is compulsory reading for anyone interested in the cultural and social meaning of F/OSS and will powerfully repay anyone interested in the nature of ethics and society in the 21st century."--Tim Jordan, American Journal of SociologyTable of ContentsAcknowledgments ix Introduction - A Tale of Two Worlds 1 PART I - HISTORIES Chapter 1: The Life of a Free Software Hacker 25 Chapter 2: A Tale of Two Legal Regimes 61 PART II - CODES OF VALUE Chapter 3: The Craft and Craftiness of Hacking 93 Chapter 4:Two Ethical Moments in Debian 123 PART III - THE POLITICS OF AVOWAL AND DISAVOWAL Chapter 5: Code Is Speech 161 Conclusion: The Cultural Critique of Intellectual Property Law 185 Epilogue: How to Proliferate Distinctions, Not Destroy Them 207 Notes 211 References 225 Index 249
£27.00
Princeton University Press Statistical and Thermal Physics
Book Synopsis
£71.40
John Wiley & Sons Inc VisualBASIC .Net for Dummies
Book SynopsisWould you like to write Windows programs but don't know where to start? Visual Basic. NET, the latest distribution of Microsoft's programming language was designed to let anybody-even people with no prior programming experience-create sophisticated programs with stunning user interfaces, quickly and easily.Table of ContentsIntroduction 1 Part I: Creating a Visual Basic .NET Program 7 Chapter 1: How Visual Basic .NET Works 9 Chapter 2: Using the Visual Basic .NET User Interface 15 Chapter 3: Designing Your First User Interface 25 Chapter 4: Writing BASIC Code 35 Part II: Creating User Interfaces 49 Chapter 5: User Interface Design 101 51 Chapter 6: Designing Forms 73 Chapter 7: Boxes and Buttons for Making Choices 87 Chapter 8: Text Boxes and Labels for Typing and Showing Words 95 Chapter 9: Showing Choices with List and Combo Boxes 105 Chapter 10: Fine-Tuning the Appearance of Your User Interface 115 Part III: Making Menus 121 Chapter 11: Creating and Editing Pull-Down Menus 123 Chapter 12: Submenus, Growing Menus, and Pop-Up Menus 137 Chapter 13: Showing Dialog Boxes 147 Part IV: The Basics of Writing Code 165 Chapter 14: Writing Event-Handling Procedures 167 Chapter 15: Using Variables 181 Chapter 16: Getting Data from the User 195 Chapter 17: Math 101: Arithmetic, Logical, and Comparison Operators 203 Chapter 18: Strings and Things 219 Chapter 19: Defining Constants and Using Comments 233 Chapter 20: Storing Stuff in Data Structures 245 Chapter 21: Killing Bugs 257 Part V: Making Decisions and Getting Loopy 269 Chapter 22: Making Decisions with If-Then Statements 271 Chapter 23: The Select Case Statement 281 Chapter 24: Repeating Yourself with Loops 287 Chapter 25: For-Next Loops That Can Count 295 Chapter 26: Nested Loops and Quick Exits 301 Part VI: Writing Subprograms (So You Don’t Go Crazy All at Once) 305 Chapter 27: General Procedures (Subprograms That Everyone Can Share) 307 Chapter 28: Passing Arguments 317 Chapter 29: Function, a Unique Type of Subprogram 325 Part VII: Understanding Object-Oriented Programming 335 Chapter 30: What the Heck Is Object-Oriented Programming? 337 Chapter 31: Getting Some Class with Object-Oriented Programming 345 Chapter 32: Using Inheritance and Overloading 355 Part VIII: The Part of Tens 365 Chapter 33: Ten Visual Basic .NET Topics That Didn’t Fit Anywhere Else 367 Chapter 34: (Almost) Ten Tips for Using the Visual Basic .NET User Interface 375 Index 379
£24.79
John Wiley & Sons Inc XML AllinOne Desk Reference For Dummies
Book Synopsis* The complete solution! This revolution in product design incorporates 6 books in 1 straightforward desk reference. Provides in depth coverage of the many features and specifications of XML, the data interchange standard of choice. * XML All in One For Dummies is a true desk reference designed to guide readers through the features and specifications of the leading edge XML dialects and help them develop their own custom Web applications all under one cover. * Covers XML basics, using DTD''s with XML, XML namespaces, XML schemas, styling XML documents, XML''s linking languages, XML tools, using XML in the real world, and more. * The first two editions of XML For Dummies have sold more than 85,000 units. * According to Microsoft''s CEO Steve Ballmer XML will become the universal medium by which Web sites and users of Web sites communicate. * Written by NIIT a global training, IT consulting and software development organization. NIIT trains over 150,000 indiTable of ContentsIntroduction. Book I: Describing Data with XML. Chapter 1: Introducing XML. Chapter 2: Dissecting an XML Document. Chapter 3: Creating Well-Formed XML Documents. Chapter 4: Namespaces — Avoiding Naming Conflicts. Book II: Validating XML. Chapter 1: Validating XML Documents. Chapter 2: Creating Document Type Definitions. Chapter 3: Creating XML Schemas. Chapter 4: XML Schema Data Types. Chapter 5: Designing XML Schemas. Chapter 6: Validating Documents Using DTDs and XML Schemas. Chapter 7: Working with XML-Data Reduced. Book III: Presenting XML. Chapter 1: Styling XML with Stylesheets. Chapter 2: Cascading Style Sheets — Displaying XML in a Browser. Chapter 3: Printing XML Using XSL-FO. Book IV: Transforming XML. Chapter 1: XML’s Swiss Army Knife — XSLT. Chapter 2: Powered by Template Rules. Chapter 3: XPath — Scouting Out XML Data. Chapter 4: Adding Logic to Your XSLT. Chapter 5: Variables and Parameters. Chapter 6: The Output Side of XSLT. Book V: Working with the Rest of the X-Team. Chapter 1: XLink — Linking XML Documents. Chapter 2: XPointer — Pointing to Resources. Chapter 3: XForms — Processing Forms. Chapter 4: XHTML — Next-Generation HTML. Book VI: Processing XML. Chapter 1: Introduction to XML APIs. Chapter 2: Reading XML with SAX and XMLReader. Chapter 3: Understanding the XML DOM. Chapter 4: Processing XML Using the DOM. Book VII: XML Web Services. Chapter 1: Introduction to XML Web Services. Chapter 2: XML-RPC — Simple Distributed Computing. Chapter 3: SOAP — Accessing Web Services the Clean and Slippery Way. Chapter 4: WSDL — Telling the World about Your Web Services. Chapter 5: UDDI — Finding Web Services. Chapter 6: Voice and Wireless Services. Chapter 7: Web Services Security. Chapter 8: Implementing Web Services. Index.
£23.79
John Wiley & Sons Inc Effective Software Project Management
Book SynopsisWhy another book on software project management? For some time, the fields of project management, computer science, and software development have been growing rapidly and concurrently.Table of ContentsForeword. Introduction. Part One: The Evolving State of ESPM. Chapter 1: The Changing Landscape of Software Development. Chapter 2: SDPM Roadmap. Part Two: Linear ESPM. Chapter 3: Linear SDPM Strategy. Chapter 4: The Linear SDPM Scoping Phase. Chapter 5: The Linear SDPM Planning Phase. Chapter 6: The Linear SDPM Launching Phase. Chapter 7: The Linear SDPM Monitoring and Controlling Phase. Chapter 8: The Linear SDPM Closing Phase. Chapter 9: The Linear SDPM Strategy Summary. Part Three: Incremental ESPM. Chapter 10: Incremental SDPM Strategy. Chapter 11: The Incremental SDPM Scoping Phase. Chapter 12: The Incremental SDPM Planning Phase. Chapter 13: The Incremental SDPM Launching Phase. Chapter 14: The Incremental SDPM Monitoring and Controlling Phase. Chapter 15: The Incremental SDPM Closing Phase. Chapter 16: The Incremental SDPM Strategy Summary. Part Four: Iterative ESPM. Chapter 17: Iterative SDPM Strategy. Chapter 18: The Iterative SDPM Scoping Phase. Chapter 19: The Iterative SDPM Planning Phase. Chapter 20: The Iterative SDPM Launching Phase. Chapter 21: The Iterative SDPM Monitoring and Controlling Phase. Chapter 22: The Iterative SDPM Closing Phase. Chapter 23: The Iterative SDPM Strategy Summary. Part Five: Adaptive ESPM. Chapter 24: Adaptive SDPM Strategy. Chapter 25: The Adaptive SDPM Scoping Phase. Chapter 26: The Adaptive SDPM Planning Phase. Chapter 27: The Adaptive SDPM Launching Phase. Chapter 28: The Adaptive SDPM Monitoring and Controlling Phase. Chapter 29: The Adaptive SDPM Closing Phase. Chapter 30: The Adaptive SDPM Strategy Summary. Part Six: Extreme ESPM. Chapter 31: Extreme SDPM Strategy. Chapter 32: The Extreme SDPM Scoping Phase. Chapter 33: The Extreme SDPM Planning Phase. Chapter 34: The Extreme SDPM Launching Phase. Chapter 35: The Extreme SDPM Monitoring and Controlling Phase. Chapter 36: The Extreme SDPM Closing Phase. Chapter 37: The Extreme SDPM Strategy Summary. Part Seven: In Summary. Chapter 38: Where Are You? Chapter 39: Where Do You Want To Go and How Can You Get There? Appendix A: What’s on the Web Site? Appendix B: Bibliography. Appendix C: The Project Overview Statement. Appendix D: Requirements Gathering. Appendix E: The Work Breakdown Structure. Appendix F: Estimation. Appendix G: The Project Network Diagram. Appendix H: The Resource Schedule. Appendix I :Organizing the Project Team. Appendix J: Project Performance Reporting. Appendix K: Business Process Flow Diagramming. Index.
£40.38
IEEE Computer Society Press,U.S. Microsoft Rising Other Tales Silicon Val
Book SynopsisTed Lewis delivers a first-hand account of the changing computer industry, a story of Microsoft and the Silicon Valley. Lewis maps the history of computing from 1990 to 2000, a tale of greed and emotion in the fastest growing, mainline industry of the world. In this compilation of columns from Computer, IEEE Internet Computing, and Scientific American, Lewis tries to predict and explain the chaos of Silicon Valley. This book reports the author''s personal history through the early 1990''s to the end of the decade. These stories often try to predict or explain the chaos of Silicon Valley. Lewis analyzes the high-technology industry and its constant change amid turmoil and upheaval. He also examines the art of software development and deals with innovation and the emergence of a techno-society. The book does not promise any answers, but rather concludes this short journey into the recent past with a number of provoking ideas about the future of hi-tech.
£66.56
I.E.E.E.Press Debugging and Performance Tuning for Parallel
Book Synopsis
£71.06
Wiley Unified Objects
Book Synopsis
£71.06
IEEE Computer Society Press,U.S. TclTk for Programmers
Book Synopsis
£84.56
O'Reilly Media Smaller C Lean Code for Small Machines
Book SynopsisFor makers looking to use the smallest controllers or wring the highest performance out of larger controllers, the C language is still the best option. This practical book provides a solid grounding in C basics for anyone who tinkers with programming microcontrollers.
£39.74
O'Reilly Media HandsOn Selenium WebDriver with Java
Book SynopsisIn this practical hands-on book, author Boni Garcia takes Java developers through Selenium's main features for automating web navigation, browser manipulation, web element interaction, and more, with ready-to-be-executed test examples.
£39.74
O'Reilly Media Programming C 10
Book SynopsisDesigned for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You'll get up to speed on .NET 6 and the latest C# 9.0 and 10.0 additions, including records and enhanced pattern matching.
£47.99
O'Reilly Media Learning Airtable
Book SynopsisWhether you're planning a new project, sharing data analysis within your organization, tracking a detailed initiative among stakeholders, or dealing with any other well-structured collaboration, this practical book shows you how to tackle these challenges with Airtable.
£47.99
John Wiley & Sons Inc Programming Language Foundations
Book SynopsisProgramming Language Foundations is a concise text that covers a wide range of topics in the mathematical semantics of programming languages, for readers without prior advanced background in programming languages theory. The goal of the book is to provide rigorous but accessible coverage of essential topics in the theory of programming languages. Stump's Programming Language Foundations is intended primarily for a graduate-level course in programming languages theory which is standard in graduate-level CS curricula. It may also be used in undergraduate programming theory courses but ONLY where students have a strong mathematical preparation.Table of ContentsPreface 1 I Central Topics 7 1 Semantics of First-Order Arithmetic 9 1.1 Syntax of FO(Z) terms 10 1.2 Informal semantics of FO(Z) terms 10 1.3 Syntax of FO(Z) formulas 11 1.4 Some alternative logical languages for arithmetic 12 1.5 Informal semantics of FO(Z) formulas 13 1.6 Formal semantics of FO(Z) terms 14 1.6.1 Examples 17 1.7 Formal semantics of FO(Z) formulas 18 1.7.1 Examples 18 1.8 Compositionality 19 1.9 Validity and satisfiability 19 1.10 Interlude: proof by natural-number induction 20 1.11 Proof by structural induction 27 1.12 Conclusion 28 1.13 Basic exercises 29 1.14 Intermediate exercises 30 2 Denotational Semantics of WHILE 33 2.1 Syntax and informal semantics of WHILE 33 2.2 Beginning of the formal semantics for WHILE 34 2.3 Problem with the semantics of while-commands 35 2.4 Domains 37 2.5 Continuous functions 42 2.6 The least fixed-point theorem 46 2.7 Completing the formal semantics of commands 48 2.8 Connection to practice: static analysis using abstract interpretation 54 2.9 Conclusion 59 2.10 Basic exercises 60 2.11 Intermediate exercises 62 3 Axiomatic Semantics of WHILE 65 3.1 Denotational equivalence 66 3.2 Partial correctness assertions 68 3.3 Interlude: rules and derivations 71 3.4 Hoare Logic rules 76 3.5 Example derivations in Hoare Logic 82 3.6 Soundness of Hoare Logic and induction on the structure of derivations 87 3.7 Conclusion 92 3.8 Exercises 92 4 Operational Semantics of WHILE 95 4.1 Big-step semantics of WHILE 95 4.2 Small-step semantics of WHILE 97 4.3 Relating the two operational semantics 101 4.4 Conclusion 120 4.5 Basic exercises 120 4.6 Intermediate exercises 122 5 Untyped Lambda Calculus 125 5.1 Abstract syntax of untyped lambda calculus 125 5.2 Operational semantics: full b-reduction 127 5.3 Defining full b-reduction with contexts 132 5.4 Specifying other reduction orders with contexts 134 5.5 Big-step call-by-value operational semantics 137 5.6 Relating big-step and small-step operational semantics 138 5.7 Conclusion 142 5.8 Basic Exercises 143 5.9 Intermediate Exercises 147 5.10 More Challenging Exercises 147 6 Programming in Untyped Lambda Calculus 149 6.1 The Church encoding for datatypes 149 6.2 The Scott encoding for datatypes 156 6.3 Other datatypes: lists 158 6.4 Non-recursive operations on Scott-encoded data 158 6.5 Recursive equations and the fix operator 160 6.6 Another recursive example: multiplication 162 6.7 Conclusion 162 6.8 Basic exercises 163 6.9 Intermediate exercises 164 7 Simple Type Theory 167 7.1 Abstract syntax of simple type theory 167 7.2 Semantics of types 168 7.3 Type-assignment rules 169 7.4 Semantic soundness for type-assignment rules 169 7.5 Applying semantic soundness to prove normalization 171 7.6 Type preservation 173 7.7 The Curry-Howard isomorphism 176 7.8 Algorithmic typing 183 7.9 Algorithmic typing via constraint generation 186 7.10 Subtyping 190 7.11 Conclusion 199 7.12 Basic Exercises 200 7.13 Intermediate Exercises 202 II Extra Topics 205 8 Nondeterminism and Concurrency 207 8.1 Guarded commands 207 8.2 Operational semantics of guarded commands 208 8.3 Concurrent WHILE 215 8.4 Operational semantics of concurrent WHILE 216 8.5 Milner’s Calculus of Communicating Systems 219 8.6 Operational semantics of CCS 220 8.7 Conclusion 226 8.8 Basic exercises 226 8.9 Intermediate exercises 228 9 More on Untyped Lambda Calculus 231 9.1 Confluence of untyped lambda calculus 231 9.2 Combinators 259 9.3 Conclusion 266 9.4 Basic exercises 266 9.5 Intermediate exercises 267 10 Polymorphic Type Theory 269 10.1 Type-assignment version of System F 269 10.2 Annotated terms for System F 271 10.3 Semantics of annotated System F 272 10.4 Programming with Church-encoded data 274 10.5 Higher-kind polymorphism and System Fw 276 10.6 Conclusion 283 10.7 Exercises 283 11 Functional Programming 285 11.1 Call-by-value functional programming 286 11.2 Connection to practice: eager FP in OCaml 11.3 Lazy programming with call-by-name evaluation 300 11.4 Connection to practice: lazy FP in Haskell 304 11.5 Conclusion 310 11.6 Basic Exercises 310 11.7 Intermediate exercises 312 Mathematical Background 315 Bibliography 321 Index 325
£104.45
John Wiley & Sons Inc Beginning Perl
Book SynopsisEverything beginners need to start programming with Perl Perl is the ever-popular, flexible, open source programming language that has been called the programmers Swiss army knife. This book introduces Perl to both new programmers and experienced ones who are looking to learn a new language.Table of ContentsIntroduction xxiii Chapter 1: What is Perl? 1 Perl Today 2 Getting Perl 3 Working with Non-Windows Platforms: perlbrew 4 Using Windows 6 The Perl Community 8 IRC 8 PerlMonks 9 Perl Mongers 9 StackOverflow 9 Using perldoc 11 Understanding the Structure of perldoc 11 Getting Started with perldoc 11 Using Tutorials and FAQs 12 Using the perldoc -f function 14 Using a Terminal Window 14 Using the Command Line 15 Creating a Work Directory 16 Creating Hello, World! 18 Writing Your First Program 18 Shebang Lines 21 Summary 22 Chapter 2: Understanding the CPAN 25 CPAN and METACPAN 26 Finding and Evaluating Modules 27 Downloading and Installing 29 CPAN Clients 33 Using the CPAN.pm Client 33 Using the Cpanm Client 35 PPM 36 CPAN::Mini 36 Summary 39 Chapter 3: Variables 41 What is Programming? 42 A Few Things to Note Before Getting Started 43 strict, warnings, and diagnostics 43 The my Function 43 Sigils 44 Identifiers 45 Scalars 46 Strings 47 Numbers 51 Arrays 53 Breaking Down the Code 54 Accessing Elements 55 Iterating over Arrays 58 Hashes 58 Accessing Elements 59 Iterating Over Hashes 60 Adding Data to Hashes 60 Slices 61 Array Slices 62 Hash Slices 62 Context 63 Scalar Context 63 List Context 64 Scope 67 my Variables 67 Package Variables 69 Strict, Warnings, and Diagnostics 72 strict 74 warnings 74 diagnostics 75 Working Without a Net 76 Perl’s Built-in Variables 78 $_ 78 %ENV 79 @ARGV 79 Other Special Variables 80 Summary 81 Chapter 4: Working With Data 83 Using Scalars 84 Working with Strings 85 Using String Operators 94 Scalar::Util 97 Numeric Builtins 98 Bitwise Operators 103 Understanding Booleans 103 Assignment Operators 108 Precedence and Associativity 109 Array and List Functions 111 Built-in Array Functions 111 List::Util 116 Built-in Hash Functions 116 delete() 116 exists() 117 keys() 117 values() 117 each() 117 Scoping Keywords 119 my() 119 local() 119 our() 120 state() 120 Summary 121 Chapter 5: Control Flow 125 Using the if Statement 126 Understanding Basic Conditionals 126 else/elsif/unless 128 The Ternary Operator ?: 131 for/foreach loops 132 Arrays 132 Lists 135 C-Style 136 Using while/until Loops 142 Lists 143 last/next/redo/continue 144 Labels 146 Statement Modifiers 147 Types of Statement Modifiers 147 do while/do until 149 given/when 151 Basic Syntax 151 The Switch Module 153 Summary 154 Chapter 6: References 157 References 101 158 Array References 158 Hash References 159 Anonymous References 160 Other References 163 Working with References 166 Debugging 166 Copying 169 Slices 172 Summary 173 Chapter 7: Subroutines 175 Subroutine Syntax 176 Argument Handling 177 Multiple Arguments 178 Named Arguments 179 Aliasing 181 State Variables (Pre- and Post-5.10) 181 Passing a List, Hash, or Hashref? 184 Returning Data 186 Returning True/False 186 Returning Single and Multiple Values 188 wantarray 189 FAIL! 190 “Wake Up! Time to Die!” 191 carp and croak 192 eval 192 evalGotchas 194 Try::Tiny 195 Subroutine References 196 Existing Subroutines 196 Anonymous Subroutines 197 Closures 197 Prototypes 200 Argument Coercion 200 More Prototype Tricks 202 Mimicking Builtins 204 Forward Declarations 206 Prototype Summary 207 Recursion 209 Basic Recursion 209 Divide and Conquer 210 Memoization 211 Things to Watch For 215 Argument Aliasing 215 Scope Issues 216 Doing Too Much 216 Too Many Arguments 217 Summary 217 Chapter 8: Regular Expressions 219 Basic Matching 220 Quantifiers 221 Escape Sequences 223 Extracting Data 226 Modifiers and Anchors 228 Character Classes 231 Grouping 232 Advanced Matching 235 Substitutions 235 Lookahead/Lookbehind Anchors 236 Named Subexpressions (5.10) 238 Common Regular Expression Issues 241 Regexp::Common 241 E-mail Addresses 242 HTML 242 Composing Regular Expressions 243 Summary 245 Chapter 9: Files and Directories 249 Basic File Handling 250 Opening and Reading a File 250 File Test Operators 258 The Diamond Operator 260 Temporary Files 260 DATA as a File 261 binmode 262 Directories 265 Reading Directories 265 Globbing 265 Unicode 266 What is Unicode? 267 Two Simple Rules 267 Lots of Complicated Rules 271 Useful Modules 276 File::Find 276 File::Path 278 File::Find::Rule 279 Summary 284 Chapter 10: Sort, Map, and Grep 287 Basic Sorting 288 Sorting Alphabetically 288 Sorting Numerically 289 Reverse Sorting 290 Complex Sort Conditions 290 Writing a sort Subroutine 292 Sorting and Unicode Fun! 293 map and grep 297 Using grep 298 Using map 303 Aliasing Issues 305 Trying to Do Too Much 306 Trying to Be Clever 307 Putting It All Together 308 Schwartzian Transform (aka decorate, sort, undecorate) 308 Guttman-Rosler Transform 310 Summary 311 Chapter 11: Packages and Modules 315 Namespaces and Packages 316 use Versus require 321 Package Variables 323 Version Numbers 326 Subroutines in Other Packages 327 Exporting 327 Naming Conventions 330 BEGIN, UNITCHECK, CHECK, INIT, and END 335 BEGIN blocks 336 END Blocks 337 INIT, CHECK, and UNITCHECK Blocks 337 Plain Old Documentation (POD) 338 Documentation Structure 340 Headings 340 Paragraphs 341 Lists 341 Verbatim 342 Miscellaneous 342 Creating and Installing Modules 344 Creating a Simple Module 344 Makefi le.PL or Module::Build? 349 Summary 349 Chapter 12: Object Oriented Perl 353 What are Objects? The Ævar the Personal Shopper 354 Three Rules of Perl OO 355 Class is a Package 355 An Object is a Reference That Knows Its Class 356 A Method is a Subroutine 358 Objects – Another View 371 Using TV::Episode 371 Subclassing 374 Using TV::Episode::Broadcast 375 Class Versus Instance Data 379 A Brief Recap 381 Overloading Objects 381 Using UNIVERSAL 385 Understanding Private Methods 387 Gotchas 393 Unnecessary Methods 393 “Reaching Inside” 394 Multiple Inheritance 394 Summary 397 Chapter 13: Moose 399 Understanding Basic Moose Syntax 400 Using Attributes 402 Using Constructors 405 Understanding Inheritance 408 Taking Care of Your Moose 409 Advanced Moose Syntax 413 Using Type Constraints 414 Using Method Modifiers 417 Understanding and Using Roles 420 Exploring MooseX 425 Rewriting Television::Episode 428 Moose Best Practices 433 Use namespace::autoclean and Make Your Class Immutable 434 Never Override new() 434 Always Call Your Parent BUILDARGS Method 434 Provide Defaults if an Attribute is Not Required 434 Default to Read-Only 434 Put Your Custom Types in One Module and Give Them a Namespace 435 Don’t Use Multiple Inheritance 435 Always Consume All Your Roles at Once 435 Summary 436 Chapter 14: Testing 439 Basic Tests 440 Using Test::More 440 Writing Your Tests 442 Understanding the prove Utility 443 Understanding Test::More Test Functions 444 Using ok 445 Using is 445 Using like 448 Using is_deeply 449 Using SKIP 450 Using TODO 450 Using eval {} 451 Using use_ok and require_ok 452 Working with Miscellaneous Test Functions 453 Using Other Testing Modules 457 Using Test::Diff erences 457 Using Test::Exception 459 Using Test::Warn 460 Using Test::Most 460 Understanding xUnit Style Using Testing 461 Using Test::Class 461 A Basic Test Class 463 Extending a Test Class 467 Using Test Control Methods 471 Calling Parent Test Control Methods 473 Summary 477 Chapter 15: The Interwebs 481 A Brief Introduction to HTTP 482 Plack 484 Hello, World! 484 Handling Parameters 490 Templates 492 Handling POST Requests 496 Sessions 500 Web Clients 511 Extracting Links from Web Pages 512 Extracting Comments from Web Pages 514 Filling Out Forms Programmatically 515 Summary 520 Chapter 16: Databases 523 Using the DBI 524 Connecting to a Database 524 Using SQLite 527 Using DBD::SQLite 527 Selecting Basic Data 533 Using SELECT Statements 533 Using Bind Parameters 536 Inserting and Updating Data 539 Creating Transactions 540 Handling Errors 541 Summary 542 Chapter 17: Plays Well with Others 545 The Command Line 546 Reading User Input 546 Handling Command-Line Arguments 548 perlrun 551 Other Programs 556 Running an External Program 556 Reading Another Program’s Output 559 Writing to Another Program’s Input 560 STDERR 562 Summary 565 Chapter 18: Common Tasks 567 Using CSV Data 568 Reading CSV Data 569 Writing CSV Data 570 Understanding Basic XML 571 Reading CSV Data 572 Writing CSV Data 576 Handling Dates 580 Using the DateTime Module 580 Using Date::Tiny and DateTime::Tiny 581 Understanding Your Program 587 Using the Debugger 587 Profi ling 594 Perl::Critic 604 Summary 608 Chapter 19: The Next Steps 611 What Next? 612 What This Book Covers 612 What This Book Leaves Out 613 Understanding Object-Relational Mappers 613 Understanding DBIx::Class 614 Understanding Basic DBIx::Class Usage 614 Understanding the Pros and Cons of an ORM 618 Using DBIx::Class::Schema::Loader 624 Using the Template Toolkit 625 Why Use Templates? 625 An Introduction to Template Toolkit 626 Using Catalyst to Build Apps 634 The Beauty of MVC 635 Setting Up a Catalyst Application 635 Using Catalyst Views 641 Using Catalyst Models 643 Using Catalyst Controllers 646 CRUD: Create, Read, Update, and Delete 648 Summary 651 Appendix: Answers to Exercises 655 Index 695
£28.05
John Wiley & Sons Inc Beyond Redundancy
Book SynopsisWhile geographic redundancy can obviously be a huge benefit for disaster recovery, it is far less obvious what benefit is feasible and likely for more typical non-catastrophic hardware, software, and human failures. Georedundancy and Service Availability provides both a theoretical and practical treatment of the feasible and likely benefits of geographic redundancy for both service availability and service reliability. The text provides network/system planners, IS/IT operations folks, system architects, system engineers, developers, testers, and other industry practitioners with a general discussion about the capital expense/operating expense tradeoff that frames system redundancy and georedundancy.Table of ContentsFigures xv Tables xix Equations xxi Preface and Acknowledgments xxiii Audience xxiv Organization xxiv Acknowledgments xxvi PART 1 BASICS 1 1 SERVICE, RISK, AND BUSINESS CONTINUITY 3 1.1 Service Criticality and Availability Expectations 3 1.2 The Eight-Ingredient Model 4 1.3 Catastrophic Failures and Geographic Redundancy 7 1.4 Geographically Separated Recovery Site 11 1.5 Managing Risk 12 1.6 Business Continuity Planning 14 1.7 Disaster Recovery Planning 15 1.8 Human Factors 17 1.9 Recovery Objectives 17 1.10 Disaster Recovery Strategies 18 2 SERVICE AVAILABILITY AND SERVICE RELIABILITY 20 2.1 Availability and Reliability 20 2.2 Measuring Service Availability 25 2.3 Measuring Service Reliability 33 PART 2 MODELING AND ANALYSIS OF REDUNDANCY 35 3 UNDERSTANDING REDUNDANCY 37 3.1 Types of Redundancy 37 3.2 Modeling Availability of Internal Redundancy 44 3.3 Evaluating High-Availability Mechanisms 52 4 OVERVIEW OF EXTERNAL REDUNDANCY 59 4.1 Generic External Redundancy Model 59 4.2 Technical Distinctions between Georedundancy and Co-Located Redundancy 74 4.3 Manual Graceful Switchover and Switchback 75 5 EXTERNAL REDUNDANCY STRATEGY OPTIONS 77 5.1 Redundancy Strategies 77 5.2 Data Recovery Strategies 79 5.3 External Recovery Strategies 80 5.4 Manually Controlled Recovery 81 5.5 System-Driven Recovery 83 5.6 Client-Initiated Recovery 85 6 MODELING SERVICE AVAILABILITY WITH EXTERNAL SYSTEM REDUNDANCY 98 6.1 The Simplistic Answer 98 6.2 Framing Service Availability of Standalone Systems 99 6.3 Generic Markov Availability Model of Georedundant Recovery 103 6.4 Solving the Generic Georedundancy Model 115 6.5 Practical Modeling of Georedundancy 121 6.6 Estimating Availability Benefit for Planned Activities 130 6.7 Estimating Availability Benefit for Disasters 131 7 UNDERSTANDING RECOVERY TIMING PARAMETERS 133 7.1 Detecting Implicit Failures 134 7.2 Understanding and Optimizing RTO 141 8 CASE STUDY OF CLIENT-INITIATED RECOVERY 147 8.1 Overview of DNS 147 8.2 Mapping DNS onto Practical Client-Initiated Recovery Model 148 8.3 Estimating Input Parameters 154 8.4 Predicted Results 165 8.5 Discussion of Predicted Results 172 9 SOLUTION AND CLUSTER RECOVERY 174 9.1 Understanding Solutions 174 9.2 Estimating Solution Availability 177 9.3 Cluster versus Element Recovery 179 9.4 Element Failure and Cluster Recovery Case Study 182 9.5 Comparing Element and Cluster Recovery 186 9.6 Modeling Cluster Recovery 187 PART 3 RECOMMENDATIONS 201 10 GEOREDUNDANCY STRATEGY 203 10.1 Why Support Multiple Sites? 203 10.2 Recovery Realms 204 10.3 Recovery Strategies 206 10.4 Limp-Along Architectures 207 10.5 Site Redundancy Options 208 10.6 Virtualization, Cloud Computing, and Standby Sites 216 10.7 Recommended Design Methodology 217 11 MAXIMIZING SERVICE AVAILABILITY VIA GEOREDUNDANCY 219 11.1 Theoretically Optimal External Redundancy 219 11.2 Practically Optimal Recovery Strategies 220 11.3 Other Considerations 228 12 GEOREDUNDANCY REQUIREMENTS 230 12.1 Internal Redundancy Requirements 230 12.2 External Redundancy Requirements 233 12.3 Manually Controlled Redundancy Requirements 235 12.4 Automatic External Recovery Requirements 237 12.5 Operational Requirements 242 13 GEOREDUNDANCY TESTING 243 13.1 Georedundancy Testing Strategy 243 13.2 Test Cases for External Redundancy 246 13.3 Verifying Georedundancy Requirements 247 13.4 Summary 254 14 SOLUTION GEOREDUNDANCY CASE STUDY 256 14.1 The Hypothetical Solution 256 14.2 Standalone Solution Analysis 259 14.3 Georedundant Solution Analysis 263 14.4 Availability of the Georedundant Solution 269 14.5 Requirements of Hypothetical Solution 269 14.6 Testing of Hypothetical Solution 277 Summary 285 Appendix: Markov Modeling of Service Availability 292 Acronyms 296 References 298 About the Authors 300 Index 302
£80.96
John Wiley & Sons Inc Beginning XML
Book SynopsisA complete update covering the many advances to the XML language The XML language has become the standard for writing documents on the Internet and is constantly improving and evolving. This new edition covers all the many new XML-based technologies that have appeared since the previous edition four years ago, providing you with an up-to-date introductory guide and reference. Packed with real-world code examples, best practices, and in-depth coverage of the most important and relevant topics, this authoritative resource explores both the advantages and disadvantages of XML and addresses the most current standards and uses of XML. Features the most updated content built on audience feedback from the previous edition as well as the vast knowledge from XML developer teams Boasts new chapters on RELAX NG and Schematron, XML functionality in databases, LINQ to XML, Jabber and XMLPP, XHTML, HTML5, and more Offers in-depth coverage on extracting data Table of ContentsIntroduction xxvii Part I: Introducing XML Chapter 1: What is XML? 3 Steps Leading up to XML: Data Representation and Markups 4 The Birth of XML 6 More Advantages of XML 10 XML in Practice 13 Summary 23 Chapter 2: Well-Formed XML 25 What Does Well-Formed Mean? 26 Creating XML in a Text Editor 26 Advanced XML Parsing 40 The XML Infoset 47 Summary 50 Chapter 3: XML Namespaces 53 Defining Namespaces 54 Why Do You Need Namespaces? 54 How Do You Choose a Namespace? 56 How to Declare a Namespace 58 Namespace Usage in the Real World 68 When to Use and Not Use Namespaces 72 Common Namespaces 75 Summary 78 Part II: Validation Chapter 4: Document Type Definitions 83 What Are Document Type Definitions? 83 Anatomy of a DTD 93 DTD Limitations 114 Summary 114 Chapter 5: XML Schemas 117 Benefits of XML Schemas 118 XML Schemas in Practice 120 Defining XML Schemas 124 Creating a Schema from Multiple Documents 161 Documenting XML Schemas 167 XML Schema 1.1 170 Summary 171 Chapter 6: RELAX NG and Schematron 175 Why Do You Need More Ways of Validating XML? 176 Setting Up Your Environment 176 Using RELAX NG 177 Using Schematron 193 Summary 207 Part III: Processing Chapter 7: Extracting Data from XML 211 Document Models: Representing XML in Memory 211 The XPath Language 216 Summary 236 Chapter 8: XSLT 239 How Is XSLT a Functional Language? 242 Setting Up Your XSLT Development Environment 242 Foundational XSLT Elements 245 Reusing Code in XSLT 276 Understanding Built-In Templates and Built-In Rules 282 Using XSLT 2.0 284 XSLT and XPath 3.0: What’s Coming Next? 302 Summary 303 Part IV: Databases Chapter 9: XQuery 307 XQuery, XPath, and XSLT 308 XQuery in Practice 309 Building Blocks of XQuery 313 The Anatomy of a Query Expression 318 Some Optional XQuery Features 332 Coming in XQuery 3.0 333 Summary 338 Chapter 10: XML and Databases 341 Understanding Why Databases Need to Handle XML 341 Analyzing which XML Features are Needed in a Database 343 Using MySQL with XML 345 Using SQL Server with XML 355 Using eXist with XML 386 Summary 399 Part V: Programming Chapter 11: Event-Driven Programming 403 Understanding Sequential Processing 404 Using SAX in Sequential Processing 404 Using XmlReader 434 Summary 448 Chapter 12: LINQ to XML 451 What Is LINQ? 451 Creating Documents 457 Extracting Data from an XML Document 461 Modifying Documents 468 Transforming Documents 472 Using VB.NET XML Features 474 Summary 480 Part VI: Communication Chapter 13: RSS, Atom, and Content Syndication 485 Syndication 485 Working with News Feeds 501 A Simple Aggregator 502 Transforming RSS with XSLT 524 Useful Resources 534 Summary 535 Chapter 14: Web Services 539 What Is an RPC? 539 RPC Protocols 541 The New RPC Protocol: Web Services 543 The Web Services Stack 564 Summary 569 Chapter 15: SOAP and WSDL 573 Laying the Groundwork 574 The New RPC Protocol: SOAP 574 Defining Web Services: WSDL 600 Summary 612 Chapter 16: AJAX 615 AJAX Overview 615 Introduction to JavaScript 617 The XMLHttp Request Function 623 Using HTTP Methods with AJAX 628 Accessibility Considerations 629 The jQuery Library 630 JSON and AJAX 635 The Web Sever Back End 637 A Larger Example 639 Summary 644 Part VII: Display Chapter 17: XHTML and HTML 5 649 Background of SGML 650 The Open Web Platform 651 Introduction to XHTML 652 XHTML and HTML: Problems and Workarounds 669 Cascading Style Sheets (CSS) 670 Unobtrusive JavaScript 682 HTML 5 683 Summary 686 Chapter 18: Scalable Vector Graphics (SVG) 689 Scalable Vector Graphics and Bitmaps 689 The SVG Graphics Model 694 SVG and CSS 696 SVG Tools 698 SVG Basic Built-in Shapes 700 SVG Transforms and Groups 708 SVG Definitions and Metadata 709 Viewports and Coordinates 712 SVG Colors and Gradients 713 Including Bitmap Images in SVG 715 SVG Text and Fonts 716 SVG Animation Four Ways 717 SVG and HTML 5 720 SVG and Web Apps 721 Making SVG with XQuery or XSLT 722 Resources 722 Summary 723 Part VIII: Case Study Chapter 19: Case Study: XML in Publishing 727 Background 727 Project Introduction: Current Workflow 728 Introducing a New XML-Based Workflow 728 Creating a New Process 730 Some Technical Aspects 733 The Hoy Books Website 741 Summary 746 Appendix A: Answers to Exercises 749 Appendix B: XPATH Functions 773 Appendix C: XML Schema Data Types 797 Index 811
£26.34
John Wiley & Sons Inc Java Concepts International Student Version
Book SynopsisCay Horstmann's seventh edition of Java Concepts provides an approachable introduction to fundamental programming techniques and design skills, helping students master basic concepts and become competent coders. Major rewrites and an updated visual design make this student-friendly text even more engaging. The text is known for its realistic programming examples, great quantity and variety of homework assignments, and lab exercises that build student problem-solving abilities. The seventh edition now includes problem solving sections, more example code online, and exercises from Science and Business.Table of ContentsChapter 1. Introduction Chapter 2. Introduction to Objects and Classes Chapter 3. Fundamental Data Types Chapter 4. Decisions Chapter 5. Loops Chapter 6. Arrays and Array Lists Chapter 7. Designing Classes Chapter 8. Interfaces and Polymorphism Chapter 9. Inheritance Chapter 10. Input/Output and Exception Handling Chapter 11. Object-Oriented Design ===== Web Chapters (Online only) ========= Chapter 12. Recursion Chapter 13. Sorting and Searching Chapter 14. The Java Collections Framework ===== Appendices ========= Appendix A: The Basic Latin and Latin-1 Subsets of Unicode Appendix B: Java Operator Summary Appendix C: Java Reserved Word Summary Appendix D: The Java Library Appendix E: Java Syntax Summary (online) Appendix F: HTML Summary (online) Appendix G: Tool Summary (online) Appendix H: Javadoc Summary (online) Appendix I: Number Systems (online) Appendix J: Bit and Shift Operations (online) Appendix K: UML Summary (online) Appendix L: Java Language Coding Guidelines (online)
£57.20
John Wiley & Sons Inc Algorithm Design and Applications
Book SynopsisIntroducing a NEW addition to our growing library of computer science titles, Algorithm Design and Applications, by Michael T. Goodrich & Roberto Tamassia! Algorithms is a course required for all computer science majors, with a strong focus on theoretical topics.Table of ContentsPreface xi 1 AlgorithmAnalysis 1 1.1 Analyzing Algorithms 3 1.2 A Quick Mathematical Review 19 1.3 A Case Study in Algorithm Analysis 29 1.4 Amortization 34 1.5 Exercises 42 Part I: Data Structures 2 BasicDataStructures 51 2.1 Stacks and Queues 53 2.2 Lists 60 2.3 Trees 68 2.4 Exercises 84 3 BinarySearchTrees 89 3.1 Searches and Updates 91 3.2 Range Queries 101 3.3 Index-Based Searching 104 3.4 Randomly-Constructed Search Trees 107 3.5 Exercises 110 4 BalancedBinarySearchTrees 115 4.1 Ranks and Rotations 117 4.2 AVL Trees 120 4.3 Red-Black Trees 126 4.4 Weak AVL Trees 130 4.5 Splay Trees 139 4.6 Exercises 149 5 PriorityQueuesandHeaps 155 5.1 Priority Queues 157 5.2 PQ-Sort, Selection-Sort, and Insertion-Sort 158 5.3 Heaps 163 5.4 Heap-Sort 174 5.5 Extending Priority Queues 179 5.6 Exercises 182 6 HashTables 187 6.1 Maps 189 6.2 Hash Functions 192 6.3 Handling Collisions and Rehashing 198 6.4 Cuckoo Hashing 206 6.5 Universal Hashing 212 6.6 Exercises 215 7 Union-FindStructures 219 7.1 Union-Find and its Applications 221 7.2 A List-Based Implementation 225 7.3 A Tree-Based Implementation 228 7.4 Exercises 236 Part II: Sorting and Selection 8 Merge-SortandQuick-Sort 241 8.1 Merge-Sort 243 8.2 Quick-Sort 250 8.3 A Lower Bound on Comparison-Based Sorting 257 8.4 Exercises 259 9 FastSortingandSelection 265 9.1 Bucket Sort and Radix Sort 267 9.2 Selection 270 9.3 Weighted Medians 276 9.4 Exercises 279 Part III: Fundamental Techniques 10 The Greedy Method 283 10.1 The Fractional Knapsack Problem 286 10.2 Task Scheduling 289 10.3 Text Compression and Huffman Coding 292 10.4 Exercises 298 11 Divide-and-Conquer 303 11.1 Recurrences and the Master Theorem 305 11.2 Integer Multiplication 313 11.3 Matrix Multiplication 315 11.4 The Maxima-Set Problem 317 11.5 Exercises 319 12 Dynamic Programming 323 12.1 Matrix Chain-Products 325 12.2 The General Technique 329 12.3 Telescope Scheduling 331 12.4 Game Strategies 334 12.5 The Longest Common Subsequence Problem 339 12.6 The 0-1 Knapsack Problem 343 12.7 Exercises 346 Part IV: Graph Algorithms 13 Graphs and Traversals 353 13.1 Graph Terminology and Representations 355 13.2 Depth-First Search 365 13.3 Breadth-First Search 370 13.4 Directed Graphs 373 13.5 Biconnected Components 386 13.6 Exercises 392 14 Shortest Paths 397 14.1 Single-Source Shortest Paths 399 14.2 Dijkstra’s Algorithm 400 14.3 The Bellman-Ford Algorithm 407 14.4 Shortest Paths in Directed Acyclic Graphs 410 14.5 All-Pairs Shortest Paths 412 14.6 Exercises 418 15 Minimum Spanning Trees 423 15.1 Properties of Minimum Spanning Trees 425 15.2 Kruskal’s Algorithm 428 15.3 The Prim-Jarn´ýk Algorithm 433 15.4 Bar°uvka’s Algorithm 436 15.5 Exercises 439 16 Network Flow and Matching 443 16.1 Flows and Cuts 445 16.2 Maximum Flow Algorithms 452 16.3 Maximum Bipartite Matching 458 16.4 Baseball Elimination 460 16.5 Minimum-Cost Flow 462 16.6 Exercises 469 Part V: Computational Intractability 17 NP-Completeness 473 17.1 P and NP 476 17.2 NP-Completeness 483 17.3 CNF-SAT and 3SAT 489 17.4 VERTEX-COVER, CLIQUE, and SET-COVER 492 17.5 SUBSET-SUM and KNAPSACK 496 17.6 HAMILTONIAN-CYCLE and TSP 499 17.7 Exercises 502 18 Approximation Algorithms 507 18.1 The Metric Traveling Salesperson Problem 511 18.2 Approximations for Covering Problems 515 18.3 Polynomial-Time Approximation Schemes 518 18.4 Backtracking and Branch-and-Bound 521 18.5 Exercises 525 Part VI: Additional Topics 19 Randomized Algorithms 529 19.1 Generating Random Permutations 531 19.2 Stable Marriages and Coupon Collecting 534 19.3 Minimum Cuts 539 19.4 Finding Prime Numbers 546 19.5 Chernoff Bounds 551 19.6 Skip Lists 557 19.7 Exercises 563 20 B-Trees and External-Memory 569 20.1 External Memory 571 20.2 (2,4) Trees and B-Trees 574 20.3 External-Memory Sorting 590 20.4 Online Caching Algorithms 593 20.5 Exercises 600 21 Multi-Dimensional Searching 603 21.1 Range Trees 605 21.2 Priority Search Trees 609 21.3 Quadtrees and k-D Trees 614 21.4 Exercises 618 22 Computational Geometry 623 22.1 Operations on Geometric Objects 625 22.2 Convex Hulls 630 22.3 Segment Intersection 638 22.4 Finding a Closest Pair of Points 642 22.5 Exercises 646 23 String Algorithms 651 23.1 String Operations 653 23.2 The Boyer-Moore Algorithm 656 23.3 The Knuth-Morris-Pratt Algorithm 660 23.4 Hash-Based Lexicon Matching 664 23.5 Tries 669 23.6 Exercises 680 24 Cryptography 685 24.1 Greatest Common Divisors (GCD) 687 24.2 Modular Arithmetic 691 24.3 Cryptographic Operations 699 24.4 The RSA Cryptosystem 703 24.5 The El Gamal Cryptosystem 706 24.6 Exercises 708 25 The Fast Fourier Transform 711 25.1 Convolution 713 25.2 Primitive Roots of Unity 715 25.3 The Discrete Fourier Transform 717 25.4 The Fast Fourier Transform Algorithm 721 25.5 Exercises 727 26 Linear Programming 731 26.1 Formulating the Problem 734 26.2 The Simplex Method 739 26.3 Duality 746 26.4 Applications of Linear Programming 750 26.5 Exercises 753 A UsefulMathematicalFacts 761 Bibliography 765 Index 774
£134.85
John Wiley & Sons Inc Professional IIS 8 wWS
Book SynopsisStellar author team of Microsoft MVPs helps developers and administrators get the most out of Windows IIS 8 If you're a developer or administrator, you'll want to get thoroughly up to speed on Microsoft's new IIS 8 platform with this complete, in-depth reference.Table of ContentsIntroduction xxvii Part I: Introduction and Deployment Chapter 1: Background on IIS and New Features In IIS 8.0 3 Chapter 2: IIS 8.0 Architecture 19 Chapter 3: Planning Your Deployment 39 Chapter 4: Installing IIS 8.0 63 Part II: Administration Chapter 5: Administration Tools 97 Chapter 6: Website Administration 117 Chapter 7: Web Application Administration 153 Chapter 8: Web Application Pool Administration 179 Chapter 9: Delegating Remote Administration 221 Chapter 10: Configuring Other Services 259 Part III: Advanced Administration Chapter 11: Core Server 315 Chapter 12: Core Server Extensibility 343 Chapter 13: Securing the Server 393 Chapter 14: Authentication and Authorization 423 Chapter 15: SSL and TLS 471 Chapter 16: IIS Scalability I: Building an IIS Web Farm 501 Chapter 17: IIS Scalability II: Load Balancing and ARR 545 Chapter 18: Programmatic Configuration and Management 597 Chapter 19: URL Rewrite 681 Chapter 20: Configuring Publishing Options 743 Part IV: Managing and Operating IIS 8.0 Chapter 21: IIS AND Operations Management 779 Chapter 22: Monitoring and Performance Tuning 805 Chapter 23: Diagnostics and Troubleshooting 851 Index 923
£38.00
John Wiley & Sons Inc Foundations of Fuzzy Control
Book SynopsisFoundations of Fuzzy Control: A Practical Approach, 2nd Edition has been significantly revised and updated, with two new chapters on Gain Scheduling Control and Neurofuzzy Modelling. It focuses on the PID (Proportional, Integral, Derivative) type controller which is the most widely used in industry and systematically analyses several fuzzy PID control systems and adaptive control mechanisms. This new edition covers the basics of fuzzy control and builds a solid foundation for the design of fuzzy controllers, by creating links to established linear and nonlinear control theory. Advanced topics are also introduced and in particular, common sense geometry is emphasised. Key features Sets out practical worked through problems, examples and case studies to illustrate each type of control system Accompanied by a website hosting downloadable MATLAB programs Accompanied by an online course on Fuzzy Control which is taught by the author. StTable of ContentsForeword xiii Preface to the Second Edition xv Preface to the First Edition xvii 1Introduction 1 1.1 What Is Fuzzy Control? 1 1.2 Why Fuzzy Control? 2 1.3 Controller Design 3 1.4 Introductory Example: Stopping a Car 3 1.5 Nonlinear Control Systems 9 1.6 Summary 11 1.7 The Autopilot Simulator* 12 1.8 Notes and References* 13 2 Fuzzy Reasoning 17 2.1 Fuzzy Sets 17 2.2 Fuzzy Set Operations 25 2.3 Fuzzy If–Then Rules 33 2.4 Fuzzy Logic 36 2.5 Summary 43 2.6 Theoretical Fuzzy Logic* 43 2.7 Notes and References* 53 3 Fuzzy Control 55 3.1 The Rule Based Controller 56 3.2 The Sugeno Controller 61 3.3 Autopilot Example: Four Rules 64 3.4 Table Based Controller 65 3.5 Linear Fuzzy Controller 68 3.6 Summary 70 3.7 Other Controller Components* 70 3.8 Other Rule Based Controllers* 77 3.9 Analytical Simplification of the Inference* 80 3.10 Notes and References* 84 4 Linear Fuzzy PID Control 85 4.1 Fuzzy P Controller 87 4.2 Fuzzy PD Controller 89 4.3 Fuzzy PD+I Controller 90 4.4 Fuzzy Incremental Controller 92 4.5 Tuning 94 4.6 Simulation Example: Third-Order Process 99 4.7 Autopilot Example: Stable Equilibrium 101 4.8 Summary 103 4.9 Derivative Spikes and Integrator Windup* 104 4.10 PID Loop Shaping* 106 4.11 Notes and References* 109 5 Nonlinear Fuzzy PID Control 111 5.1 Nonlinear Components 111 5.2 Phase Plot 113 5.3 Four Standard Control Surfaces 115 5.4 Fine-Tuning 118 5.5 Example: Unstable Frictionless Vehicle 121 5.6 Example: Nonlinear Valve Compensator 124 5.7 Example: Motor Actuator with Limits 127 5.8 Autopilot Example: Regulating a Mass Load 127 5.9 Summary 130 5.10 Phase Plane Analysis* 130 5.11 Geometric Interpretation of the PD Controller* 134 5.12 Notes and References* 143 6 The Self-Organizing Controller 145 6.1 Model Reference Adaptive Systems 145 6.2 The Original SOC 147 6.3 A Modified SOC 150 6.4 Example with a Long Deadtime 151 6.5 Tuning and Time Lock 155 6.6 Summary 157 6.7 Example: Adaptive Control of a First-Order Process* 157 6.8 Analytical Derivation of the SOC Adaptation Law* 161 6.9 Notes and References* 169 7 Performance and Relative Stability 171 7.1 Reference Model 172 7.2 Performance Measures 177 7.3 PID Tuning from Performance Specifications 180 7.4 Gain Margin and Delay Margin 185 7.5 Test of Four Difficult Processes 186 7.6 The Nyquist Criterion for Stability 188 7.7 Relative Stability of the Standard Control Surfaces 191 7.8 Summary 193 7.9 Describing Functions* 193 7.10 Frequency Responses of the FPD and FPD+I Controllers* 198 7.11 Analytical Derivation of Describing Functions for the Standard Surfaces* 206 7.12 Notes and References* 216 8 Fuzzy Gain Scheduling Control 217 8.1 Point Designs and Interpolation 218 8.2 Fuzzy Gain Scheduling 219 8.3 Fuzzy Compensator Design 221 8.4 Autopilot Example: Stopping on a Hilltop 226 8.5 Summary 228 8.6 Case Study: the FLS Controller* 229 8.7 Notes and References* 235 9 Fuzzy Models 237 9.1 Basis Function Architecture 238 9.2 Handmade Models 240 9.3 Machine-Made Models 249 9.4 Cluster Analysis 253 9.5 Training and Testing 263 9.6 Summary 266 9.7 Neuro-Fuzzy Models* 267 9.8 Notes and References* 275 10 Demonstration Examples 277 10.1 Hot Water Heater 277 10.2 Temperature Control of a Tank Reactor 282 10.3 Idle Speed Control of a Car Engine 287 10.4 Balancing a Ball on a Cart 292 10.5 Dynamic Model of a First-Order Process with a Nonlinearity 301 10.6 Summary 307 10.7 Further State-Space Analysis of the Cart-Ball System* 307 10.8 Notes and References* 314 References 315 Index 319
£84.56