Systems analysis and design Books

190 products


  • DomainDriven Design Distilled

    Pearson Education (US) DomainDriven Design Distilled

    Out of stock

    Book SynopsisVaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.Table of Contents Preface xiAcknowledgments xvAbout the Author xvii Chapter 1: DDD for Me 1 Will DDD Hurt? 2 Good, Bad, and Effective Design 3 Strategic Design 7 Tactical Design 8 The Learning Process and Refining Knowledge 9 Let’s Get Started! 10 Chapter 2: Strategic Design with Bounded Contexts and the Ubiquitous Language 11 Domain Experts and Business Drivers 17 Case Study 21 Fundamental Strategic Design Needed 25 Challenge and Unify 29 Developing a Ubiquitous Language 34 Architecture 41 Summary 44 Chapter 3: Strategic Design with Subdomains 45 What Is a Subdomain? 46 Types of Subdomains 46 Dealing with Complexity 47 Summary 50 Chapter 4: Strategic Design with Context Mapping 51 Kinds of Mappings 54 Making Good Use of Context Mapping 60 An Example in Context Mapping 70 Summary 73 Chapter 5: Tactical Design with Aggregates 75 Why Used 76 Aggregate Rules of Thumb 81 Modeling Aggregates 88 Summary 98 Chapter 6: Tactical Design with Domain Events 99 Designing, Implementing, and Using Domain Events 100 Event Sourcing 107 Summary 109 Chapter 7: Acceleration and Management Tools 111 Event Storming 112 Managing DDD on an Agile Project 125 Timeboxed Modeling 132 Summary 136 References 137 Index 139

    Out of stock

    £26.54

  • Refactoring

    Pearson Education (US) Refactoring

    2 in stock

    Book SynopsisMartin Fowler is Chief Scientist at ThoughtWorks. He describes himself as an author, speaker, consultant and general loud-mouth on software development. Fowler concentrates on designing enterprise software: exploring what makes a good design and what practices are needed to create one.Table of Contents Preface 1. Refactoring, a First Example 2. Principles in Refactoring 3. Bad Smells in Code 4. Building Tests 5. Toward a Catalog of Refactorings 6. Composing Methods 7. Moving Features between Objects 8. Organizing Data 9. Simplifying Conditional Expressions 10. Making Method Calls Simpler 11. Dealing with Generalization 12. Big Refactorings 13. Refactoring, Reuse, and Reality 14. Refactoring Tools 15. Putting It All Together

    2 in stock

    £43.19

  • Patterns for API Design

    Pearson Education (US) Patterns for API Design

    Out of stock

    Book SynopsisTable of ContentsForeword by Vaughn Vernon, Series Editor xvii Foreword by Frank Leymann xxi Preface xxiii Part 1: Foundations and Narratives 1 Chapter 1: Application Programming Interface (API) Fundamentals 3 From Local Interfaces to Remote APIs 3 Decision Drivers in API Design 14 A Domain Model for Remote APIs 22 Summary 28 Chapter 2: Lakeside Mutual Case Study 31 Business Context and Requirements 31 Architecture Overview 35 API Design Activities 39 Target API Specification 39 Summary 41 Chapter 3: API Decision Narratives 43 Prelude: Patterns as Decision Options, Forces as Decision Criteria 43 Foundational API Decisions and Patterns 45 Decisions about API Roles and Responsibilities 57 Selecting Message Representation Patterns 70 Interlude: Responsibility and Structure Patterns in the Lakeside Mutual Case 82 Governing API Quality 84 Deciding for API Quality Improvements 98 Decisions about API Evolution 110 Summary 122 Part 2: The Patterns 125 Chapter 4: Pattern Language Introduction 127 Positioning and Scope 128 Patterns: Why and How? 130 Navigating through the Patterns 131 Foundations: API Visibility and Integration Types 137 Basic Structure Patterns 146 Summary 158 Chapter 5: Define Endpoint Types and Operations 161 Introduction to API Roles and Responsibilities 162 Endpoint Roles (aka Service Granularity) 167 Operation Responsibilities 215 Summary 248 Chapter 6: Design Request and Response Message Representations 253 Introduction to Message Representation Design 253 Element Stereotypes 256 Special-Purpose Representations 282 Summary 305 Chapter 7: Refine Message Design for Quality 309 Introduction to API Quality 309 Message Granularity 313 Client-Driven Message Content (aka Response Shaping) 325 Message Exchange Optimization (aka Conversation Efficiency) 344 Summary 355 Chapter 8: Evolve APIs 357 Introduction to API Evolution 357 Versioning and Compatibility Management 362 Life-Cycle Management Guarantees 374 Summary 393 Chapter 9: Document and Communicate API Contracts 395 Introduction to API Documentation 395 Documentation Patterns 398 Summary 421 Part 3: Our Patterns in Action (Now and Then) 423 Chapter 10: Real-World Pattern Stories 425 Large-Scale Process Integration in the Swiss Mortgage Business 426 Offering and Ordering Processes in Building Construction 438 Summary 445 Chapter 11: Conclusion 447 Short Retrospective 448 API Research: Refactoring to Patterns, MDSL, and More 449 The Future of APIs 450 Additional Resources 451 Final Remarks 451 Appendix A: Endpoint Identification and Pattern Selection Guides 453 Appendix B: Implementation of the Lakeside Mutual Case 463 Appendix C: Microservice Domain-Specific Language (MDSL) 471 Bibliography 483 Index 499

    Out of stock

    £33.29

  • Requirements Engineering Fundamentals: A Study

    Rocky Nook Requirements Engineering Fundamentals: A Study

    1 in stock

    Book SynopsisRequirements engineering tasks have become increasingly complex. In order to ensure a high level of knowledge and competency among requirements engineers, the International Requirements Engineering Board (IREB) developed a standardized qualification called the Certified Professional for Requirements Engineering (CPRE). The certification defines the practical skills of a requirements engineer on various training levels. This book is designed for self-study and covers the curriculum for the Certified Professional for Requirements Engineering Foundation Level exam as defined by the IREB. The 2nd edition has been thoroughly revised and is aligned with the curriculum Version 2.2 of the IREB. In addition, some minor corrections to the 1st edition have been included. About IREB: The mission of the IREB is to contribute to the standardization of further education in the fields of business analysis and requirements engineering by providing syllabi and examinations, thereby achieving a higher level of applied requirements engineering. The IRE Board is comprised of a balanced mix of independent, internationally recognized experts in the fields of economy, consulting, research, and science.The IREB is a non-profit corporation.

    1 in stock

    £24.75

  • Building Evolutionary Architectures

    O'Reilly Media Building Evolutionary Architectures

    1 in stock

    Book Synopsis

    1 in stock

    £47.99

  • Acing the System Design Interview

    Manning Publications Acing the System Design Interview

    2 in stock

    Book SynopsisAce the toughest system design interview questions and land the job and salary you want! For software engineers, software architects, and engineering managers looking to advance their careers. Acing the System Design Interview tackles the hardest part of the software engineering hiring process – the system design interview. Never fear! In this book, Zhiyong Tan reveals his unique system design interview techniques that have earned him job offers from Amazon, Apple, PayPal, and Uber. The book goes well beyond typical soft skills. You will master a structured and organised approach to present system design ideas like: Scaling databases to support heavy traffic Distributed transactions techniques to ensure data consistency Services for functional partitioning such as API gateway, service mesh, and metadata Common API paradigms including REST, RPC, and GraphQL Caching strategies, including their tradeoffs Logging, monitoring, and alerting concepts that are critical in any system design Communication skills that demonstrate your engineering maturity The interview's open-ended nature often makes nailing it more art than science – and notoriously difficult to prepare for. With this book, you will dive deep into the common technical topics that arise during interviews, learning how to apply them to mentally perfect different kinds of systems. About the technology Any senior role in software engineering will include system design interviews in the hiring process. Built around open-ended questions with no standard answer, these interviews test how well you understand the design of complex systems. You will need to demonstrate that you can balance trade-offs to design a system that both meets current requirements and is flexible to future modifications and extensions – all in a 50-minute interview!

    2 in stock

    £41.39

  • Design Journeys through Complex Systems: Practice

    BIS Publishers B.V. Design Journeys through Complex Systems: Practice

    2 in stock

    Book SynopsisDesign Journeys for Complex Systems is a designer's handbook to learn systemic design tools to engage stakeholder groups in collaborative design to address complex societal systems. Systemic design uses systems thinking and service design to address large-scale societal contexts and complex socio-technical systems. These are contexts characterized by social and technological complexity, high uncertainty, and often problematic outcomes. Using a tour guide metaphor, the book trains people's mindsets and provides tools for dealing with hyper complexity, to enable understanding of systemic problems, and to build capacity to collaborate in teams to produce action proposals.

    2 in stock

    £28.00

  • IT Architecture For Dummies

    John Wiley & Sons Inc IT Architecture For Dummies

    15 in stock

    Book SynopsisA solid introduction to the practices, plans, and skills required for developing a smart system architectureInformation architecture combines IT skills with business skills in order to align the IT structure of an organization with the mission, goals, and objectives of its business.Table of ContentsIntroduction 1 Part I: Developing the Architecture 7 Chapter 1: Planning for Enterprise Realignment 9 Chapter 2: Exploring Tasks, Roles, and Tools 17 Chapter 3: Pondering Platform Pros and Cons 29 Part II: Defining the Role of IT Architecture 41 Chapter 4: Reducing Complexity through Standardization and Consolidation 43 Chapter 5: Planning Enterprise Information Security 65 Chapter 6: Complying with Mandates and Managing Risk 81 Part III: Creating an Enterprise Culture 93 Chapter 7: Developing Identity and Access Management Strategies 95 Chapter 8: Developing a Network Culture through Collaboration Solutions 113 Chapter 9: Reviewing Communication Methods 127 Part IV: Developing an Extended Network Enterprise 141 Chapter 10: Managing Data Storage 143 Chapter 11: Managing Application Development 163 Chapter 12: Planning for the Mobile Enterprise 175 Part V: Obtaining Value beyond the Basic Enterprise 193 Chapter 13: Virtualizing Enterprise Systems 195 Chapter 14: Facilitating High-Performance Computing 207 Chapter 15: Enabling Green IT 219 Part VI: Protecting the Enterprise 229 Chapter 16: Planning Technology Updates 231 Chapter 17: Planning Security Strategies 247 Chapter 18: Planning Business Continuity and Disaster Recovery 261 Part VII: The Part of Tens 273 Chapter 19: Ten Challenges for Redesigning an Existing Enterprise 275 Chapter 20: Ten “Low-Hanging Fruit” Opportunities 281 Glossary 289 Index 313

    15 in stock

    £19.99

  • Terraform  Up and Running 3e

    O'Reilly Media Terraform Up and Running 3e

    1 in stock

    Book SynopsisThis hands-on third edition, expanded and thoroughly updated for version 1.0 and beyond, shows you the fastest way to get up and running with Terraform.

    1 in stock

    £42.39

  • Fundamentals of Software Architecture

    O'Reilly Media Fundamentals of Software Architecture

    Out of stock

    Book SynopsisSalary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects.

    Out of stock

    £63.99

  • Continuous Deployment

    O'Reilly Media Continuous Deployment

    10 in stock

    Book Synopsis

    10 in stock

    £39.74

  • Algorithms

    Pearson Education (US) Algorithms

    7 in stock

    Book SynopsisRobert Sedgewick has been a Professor of Computer Science at Princeton University since 1985, where he was the founding Chairman of the Department of Computer Science. He has held visiting research positions at Xerox PARC, Institute for Defense Analyses, and INRIA, and is member of the board of directors of Adobe Systems. Professor Sedgewick's research interests include analytic combinatorics, design and analysis of data structures and algorithms, and program visualization. His landmark book, Algorithms, now in its fourth edition, has appeared in numerous versions and languages over the past thirty years. In addition, with Kevin Wayne, he is the coauthor of the highly acclaimed textbook, Introduction to Programming in Java: An Interdisciplinary Approach (Addison-Wesley, 2008).   Kevin Wayne is the Phillip Y. Goldman Senior Lecturer in Computer Science at Princeton University, where hTable of Contents Chapter 1: Fundamentals 1.1 Programming Model 1.2 Data Abstraction 1.3 Queues, Stacks, and Bags 1.4 Analysis of Algorithms 1.5 Case Study: Union-Find Chapter 2: Sorting 2.1 Elementary Sorts 2.1 Elementary Sorts 2.2 Mergesort 2.3 Quicksort 2.4 Priority Queues 2.5 Applications Chapter 3: Searching 3.1 Symbol Tables 3.1 Symbol Tables 3.2 Binary Search Trees 3.3 Balanced Search Trees 3.4 Hash Tables 3.5 Applications Chapter 4: Graphs 4.1 Undirected graphs 4.1 Undirected graphs 4.2 Directed graphs 4.3 Minimum Spanning Trees 4.4 Shortest Paths Chapter 5: Strings 5.1 String Sorts 5.1 String Sorts 5.2 Tries 5.3 Substring Search 5.4 Regular Expressions 5.5 Data Compression Context Systems Programming Systems Programming Scientific Computing Commercial Applications Operations Research Intractability Index

    7 in stock

    £59.84

  • Understanding Software Dynamics

    Pearson Education (US) Understanding Software Dynamics

    Out of stock

    Book SynopsisRichard L. Sites wrote his first computer program in 1959 and has spent most of his career at the boundary between hardware and software, with a particular interest in CPU/software performance interactions. His past work includes VAX microcode, DEC Alpha co-architect, and inventing the performance counters found in nearly all processors today. He has done low-overhead microcode and software tracing at DEC, Adobe, Google, and Tesla. Dr. Sites earned his PhD at Stanford in 1974; he holds 66 patents and is a member of the US National Academy of Engineering.Trade Review"Complex software often uses threads, events, and I/O to produce results. Even intermittent performance bugs can lead to functional failures when results are time sensitive. Here Sites shares his methods from decades of experience as a real-world performance detective to enable you to approach the deduction skills of an IT Sherlock Holmes."—Mark D. Hill, Partner Hardware Architect at Microsoft and Professor Emeritus at the University of Wisconsin-Madison "I think that any senior CS student or professional can benefit by reading this book. While all the material in the first half of the book leads up to the use of KUTrace, the first two parts are worth reading on their own by anyone who wants to better understand the systems they are building and using."—Rik Farrow, ;loginTable of ContentsForeword xixPreface xxiAcknowledgments xxvAbout the Author xxvii Part I: Measurement 1 Chapter 1: My Program Is Too Slow 3 Chapter 2: Measuring CPUs 15 Chapter 3: Measuring Memory 31 Chapter 4: CPU and Memory Interaction 49 Chapter 5: Measuring Disk/SSD 61 Chapter 6: Measuring Networks 85 Chapter 7: Disk and Network Database Interaction 111 Part II: Observation 131 Chapter 8: Logging 133 Chapter 9: Aggregate Measures 141 Chapter 10: Dashboards 157 Chapter 11: Other Existing Tools 167 Chapter 12: Traces 193 Chapter 13: Observation Tool Design Principles 209 Part III: Kernel-User Trace 217 Chapter 14: KUtrace: Goals, Design, Implementation 219 Chapter 15: KUtrace: Linux Kernel Patches 227 Chapter 16: KUtrace: Linux Loadable Module 239 Chapter 17: KUtrace: User-Mode Runtime Control 245 Chapter 18: KUtrace: Postprocessing 249 Chapter 19: KUtrace: Display of Software Dynamics 257 Part IV: Reasoning 267 Chapter 20: What to Look For 269 Chapter 21: Executing Too Much 271 Chapter 22: Executing Slowly 279 Chapter 23: Waiting for CPU 289 Chapter 24: Waiting for Memory 299 Chapter 25: Waiting for Disk 307 Chapter 26: Waiting for Network 319 Chapter 27: Waiting for Locks 337 Chapter 28: Waiting for Time 357 Chapter 29: Waiting for Queues 361 Chapter 30: Recap 383 Appendix A: Sample Servers 387 Appendix B: Trace Entries 391 Glossary 397References 405Index 415

    Out of stock

    £34.19

  • Your Code as a Crime Scene, Second Edition: Use

    The Pragmatic Programmers Your Code as a Crime Scene, Second Edition: Use

    1 in stock

    Book SynopsisJack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you can apply strategies to identify problems in your existing code, assess refactoring direction, and understand how your team influences the software architecture. With its unique blend of criminal psychology and code analysis, Your Code as a Crime Scene arms you with the techniques you need to take on any codebase, no matter what programming language you use. Software development might well be the most challenging task humanity ever attempted. As systems scale up, they also become increasingly complex, expensive to maintain, and difficult to reason about. We can always write more tests, try to refactor, and even fire up a debugger to understand complex coding constructs. That's a great starting point, but you can do so much better. Take inspiration from forensic psychology techniques to understand and improve existing code. Visualize codebases via a geographic profile from commit data to find development hotspots, prioritize technical debt, and uncover hidden dependencies. Get data and develop strategies to make the business case for larger refactorings. Detect and fix organizational problems from the vantage point of the software architecture to remove bottlenecks for the teams. The original Your Code as a Crime Scene from 2014 pioneered techniques for understanding the intersection of people and code. This new edition reflects a decade of additional experience from hundreds of projects. Updated techniques, novel case studies, and extensive new material adds to the strengths of this cult classic. Change how you view software development and join the hunt for better code! What You Need: You need to be comfortable reading code. You also need to use Git (or Subversion, Mercurial or similar version-control tool).

    1 in stock

    £40.84

  • Bayesian Optimization in Action

    Manning Publications Bayesian Optimization in Action

    2 in stock

    Book SynopsisApply advanced techniques for optimising machine learning processes For machine learning practitioners confident in maths and statistics. Bayesian Optimization in Action shows you how to optimise hyperparameter tuning, A/B testing, and other aspects of the machine learning process, by applying cutting-edge Bayesian techniques. Using clear language, Bayesian Optimization helps pinpoint the best configuration for your machine-learning models with speed and accuracy. With a range of illustrations, and concrete examples, this book proves that Bayesian Optimisation doesn't have to be difficult! Key features include: Train Gaussian processes on both sparse and large data sets Combine Gaussian processes with deep neural networks to make them flexible and expressive Find the most successful strategies for hyperparameter tuning Navigate a search space and identify high-performing regions Apply Bayesian Optimisation to practical use cases such as cost-constrained, multi-objective, and preference optimisation Use PyTorch, GPyTorch, and BoTorch to implement Bayesian optimisation You will get in-depth insights into how Bayesian optimisation works and learn how to implement it with cutting-edge Python libraries. The book's easy-to-reuse code samples will let you hit the ground running by plugging them straight into your own projects! About the technology Experimenting in science and engineering can be costly and time-consuming, especially without a reliable way to narrow down your choices. Bayesian Optimisation helps you identify optimal configurations to pursue in a search space. It uses a Gaussian process and machine learning techniques to model an objective function and quantify the uncertainty of predictions. Whether you're tuning machine learning models, recommending products to customers, or engaging in research, Bayesian Optimisation can help you make better decisions faster.

    2 in stock

    £34.49

  • Cryptography and Network Security Principles and

    Pearson Education Limited Cryptography and Network Security Principles and

    15 in stock

    Book SynopsisDr. William Stallings hasauthored 19 titles, and counting revised editions, over 40 books on computersecurity, computer networking, and computer architecture. His writings haveappeared in numerous publications, including the Proceedings of the IEEE,ACM Computing Reviews and Cryptologia. He has received 13 times theaward for the best Computer Science textbook of the year from the Text andAcademic Authors Association.  In over 30 years in thefield, he has been a technical contributor, technical manager, and an executivewith several high-technology firms. He has designeTable of Contents Computer and Network Security Concepts Introduction to Number Theory Classical Encryption Techniques Block Ciphers and the Data Encryption Standard Finite Fields Advanced Encryption Standard Block Cipher Operation Random Bit Generation and Stream Ciphers Public-Key Cryptography and RSA Other Public-Key Cryptosystems Cryptographic Hash Functions Message Authentication Codes Digital Signatures Lightweight Cryptography and Post-Quantum Cryptography Key Management and Distribution User Authentication Protocols Transport-Level Security Wireless Network Security Electronic Mail Security IP Security Network Endpoint Security Cloud Security Internet of Things (IoT) Security Appendix A. Basic Concepts from Linear Algebra Appendix B. Measures of Security and Secrecy Appendix C. Data Encryption Standard (DES) Appendix D. Simplified AES Appendix E. Mathematical Basis of the Birthday Attack

    15 in stock

    £74.09

  • Specifying Systems

    Pearson Education (US) Specifying Systems

    Out of stock

    Book Synopsis Leslie Lamport, a computer scientist, is well known for his contributions to concurrent computing and distributed systems. His Time, Clocks, and the Ordering of Events in a Distributed System paper has been honored for its enduring influence on the field. Lamport is also known for creating the LaTeX typesetting system and the best-selling book, LaTeX, Second Edition, which documents it (Addison-Wesley, 1994). Now at Microsoft Research in Mountain View, California, he began his work on TLA+ at the Digital (later Compaq) Systems Research Center in Palo Alto. Lamport, who earned his Ph.D. in mathematics from Brandeis University, is a member of the National Academy of Engineering. 032114306XAB06262002 Table of Contents List of Figures and Tables. Acknowledgments. Introduction. I. Getting Started. 1. A Little Simple Math. Propositional Logic. Sets. Predicate Logic. Formulas and Language. 2. Specifying a Simple Clock. Behaviors. An Hour Clock. A Closer Look at the Specification. The Specification in TLA+. An Alternative Specification. 3. An Asynchronous Interface. The First Specification. Another Specification. Types: A Reminder. Definitions. Comments. 4. A FIFO. The Inner Specification. Instantiation Examined. Instantiation Is Substitution. Parametrized Instantiation. Implicit Substitutions. Instantiation Without Renaming. Hiding the Queue. A Bounded FIFO. What We're Specifying. 5. A Caching Memory. The Memory Interface. Functions. A Linearizable Memory. Tuples as Functions. Recursive Function Definitions. A Write-Through Cache. Invariance. Proving Implementation. 6. Some More Math. Sets. Silly Expressions. Recursion Revisited. Functions versus Operators. Using Functions. Choose. 7. Writing a Specification: Some Advice. Why Specify. What to Specify. The Grain of Atomicity. The Data Structures. Writing the Specification. Some Further Hints. When and How to Specify. II: More Advanced Topics. 8. Liveness and Fairness. Temporal Formulas. Temporal Tautologies. Temporal Proof Rules. Weak Fairness. The Memory Specification. The Liveness Requirement. Another Way to Write It. A Generalization. Strong Fairness. The Write-Through Cache. Quantification. Temporal Logic Examined. A Review. Machine Closure. Machine Closure and Possibility. Refinement Mappings and Fairness. The Unimportance of Liveness. Temporal Logic Considered Confusing. 9. Real Time. The Hour Clock Revisited. Real-Time Specifications in General. A Real-Time Caching Memory. Zeno Specifications. Hybrid System Specifications. Remarks on Real Time. 10. Composing Specifications. Composing Two Specifications. Composing Many Specifications. The FIFO. Composition with Shared State. Explicit State Changes. Composition with Joint Actions. A Brief Review. A Taxonomy of Composition. Interleaving Reconsidered. Joint Actions Reconsidered. Liveness and Hiding. Liveness and Machine Closure. Hiding. Open-System Specifications. Interface Refinement. A Binary Hour Clock. Refining a Channel. Interface Refinement in General. Open-System Specifications. Should You Compose?. 11. Advanced Examples. Specifying Data Structures. Local Definitions. Graphs. Solving Differential Equations. BNF Grammars. Other Memory Specifications. The Interface. The Correctness Condition. A Serial Memory. A Sequentially Consistent Memory. The Memory Specifications Considered. III: The Tools. 12. The Syntactic Analyzer. 13. The TLATEX Typesetter. Introduction. Comment Shading. How It Typesets the Specification. How It Typesets Comments. Adjusting the Output Format. Output Files. Trouble-Shooting. Using LATEX Commands. 14. The TLC Model Checker. Introduction to TLC. What TLC Can Cope With. TLC Values. How TLC Evaluates Expressions. Assignment and Replacement. Evaluating Temporal Formulas. Overriding Modules. How TLC Computes States. How TLC Checks Properties. Model-Checking Mode. Simulation Mode. Views and Fingerprints. Taking Advantage of Symmetry. Limitations of Liveness Checking. The TLC Module. How to Use TLC. Running TLC. Debugging a Specification. Hints on Using TLC Effectively. What TLC Doesn't Do. The Fine Print. The Grammar of the Configuration File. Comparable TLC Values. IV: The TLA+ Language. Mini-Manual 268-273. 15. The Syntax of TLA+. The Simple Grammar. The Complete Grammar. Precedence and Associativity. Alignment. Comments. Temporal Formulas. Two Anomalies. The Lexemes of TLA+. 16. The Operators of TLA+. Constant Operators. Boolean Operators. The Choose Operator. Interpretations of Boolean Operators. Conditional Constructs. The Let/In Construct. The Operators of Set Theory. Functions. Records. Tuples. Strings. Numbers. . Nonconstant Operators. Basic Constant Expressions. The Meaning of a State Function. Action Operators. Temporal Operators. 17. The Meaning of a Module. Operators and Expressions. The Order and Arity of an Operator. ¿¿ Expressions. Simplifying Operator Application. Expressions. Levels. Contexts. The Meaning of a ¿¿ Expression. The Meaning of a Module. Extends. Declarations. Operator Definitions. Function Definitions. Instantiation. Theorems and Assumptions. Submodules. Correctness of a Module. Finding Modules. The Semantics of Instantiation. 18. The Standard Modules. Module Sequences. Module FiniteSets. Module Bags. The Numbers Modules. Index. 032114306XT07022002

    Out of stock

    £30.14

  • Systems

    John Wiley & Sons Inc Systems

    15 in stock

    Book SynopsisSystems: Concepts, Methodologies and Applications Second Edition Brian Wilson Department of Systems and Information Management Lancaster University, UK The result of many years? experience, this book, now extensively revised and updated, emphasizes the application of systems concepts and methodologies that have been developed at Lancaster University. In particular the book is about problem solving and the relationship between theory and practice. Complementary to Systems Thinking, Systems Practice by Peter Checkland (Wiley, 1981), which has become a classic in the field, this book shows how systems ideas can be used to cope with real-life problems. Reviews of the first edition? ? an excellent book which provides a synthesis of the action-research undertaken by the well-known Department of Systems, University of Lancaster ? Wilson?s lucid style of writing and the historical perspective of the Lancaster learning experience provide a strong contextural case for the concept of a human actiTable of ContentsModels and Modeling. A Systems Language. Systems Methodologies. Problem-Solving and Methodology. Management Control. Analysis of Business Information. Role Analysis. Appendices. References. Index.

    15 in stock

    £53.06

  • C++ Crash Course: A Fast-Paced Introduction

    No Starch Press,US C++ Crash Course: A Fast-Paced Introduction

    1 in stock

    Book SynopsisC++ is one of the most widely used languages for real-world software. Wherever performance matters, C++ is the de facto standard. It's the language behind operating systems, embedded devices, games, web browsers, and virtual reality systems. As a C++ developer, you can program efficient software on virtually any platform. C++ Crash Course cuts through the weeds to get you straight to the core of C++17, the most modern revision of the ISO standard.Trade Review"This is a comprehensive book, both in size (over 700 pages, taking 5 months to review) and breadth of coverage . . . All in all, highly recommended." —ACCU"I can highly recommend this book to anyone who already has programming experience (in another language) and wants to dive straight into modern C++."—Arjan van Eersel, @ArjanvanEersel, CTO of Plandail LimitedTable of ContentsIntroductionAn Overture to C ProgrammersPart I: The C++ Core LanguageChapter 1: Up and RunningChapter 2: TypesChapter 3: Reference TypesChapter 4: The Object Life CycleChapter 5: Run-Time PolymorphismChapter 6: Compile-Time PolymorphismChapter 7: ExpressionsChapter 8: StatementsChapter 9: FunctionsPart II: C++ Libraries and FrameworksChapter 10: TestingChapter 11: Smart PointersChapter 12: UtilitiesChapter 13: ContainersChapter 14: IteratorsChapter 15: StringsChapter 16: StreamsChapter 17: FilesystemsChapter 18: AlgorithmsChapter 19: Concurrency and ParallelismChapter 20: Network Programming with Boost AsioChapter 21: Writing Applications

    1 in stock

    £40.49

  • Advanced Python Scripting for ArcGIS Pro

    ESRI Press Advanced Python Scripting for ArcGIS Pro

    Out of stock

    Book SynopsisReady for something more complex? An easy-to-follow guide to writing specialized Python scripts and developing tools for spatial data in ArcGIS Pro. Advanced Python Scripting for ArcGIS Pro builds on Python Scripting for ArcGIS Pro (Esri Press, 2020). Learn how to create a geoprocessing tool out of your script and automate tasks in ArcGIS Pro, how to share your tools with others, as well as master a number of more specialized tasks. Some of the key topics you will learn include: Writing specialized scripts using ArcPy Creating Python script tools Writing Python toolboxes Sharing scripts and tools Managing Python packages and environments Creating custom functions and classes Migrating scripts and tools from ArcGIS Desktop to ArcGIS Pro NumPy, Pandas, and Matplotlib ArcGIS API for Python and Jupyter Notebook Helpful “points to remember,” key terms, and review questions are included at the end of each chapter to reinforce your understanding of Python. Companion data and exercises are available online. Advanced Python Scripting for ArcGIS Pro is perfect for more experienced developers who are looking to upgrade their skills. Don't forget to also check out Esri Press's other Python title: Python Scripting for ArcGIS Pro (9781589484993)Table of ContentsPreface Acknowledgments Chapter 1. Introducing advanced Python scripting Chapter 2. Creating Python functions and classes Chapter 3. Creating Python script tools Chapter 4. Python toolboxes Chapter 5. Sharing tools Chapter 6. Managing Python packages and environments Chapter 7. Essential Python modules and packages for geoprocessing Chapter 8. Migrating scripts from Python 2 to 3 Chapter 9. ArcGIS API for Python Index

    Out of stock

    £56.99

  • Efficient Linux at the Command Line

    O'Reilly Media Efficient Linux at the Command Line

    15 in stock

    Book SynopsisTake your Linux skills to the next level! Whether you're a system administrator, software developer, site reliability engineer, or enthusiastic hobbyist, this practical, hands-on book will help you work faster, smarter, and more efficiently.

    15 in stock

    £35.99

  • Elasticsearch in Action

    Manning Publications Elasticsearch in Action

    10 in stock

    Book SynopsisBuild powerful, production-ready search applications using the incredible features of Elasticsearch. In ElasticSearch in Action, Second Edition you will discover: Architecture, concepts, and fundamentals of Elasticsearch Installing, configuring and running Elasticsearch and Kibana Creating an index with custom settings Data types, mapping fundamentals, and templates Fundamentals of text analysis and working with text analyzers Indexing, deleting, and updating documents Indexing data in bulk and reindexing and aliasing operations Learning search concepts, relevancy scores and similarity algorithms Elasticsearch in Action, Second Edition teaches you to build scalable search applications using Elasticsearch. This completely new edition explores Elasticsearch fundamentals from the ground up. You'll deep dive into design principles, search architectures, and Elasticsearch's essential APIs. Every chapter is clearly illustrated with diagrams and hands-on examples. You'll even explore real-world use cases for full text search, data visualisations, and machine-learning. about the technology Modern search seems like magic. You type a few words and the search engine appears to know what you want. With the Elasticsearch near-real-time search and analytics engine, you can give your users this magical experience without having to do complex low-level programming or understand advanced data science algorithms. You just install it, tweak it, and get on with your work. about the book Elasticsearch in Action, Second Edition is a hands-on guide to developing fully functional search engines with Elasticsearch and Kibana. Rewritten for the latest version of Elasticsearch, this completely new second edition explores Elasticsearch's high-level architecture, reveals infrastructure patterns, and walks through the search and analytics capabilities of numerous Elasticsearch APIs. It covers dozens of awesome techniques, such as: Developing a multitude of search queries Working with various query types Enabling search results with sorting and pagination functionality Writing and working with advanced search queries Working analytics and aggregations Developing high level visualizations in Kibana Configuring and scaling the clusters, and tuning performance You'll quickly progress from the basics of installation and configuring clusters, to indexing documents, advanced aggregations, and putting your servers into production. By the time you're done, you'll be ready to build amazing search engines for your clients that take advantage of Elasticsearch's modern features. about the author Madhusudhan Konda is a full-stack lead engineer, architect, mentor, and conference speaker. He delivers live online training on Elasticsearch and the Elastic Stack. Trade Review'Elasticsearch is a complicated topic to master, but the author introduces all of Elasticsearch's tenets in a very relatable way, piece by piece, with lots of examples that can be executed in seconds.' Sergio Fernandez 'The author explains the content very well, with proper and accurate illustrations to assist.' Adam Wan 'A gentle introduction to the technology.' Giovanni CostagliolaTable of Contentstable of contents READ IN LIVEBOOK 1OVERVIEW READ IN LIVEBOOK 2GETTING STARTED READ IN LIVEBOOK 3ARCHITECTURE READ IN LIVEBOOK 4MAPPING READ IN LIVEBOOK 5WORKING WITH DOCUMENTS READ IN LIVEBOOK 6INDEXING OPERATIONS READ IN LIVEBOOK 7TEXT ANALYSIS 8 TERM LEVEL SEARCH 9 FULL TEXT SEARCH 10 ADVANCED SEARCH 11 AGGREGATIONS 12 KIBANA VISUALISATIONS 13 MACHINE LEARNING 14 TIME SERIES ANALYTICS 15 PERFORMANCE TUNING 16 ADMINISTRATION APPENDIXES READ IN LIVEBOOK APPENDIX A: INSTALLATION APPENDIX B: NATIVE CLIENTS APPENDIX C: HOSTING APPENDIX D: ELASTICSEARCH VS SOLR

    10 in stock

    £55.22

  • Prototyping for Designers

    O'Reilly Media Prototyping for Designers

    7 in stock

    Book SynopsisBy explaining the goals and methodologies behind prototyping-and demonstrating how to prototype for both physical and digital products-this practical guide helps beginning and intermediate designers become more comfortable with creating and testing prototypes early and often in the process.

    7 in stock

    £19.19

  • Fundamentals of DevOps and Software Delivery

    O'Reilly Media Fundamentals of DevOps and Software Delivery

    15 in stock

    Book SynopsisThis book is a guide to DevOps and software delivery: that is, a guide to the numerous tools and techniques that are required to take that application code and run it and maintain it in production, where it can generate value for your users and your company on an ongoing basis.

    15 in stock

    £41.99

  • Designing Elixir Systems With OTP

    The Pragmatic Programmers Designing Elixir Systems With OTP

    1 in stock

    Book SynopsisYou know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus. Elixir is gaining mindshare as the programming language you can use to keep you software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP. If you're using frameworks like Phoenix or Nerves, you're already experiencing the features that make Elixir an excellent language for today's demands. This book shows you how to go beyond simple programming to designing, and that means building the right layers. Embrace those data structures that work best in functional programs and use them to build functions that perform and compose well, layer by layer, across processes. Test your code at the right place using the right techniques. Layer your code into pieces that are easy to understand and heal themselves when errors strike. Of all Elixir's boons, the most important one is that it guides us to design our programs in a way to most benefit from the architecture that they run on. The experts do it and now you can learn to design programs that do the same.What You Need: Elixir Version 1.7 or greater.

    1 in stock

    £31.82

  • Introduction to Machine Learning Adaptive

    MIT Press Introduction to Machine Learning Adaptive

    1 in stock

    Book SynopsisA substantially revised fourth edition of a comprehensive textbook, including new coverage of recent advances in deep learning and neural networks.The goal of machine learning is to program computers to use example data or past experience to solve a given problem. Machine learning underlies such exciting new technologies as self-driving cars, speech recognition, and translation applications. This substantially revised fourth edition of a comprehensive, widely used machine learning textbook offers new coverage of recent advances in the field in both theory and practice, including developments in deep learning and neural networks.The book covers a broad array of topics not usually included in introductory machine learning texts, including supervised learning, Bayesian decision theory, parametric methods, semiparametric methods, nonparametric methods, multivariate analysis, hidden Markov models, reinforcement learning, kernel machines, graphical models, Bayesian estimatio

    1 in stock

    £57.00

  • Girl Decoded My Quest to Make Technology

    Penguin Books Ltd Girl Decoded My Quest to Make Technology

    10 in stock

    Book SynopsisRana el Kaliouby, Ph.D. is a pioneer in artificial emotional intelligence (EI), as well as the co-founder and CEO of Affectiva, the acclaimed startup spun off from the MIT Media Lab. She grew up in Cairo, Egypt, studying an undergraduate and master's degree in computer science at the American University in Cairo. She attended Cambridge University, where she earned her Ph.D. Her company works with more than a quarter of the companies in the Fortune Global 500. An acclaimed TED speaker, Rana was named by Forbes to their list of America's Top 50 Women in Tech and Fortune included her in their list of 40 Under 40.

    10 in stock

    £19.00

  • Using Subject Headings for Online Retrieval

    Emerald Publishing Limited Using Subject Headings for Online Retrieval

    15 in stock

    Book SynopsisUsing Subject Headings for Online Retrieval is an indispensable tool for online system designers who are grappling with developing new systems or refining existing ones. This ready reference describes subject analysis and subject searching in online catalogs, including the limitations of retrieval, and demonstrates how such limitations can be overcome through system design and programming. The practical reference also describes the Library of Congress Subject Headings (LCSH) system and system characteristics; it shows how information is stored in machine-readable files; and it offers examples of and recommendations for successful retrieval methods. Tables are included to support these recommendations, and diagrams, graphs, and bar charts are used to provide results of data analysis. Practitioners in institutions using or considering the installation of an online catalog will continuously consult this book to generate specifications. The book also appeals to researchers in library systeTrade Review"The well-designed empirical research presented here and the extensive use of reference citations throughout the book provide its readers with ample opportunities for scholarly discussion and further investigation in the area of subject access and OPAC user studies." --JOURNAL OF THE AMERICAN SOCIETY FOR INFORMATION SCIENCETable of ContentsSubject Analysis in Library Catalogs. Subject Authority Records in the Machine-Readable LCSH. Subject Information in Bibliographic Records. Subject Heading Compatibility between LCSH-mr and Bibliographic Files. Studies of the Subject Queries Users Enter into Online Systems. An Overview of User Queries. Queries for Topical Subjects That are Likely to Succeed. Other Queries Likely to Succeed. Queries for Topical Subjects Not Likely to Succeed. Other Queries Not Likely to Succeed. The Exact Approach to Subject Searching. Choosing among Existing Subject Search Approaches as Responses to User Queries. Search Trees for Subject Searching. The Future of Subject Headings for Online Information Retrieval. Appendix A: SULIRS Subject Search. Appendix B: ORION Subject Search. Appendix C: LS/2000 Subject Search. Appendix D: Multiple-Heading Match Categories. Index.

    15 in stock

    £116.99

  • Sketching User Experiences Getting the Design

    Elsevier Science Sketching User Experiences Getting the Design

    Out of stock

    Book SynopsisExplains design and design thinking as something distinct that needs to be better understood - by both designers and the people with whom they need to work - in order to achieve success with different products and systems. This title covers sketching and early prototyping design methods suitable for dynamic product capabilities.Trade Review"Bill Buxton and I share a common belief that design leadership together with technical leadership drives innovation. Sketching, prototyping, and design are essential parts of the process we use to create new products. Bill Buxton brings design leadership and creativity to Microsoft. Through his thought-provoking personal examples he is inspiring others to better understand the role of design in their own companies." --Bill Gates, Chairman, Microsoft"Informed design is essential.” While it might seem that Bill Buxton is exaggerating or kidding with this bold assertion, neither is the case. In an impeccably argued and sumptuously illustrated book, design star Buxton convinces us that design simply must be integrated into the heart of business." --Roger Martin, Dean, Rotman School of Management, University of Toronto "Design is explained, with the means and manner for successes and failures illuminated by engaging stories, true examples and personal anecdotes. In Sketching User Experiences, Bill Buxton clarifies the processes and skills of design from sketching to experience modeling, in a lively and informative style that is rich with stories and full of his own heart and enthusiasm. At the start we are lost in mountain snows and northern seas, but by the end we are equipped with a deep understanding of the tools of creative design." --Bill Moggridge, Cofounder of IDEO and author of Designing Interactions "I love this book. There are very few resources available that see across and through all of the disciplines involved in developing great experiences. This is complex stuff and Buxton's work is both informed and insightful. He shares the work in an intimate manner that engages the reader and you will find yourself nodding with agreement, and smiling at the poignant relevance of his examples." --Alistair Hamilton, Symbol Technologies, NY "Like any secret society, the design community has its strange rituals and initiation procedures. Bill opens up the mysteries of the magical process of design, taking us through a land in which story telling, orange squeezers, the Wizard of oOz, I-pods, avalanche avoidance, bicycle suspension sketching, and faking it are all points on the design pilgrim’s journey. There are lots of ideas and techniques in this book to feed good design and transform the way we think about creating useful stuff." --Peter GabrielTable of ContentsPART I: DESIGN AS DREAMCATCHERIntroductionCase Study: Apple, Design and BusinessThe Bossy RuleA Snapshot of TodayThe Role of DesignA Sketch of the ProcessThe Cycle of InnovationThe Question of ?Design?The Anatomy of SketchingClarity is not always the Path to EnlightenmentThe Larger Family of RenderingsExperience Design vs. Interface DesignSketching InteractionSketches are not PrototypesWhere is the User in all of this?You make that Sound like a Negative ThingIf Someone Made a Sketch in the Forest and Nobody Saw it?The Object of SharingAnnotation: Sketching on SketchesDesign Thinking and EcologyThe Second Worst Thing that Can HappenA River Runs Through ItPART II: STORIES OF METHODS AND MADNESSIntroductionThe Wonderful Wizard of OzChameleon: From Wizardry to Smoke-and-MirrorsLe Bricolage: Cobbling Things TogetherIt was a Dark and Stormy Night?Visual Story TellingSimple AnimationShoot the MimeSketch-a-MoveExtending Interaction: Real and IllusionThe Bifocal DisplayVideo InvisionmentInteracting with PaperAre you Talking to me?PART III: RECAPITULATION & CODASome Final ThoughtsPART IV: REFERENCES/BIBLIOGRAPHY

    Out of stock

    £37.99

  • FaultTolerant Systems

    Elsevier Science & Technology FaultTolerant Systems

    Out of stock

    Book SynopsisTable of Contents1. Preliminaries 2. Hardware Fault Tolerance 3. Information Redundancy 4. Fault-Tolerant Networks 5. Software Fault Tolerance 6. Checkpointing 7. Fault-Tolerance in Cyber-Physical Systems (CPS) 8. Case Studies 9. Simulation Techniques 10. Defect Tolerance in VLSI Circuits 11. Fault Detection in Cryptographic Systems

    Out of stock

    £67.49

  • Data Structures and Algorithm Analysis in Java

    Pearson Education (US) Data Structures and Algorithm Analysis in Java

    Book SynopsisMark Allen Weiss is Professor and Associate Director for the School of Computing and Information Sciences at Florida International University. He is also currently serving as both Director of Undergraduate Studies and Director of Graduate Studies. He received his Bachelor's Degree in Electrical Engineering from the Cooper Union in 1983, and his Ph.D. in Computer Science from Princeton University in 1987, working under Bob Sedgewick. He has been at FIU since 1987 and was promoted to Professor in 1996. His interests include data structures, algorithms, and education. He is most well-known for his highly-acclaimed Data Structures textbooks, which have been used for a generation by roughly a million students. Professor Weiss is the author of numerous publications in top-rated journals and was recipient of the University's Excellence in Research Award in 1994. In 1996 at FIU he was the first in the world to teach Data Structures using the Java programming language, which isTable of ContentsTable of Contents Chapter 1 Introduction 1.1 What’s the Book About? 1.2 Mathematics Review 1.2.1 Exponents 1.2.2 Logarithms 1.2.3 Series 1.2.4 Modular Arithmetic 1.2.5 The P Word 1.3 A Brief Introduction to Recursion 1.4 Implementing Generic Components Pre-Java 5 1.4.1 Using Object for Genericity 1.4.2 Wrappers for Primitive Types 1.4.3 Using Interface Types for Genericity 1.4.4 Compatibility of Array Types 1.5 Implementing Generic Components Using Java 5 Generics 1.5.1 Simple Generic Classes and Interfaces 1.5.2 Autoboxing/Unboxing 1.5.3 The Diamond Operator 1.5.4 Wildcards with Bounds 1.5.5 Generic Static Methods 1.5.6 Type Bounds 1.5.7 Type Erasure 1.5.8 Restrictions on Generics 1.6 Function Objects Summary Exercises References Chapter 2 Algorithm Analysis 2.1 Mathematical Background 2.2 Model 2.3 What to Analyze 2.4 Running Time Calculations 2.4.1 A Simple Example 2.4.2 General Rules 2.4.3 Solutions for the Maximum Subsequence Sum Problem 2.4.4 Logarithms in the Running Time 2.4.5 A Grain of Salt Summary Exercises References Chapter 3 Lists, Stacks, and Queues 3.1 Abstract Data Types (ADTs) 3.2 The List ADT 3.2.1 Simple Array Implementation of Lists 3.2.2 Simple Linked Lists 3.3 Lists in the Java Collections API 3.3.1 Collection Interface 3.3.2 Iterators 3.3.3 The List Interface, ArrayList, and LinkedList 3.3.4 Example: Using remove on a LinkedList 3.3.5 ListIterators 3.4 Implementation of ArrayList 3.4.1 The Basic Class 3.4.2 The Iterator and Java Nested and Inner Classes 3.5 Implementation of LinkedList 3.6 The Stack ADT 3.6.1 Stack Model 3.6.2 Implementation of Stacks 3.6.3 Applications 3.7 The Queue ADT 3.7.1 Queue Model 3.7.2 Array Implementation of Queues 3.7.3 Applications of Queues Summary Exercises Chapter 4 Trees 4.1 Preliminaries 4.1.1 Implementation of Trees 4.1.2 Tree Traversals with an Application 4.2 Binary Trees 4.2.1 Implementation 4.2.2 An Example: Expression Trees 4.3 The Search Tree ADT–Binary Search Trees 4.3.1 contains 4.3.2 findMin and findMax 4.3.3 insert 4.3.4 remove 4.3.5 Average-Case Analysis 4.4 AVL Trees 4.4.1 Single Rotation 4.4.2 Double Rotation 4.5 Splay Trees 4.5.1 A Simple Idea (That Does Not Work) 4.5.2 Splaying 4.6 Tree Traversals (Revisited) 4.7 B-Trees 4.8 Sets and Maps in the Standard Library 4.8.1 Sets 4.8.2 Maps 4.8.3 Implementation of TreeSet and TreeMap 4.8.4 An Example That Uses Several Maps Summary Exercises References Chapter 5 Hashing 5.1 General Idea 5.2 Hash Function 5.3 Separate Chaining 5.4 Hash Tables Without Linked Lists 5.4.1 Linear Probing 5.4.2 Quadratic Probing 5.4.3 Double Hashing 5.5 Rehashing 5.6 Hash Tables in the Standard Library 5.7 Hash Tables with Worst-Case O(1) Access 5.7.1 Perfect Hashing 5.7.2 Cuckoo Hashing 5.7.3 Hopscotch Hashing 5.8 Universal Hashing 5.9 Extendible Hashing Summary Exercises References Chapter 6 Priority Queues (Heaps) 6.1 Model 6.2 Simple Implementations 6.3 Binary Heap 6.3.1 Structure Property 6.3.2 Heap-Order Property 6.3.3 Basic Heap Operations 6.3.4 Other Heap Operations 6.4 Applications of Priority Queues 6.4.1 The Selection Problem 6.4.2 Event Simulation 6.5 d-Heaps 6.6 Leftist Heaps 6.6.1 Leftist Heap Property 6.6.2 Leftist Heap Operations 6.7 Skew Heaps 6.8 Binomial Queues 6.8.1 Binomial Queue Structure 6.8.2 Binomial Queue Operations 6.8.3 Implementation of Binomial Queues 6.9 Priority Queues in the Standard Library Summary Exercises References Chapter 7 Sorting 7.1 Preliminaries 7.2 Insertion Sort 7.2.1 The Algorithm 7.2.2 Analysis of Insertion Sort 7.3 A Lower Bound for Simple Sorting Algorithms 7.4 Shellsort 7.4.1 Worst-Case Analysis of Shellsort 7.5 Heapsort 7.5.1 Analysis of Heapsort 7.6 Mergesort 7.6.1 Analysis of Mergesort 7.7 Quicksort 7.7.1 Picking the Pivot 7.7.2 Partitioning Strategy 7.7.3 Small Arrays 7.7.4 Actual Quicksort Routines 7.7.5 Analysis of Quicksort 7.7.6 A Linear-Expected-Time Algorithm for Selection 7.8 A General Lower Bound for Sorting 7.8.1 Decision Trees 7.9 Decision-Tree Lower Bounds for Selection Problems 7.10 Adversary Lower Bounds 7.11 Linear-Time Sorts: Bucket Sort and Radix Sort 7.12 External Sorting 7.12.1 Why We Need New Algorithms 7.12.2 Model for External Sorting 7.12.3 The Simple Algorithm 7.12.4 Multiway Merge 7.12.5 Polyphase Merge 7.12.6 Replacement Selection Summary Exercises References Chapter 8 The Disjoint Set Class 8.1 Equivalence Relations 8.2 The Dynamic Equivalence Problem 8.3 Basic Data Structure 8.4 Smart Union Algorithms 8.5 Path Compression 8.6 Worst Case for Union-by-Rank and Path Compression 8.6.1 Slowly Growing Functions 8.6.2 An Analysis By Recursive Decomposition 8.6.3 An O(M log * N) Bound 8.6.4 An O( M α (M, N) ) Bound 8.7 An Application Summary Exercises References Chapter 9 Graph Algorithms 9.1 Definitions 9.1.1 Representation of Graphs 9.2 Topological Sort 9.3 Shortest-Path Algorithms 9.3.1 Unweighted Shortest Paths 9.3.2 Dijkstra’s Algorithm 9.3.3 Graphs with Negative Edge Costs 9.3.4 Acyclic Graphs 9.3.5 All-Pairs Shortest Path 9.3.6 Shortest-Path Example 9.4 Network Flow Problems 9.4.1 A Simple Maximum-Flow Algorithm 9.5 Minimum Spanning Tree 9.5.1 Prim’s Algorithm 9.5.2 Kruskal’s Algorithm 9.6 Applications of Depth-First Search 9.6.1 Undirected Graphs 9.6.2 Biconnectivity 9.6.3 Euler Circuits 9.6.4 Directed Graphs 9.6.5 Finding Strong Components 9.7 Introduction to NP-Completeness 9.7.1 Easy vs. Hard 9.7.2 The Class NP 9.7.3 NP-Complete Problems Summary Exercises References Chapter 10 Algorithm Design Techniques 10.1 Greedy Algorithms 10.1.1 A Simple Scheduling Problem 10.1.2 Huffman Codes 10.1.3 Approximate Bin Packing 10.2 Divide and Conquer 10.2.1 Running Time of Divide-and-Conquer Algorithms 10.2.2 Closest-Points Problem 10.2.3 The Selection Problem 10.2.4 Theoretical Improvements for Arithmetic Problems 10.3 Dynamic Programming 10.3.1 Using a Table Instead of Recursion 10.3.2 Ordering Matrix Multiplications 10.3.3 Optimal Binary Search Tree 10.3.4 All-Pairs Shortest Path 10.4 Randomized Algorithms 10.4.1 Random Number Generators 10.4.2 Skip Lists 10.4.3 Primality Testing 10.5 Backtracking Algorithms 10.5.1 The Turnpike Reconstruction Problem 10.5.2 Games Summary Exercises References Chapter 11 Amortized Analysis 11.1 An Unrelated Puzzle 11.2 Binomial Queues 11.3 Skew Heaps 11.4 Fibonacci Heaps 11.4.1 Cutting Nodes in Leftist Heaps 11.4.2 Lazy Merging for Binomial Queues 11.4.3 The Fibonacci Heap Operations 11.4.4 Proof of the Time Bound 11.5 Splay Trees Summary Exercises References Chapter 12 Advanced Data Structures and Implementation 12.1 Top-Down Splay Trees 12.2 Red-Black Trees 12.2.1 Bottom-Up Insertion 12.2.2 Top-Down Red-Black Trees 12.2.3 Top-Down Deletion 12.3 Treaps 12.4 Suffix Arrays and Suffix Trees 12.4.1 Suffix Arrays 12.4.2 Suffix Trees 12.4.3 Linear-Time Construction of Suffix Arrays and Suffix Trees 12.5 k-d Trees 12.6 Pairing Heaps Summary Exercises References Index

    £158.01

  • Software Development Pearls

    Pearson Education (US) Software Development Pearls

    1 in stock

    Book SynopsisKarl Wiegers is Principal Consultant with Process Impact, a software development consulting and training company in Happy Valley, Oregon. Previously, he spent eighteen years at Kodak, where he held positions as a photographic research scientist, software developer, software manager, and software process and quality improvement leader. Karl received a PhD in organic chemistry from the University of Illinois. Karl is the author of twelve previous books and has written many articles on software development, management, design, consulting, chemistry, and military history. Karl has served on the editorial board for IEEE Software magazine and as a contributing editor for Software Development magazine.Trade Review"This is a collection of lessons that Karl Wiegers has learned over his long and, I can say this honestly, distinguished career. It is a retrospective of all the good things (and some of the bad) he picked up along the way. However, this is not a recollection of 'It was like this in my day' aphorisms, but lessons that are relevant and will benefit anybody involved, even tangentially, in software development today. The book is surprising. It is not simply a list of pearls of wisdom--each lesson is carefully argued and explained. Each one carries an explanation of why it is important to you, and importantly, how you might bring the lesson to your reality." -- James Robertson, author of Mastering the Requirements Process "They say experience is the best teacher. But experience is fraught with danger, because you'll make many expensive mistakes along its path. And experience is also a slow teacher. Experience's final lessons come just before you graduate--into retirement! "Wouldn't it be great to gain a lifetime's experience early in your career, when it's most useful, without having to pay for the inevitable errors of your own experience? Much of Karl Wiegers's half-century in software and management has been as a consultant, where he's often been called upon to rectify debacles of other people's making. In Software Development Pearls, Karl lays out the most common and egregious types of maladies that he's run into. It's valuable to know where the most expensive potholes are and which potholes people keep hitting time and time again. "Not just a disaster correspondent, Karl is well versed in the best techniques of business analysis, software engineering, and project management. So from Karl's experience and knowledge you'll gain concise but important insights into how to recover from setbacks as well as how to avoid them in the first place. "Forty-six years ago I was lucky enough to stumble onto Fred Brooks's classic The Mythical Man-Month, which gave me tremendous insights into my new career. Karl's book is in a similar vein, but broader in scope and more relevant for today's world. My own half-century of experience confirms that he's right on the money with the lessons that he's chosen for Software Development Pearls." -- Meilir Page-Jones, Senior Business Analyst, Wayland Systems Inc. "Karl Wiegers has done it again! He's created yet another wonderful book full of well-rounded advice for software developers. His wisdom will be relatable to all development professionals and students--young and old, new and experienced. Although I've been doing software development for many years, this book brought timely reminders of things my team should do better. I cannot wait to have our new-to-the-job team members read this, so they can be better equipped in their learning journey. " Software Development Pearls is rooted in actual experiences from many years of real projects, with a dose of thorough research to back up the lessons. Many software development books are so dry to read, but as with all of Karl's books, he keeps it light and engaging, chock-full of relatable stories and a few funny comments. You can read it from front to back or just dive into a particular section that's relevant to the areas you're looking to improve today. An enjoyable read plus practical advice--you can't go wrong!" -- Joy Beatty, Vice President at Seilevel "Karl Wiegers's Software Development Pearls achieves the challenging goal of capturing and explaining many insights that you're unlikely to be exposed to in your training, that most practitioners learn through the school of hard knocks, and yet are critical to developing great software. "While the book's structure compels you to connect with your experience and identify how to shift your behavior as a result, it's the content that shines: a collection of 59+1 lessons that cover the broad landscape of the software development ecosystem. These insights will help you save time, collaborate more effectively, build better systems, and change your view on common misconceptions. Software Development Pearls is an easy read and is backed by a wide range of references to other experts who have discovered these same insights in their travels. "These lessons truly are pearls: timelessly valuable elements of wisdom to make you better at developing great software, regardless of your role. You might consider getting two copies of the book: one for yourself, and one to leave where others on the team can pick it up and discover their own pearls." -- Jim Brosseau, Clarrus "This is an excellent book for anyone involved in software development, whether they're business analysts, software project managers or QA professionals. One of the brilliant (and unusual) aspects of the book is the way it is organized into self-contained lessons. Once you read them, they work like memes--memorable chunks of distilled knowledge that spring to mind when you need them. (This happened to me recently when I was discussing the need for a requirements competency on agile projects with a senior executive and immediately thought of Lesson #8, 'The overarching objective of requirements development is clear and effective communication.') From personal experience, I can attest to the value of lessons like #22, 'Many system problems take place at the interfaces,' but only because I was burned badly by not paying enough attention to them. Anyone in software development eventually accumulates hard-won lessons like these about what to do (and not do) in the future. This book will get you there with much less pain. As Karl Wiegers says in Lesson #7, 'The cost of recording knowledge is small compared to the cost of acquiring knowledge.' Not only is that good advice for practitioners, it also neatly captures why you should buy this book." -- Howard Podeswa, author of The Agile Guide to Business Analysis and Planning: From Strategic Plan to Continuous Value DeliveryTable of ContentsForeword xixAcknowledgments xxiAbout the Author xxiii Chapter 1: Learning from Painful Experience 1 My Perspective 1 About the Book 2 A Note on Terminology 4 Your Opportunity 5 Chapter 2: Lessons About Requirements 7 Introduction to Requirements 7 First Steps: Requirements 11 Lesson 1: Get the requirements right or the project will fail 12 Lesson 2: Requirements development delivers shared understanding 15 Lesson 3: Stakeholder interests intersect at the requirements 17 Lesson 4: Favor a usage-centric approach to requirements 21 Lesson 5: Requirements development demands iteration 25 Lesson 6: Agile requirements aren't different from other requirements 28 Lesson 7: Recording knowledge is cheaper than acquiring it 33 Lesson 8: Requirements are about clear communication 37 Lesson 9: Requirements quality is in the eye of the beholder 41 Lesson 10: Requirements must be good enough to reduce risk 44 Lesson 11: People don't simply gather requirements 46 Lesson 12: Elicitation brings the customer's voice to the developer 51 Lesson 13: Telepathy and clairvoyance don't work 55 Lesson 14: Large groups have difficulty agreeing on requirements 57 Lesson 15: Avoid decibel prioritization 61 Lesson 16: Define scope to know whether your scope is creeping 64 Next Steps: Requirements 69 Chapter 3: Lessons About Design 71 Introduction to Design 71 First Steps: Design 75 Lesson 17: Design demands iteration 76 Lesson 18: It's cheaper to iterate at higher levels of abstraction 79 Lesson 19: Make products easy to use correctly, hard to use incorrectly 84 Lesson 20: You can't optimize all desirable quality attributes 87 Lesson 21: An ounce of design is worth a pound of recoding 92 Lesson 22: Many system problems take place at interfaces 94 Next Steps: Design 100 Chapter 4: Lessons About Project Management 103 Introduction to Project Management 103 First Steps: Project Management 108 Lesson 23: Work plans must account for friction 109 Lesson 24: Don't give anyone an estimate off the top of your head 114 Lesson 25: Icebergs are always larger than they first appear 116 Lesson 26: Data strengthens your negotiating position 121 Lesson 27: Use historical data to improve estimates 124 Lesson 28: Don't change an estimate just to make someone happy 127 Lesson 29: Stay off the critical path 129 Lesson 30: Incomplete tasks get no partial credit 132 Lesson 31: A project team needs flexibility to adapt to change 136 Lesson 32: Uncontrolled project risks will control you 140 Lesson 33: The customer is not always right 145 Lesson 34: We do too much pretending in software 149 Next Steps: Project Management 151 Chapter 5: Lessons About Culture and Teamwork 153 Introduction to Culture and Teamwork 153 First Steps: Culture and Teamwork 158 Lesson 35: Knowledge is not zero-sum 159 Lesson 36: Don't make commitments you know you can't fulfill 163 Lesson 37: Higher productivity requires training and better practices 166 Lesson 38: The flip side of every right is a responsibility 171 Lesson 39: Surprisingly little separation can inhibit communication 173 Lesson 40: Small-team approaches don't scale to large projects 177 Lesson 41: Address culture change during a change initiative 180 Lesson 42: Engineering techniques don't work with unreasonable people 185 Next Steps: Culture and Teamwork 187 Chapter 6: Lessons About Quality 189 Introduction to Quality 189 First Steps: Quality 194 Lesson 43: Pay for quality now or pay more later 195 Lesson 44: High quality naturally leads to higher productivity 200 Lesson 45: Organizations somehow find time to fix bad software 205 Lesson 46: Beware the crap gap 207 Lesson 47: Never let anyone talk you into doing a bad job 209 Lesson 48: Strive to have peers find defects 213 Lesson 49: A fool with a tool is an amplified fool 217 Lesson 50: Rushed development leads to maintenance nightmares 221 Next Steps: Quality 224 Chapter 7: Lessons About Process Improvement 225 Introduction to Process Improvement 225 First Steps: Software Process Improvement 228 Lesson 51: Watch out for "Management by Businessweek" 229 Lesson 52: Ask not, "What's in it for me?" Ask, "What's in it for us?" 233 Lesson 53: The best motivation for changing how people work is pain 236 Lesson 54: Steer change with gentle pressure, relentlessly applied 238 Lesson 55: Don't make all the mistakes other people already have 241 Lesson 56: Good judgment and experience can trump a process 244 Lesson 57: Shrink templates to fit your project 247 Lesson 58: Learn and improve so the next project goes better 252 Lesson 59: Don't do ineffective things repeatedly 256 Next Steps: Software Process Improvement 259 Chapter 8: What to Do Next 261 Lesson 60: You can't change everything at once 262 Action Planning 266 Your Own Lessons 267 Appendix: Summary of Lessons 269 References 273Index 285

    1 in stock

    £24.69

  • Patterns of Distributed Systems

    Pearson Education (US) Patterns of Distributed Systems

    15 in stock

    Book SynopsisUnmesh Joshi is a Principal Consultant at Thoughtworks with 22 years of industry experience. He is a software architecture enthusiast, who believes that understanding principles of distributed systems is as essential today as understanding web architecture or object-oriented programming was in the last decade. For the last two years he has been publishing patterns of distributed systems on martinfowler.com. He has also conducted various training sessions around this topic. Twitter: @unmeshjoshiTable of ContentsForeword xviiPreface xixAcknowledgments xxiiiAbout the Author xxv Part I: Narratives 1 Chapter 1: The Promise and Perils of Distributed Systems 3The Limits of a Single Server 3Separate Business Logic and Data Layer 5Partitioning Data 6A Look at Failures 7Replication: Masking Failures 9Defining the Term "Distributed Systems" 10The Patterns Approach 10 Chapter 2: Overview of the Patterns 13Keeping Data Resilient on a Single Server 14Competing Updates 15Dealing with the Leader Failing 17Multiple Failures Need a Generation Clock 21Log Entries Cannot Be Committed until They Are Accepted by a Majority Quorum 26Followers Commit Based on a High-Water Mark 29Leaders Use a Series of Queues to Remain Responsive to Many Clients 34Followers Can Handle Read Requests to Reduce Load on the Leader 40A Large Amount of Data Can Be Partitioned over Multiple Nodes 42Partitions Can Be Replicated for Resilience 45A Minimum of Two Phases Are Needed to Maintain Consistency across Partitions 46In Distributed Systems, Ordering Cannot Depend on System Timestamps 49A Consistent Core Can Manage the Membership of a Data Cluster 58Gossip Dissemination for Decentralized Cluster Management 62 Part II: Patterns of Data Replication 69 Chapter 3: Write-Ahead Log 71Problem 71Solution 71Examples 76 Chapter 4: Segmented Log 77Problem 77Solution 77Examples 79 Chapter 5: Low-Water Mark 81Problem 81Solution 81Examples 83 Chapter 6: Leader and Followers 85Problem 85Solution 85Examples 92 Chapter 7: HeartBeat 93Problem 93Solution 93Examples 98 Chapter 8: Majority Quorum 99Problem 99Solution 100Examples 102 Chapter 9: Generation Clock 103Problem 103Solution 104Examples 107 Chapter 10: High-Water Mark 109Problem 109Solution 109Examples 115 Chapter 11: Paxos 117Problem 117Solution 117Examples 132 Chapter 12: Replicated Log 133Problem 133Solution 133Examples 158 Chapter 13: Singular Update Queue 159Problem 159Solution 159Examples 166 Chapter 14: Request Waiting List 167Problem 167Solution 167Examples 173 Chapter 15: Idempotent Receiver 175Problem 175Solution 175Examples 181 Chapter 16: Follower Reads 183Problem 183Solution 183Examples 191 Chapter 17: Versioned Value 193Problem 193Solution 193Examples 201 Chapter 18: Version Vector 203Problem 203Solution 203Examples 216 Part III: Patterns of Data Partitioning 217 Chapter 19: Fixed Partitions 219Problem 219Solution 220Examples 241 Chapter 20: Key-Range Partitions 243Problem 243Solution 244Examples 255 Chapter 21: Two-Phase Commit 257Problem 257Solution 257Examples 297 Part IV: Patterns of Distributed Time 299 Chapter 22: Lamport Clock 301Problem 301Solution 301Examples 307 Chapter 23: Hybrid Clock 309Problem 309Solution 309Examples 316 Chapter 24: Clock-Bound Wait 317Problem 317Solution 318Examples 332 Part V: Patterns of Cluster Management 335 Chapter 25: Consistent Core 337Problem 337Solution 337Examples 342 Chapter 26: Lease 345Problem 345Solution 345Examples 354 Chapter 27: State Watch 355Problem 355Solution 355Examples 362 Chapter 28: Gossip Dissemination 363Problem 363Solution 363Examples 373 Chapter 29: Emergent Leader 375Problem 375Solution 375Examples 392 Part VI: Patterns of Communication between Nodes 393 Chapter 30: Single-Socket Channel 395Problem 395Solution 395Examples 397 Chapter 31: Request Batch 399Problem 399Solution 399Examples 404 Chapter 32: Request Pipeline 405Problem 405Solution 405Examples 408 References 409Index 413

    15 in stock

    £34.19

  • Software Architecture and DecisionMaking

    Pearson Education (US) Software Architecture and DecisionMaking

    1 in stock

    Book SynopsisSrinath Perera has been an Apache open source developer for the last 20 years. He has played a major role in the architecture of Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi), and WSO2 Choreo. He has designed two SOAP engines and helped build four. He is a committer (a developer who can commit to a code base) for Apache Axis, Axis2, Apache Geronimo, and Apache Airavata.   He joined WSO2 in 2009 after finishing his PhD. WSO2 products are used by many Fortune 500 companies such as airlines, banks, and governments. At WSO2, he has played an architecture review role for 10+ projects and 100+ releases. He reviewed hundreds of customer solution architectures and deployments and sat in on thousands of architecture reviews. He has published 40+ peer-reviewed research articles, which have been referenced by thousands of other research publications.Table of ContentsChapter 1: Introduction to Software Leadership 1 Role of Judgment 1 Goal of This Book 3 Part I: Introduction 6 Part II: Essential Background 7 Part III: System Design 7 Part IV: Putting Everything Together 8 Chapter 2: Understanding Systems, Design, and Architecture 9 What Is Software Architecture? 9 How to Design a System 11 Five Questions 12 Seven Principles: The Overarching Concepts 16 Designing for an Online Bookstore 24 Designing for the Cloud 27 Summary 29 Chapter 3: Mental Models for Understanding and Explaining System Performance 31 A Computer System 32 Models for Performance 33 Optimization Techniques 41 Intuitive Feel for Performance 46 Leadership Considerations 46 Summary 47 Chapter 4: Understanding User Experience (UX) 49 General UX Concepts for Architects 49 UX Design for Configurations 53 UX Design for APIs 54 UX Design for Extensions 56 Leadership Considerations 57 Summary 57 Chapter 5: Macro Architecture: Introduction 59 History of Macro Architecture 60 Modern Architectures 62 Macro Architectural Building Blocks 63 Leadership Considerations 66 Summary 68 Chapter 6: Macro Architecture: Coordination 69 Approach 1: Drive Flow from Client 69 Approach 2: Use Another Service 70 Approach 3: Use Centralized Middleware 71 Approach 4: Implement Choreography 71 Leadership Considerations 73 Summary 73 Chapter 7: Macro Architecture: Preserving Consistency of State 75 Why Transactions? 75 Why Do We Need to Go Beyond Transactions? 76 Going Beyond Transactions 77 Best Practices 80 Leadership Considerations 81 Summary 83 Chapter 8: Macro Architecture: Handling Security 85 User Management 86 Interaction Security 88 Storage, GDPR, and Other Regulations 96 Security Strategy and Advice 98 Leadership Considerations 101 Summary 103 Chapter 9: Macro Architecture: Handling High Availability and Scale 105 Adding High Availability 105 Understanding Scalability 109 Scaling for a Modern Architecture: Base Solution 110 Scaling: The Tools of Trade 111 Building Scalable Systems 113 Leadership Considerations 117 Summary 118 Chapter 10: Macro Architecture: Microservices Considerations 119 Decision 1: Handling Shared Database(s) 120 Decision 2: Securing Microservices 122 Decision 3: Coordinating Microservices 122 Decision 4: Avoiding Dependency Hell 122 Loosely Coupled, Repository-Based Teams as an Alternative to Microservices 125 Leadership Considerations 126 Summary 127 Chapter 11: Server Architectures 129 Writing a Service 129 Understanding Best Practices for Writing a Service 130 Understanding Advanced Techniques 132 Using These Techniques in Practice 143 Leadership Considerations 146 Summary 147 Chapter 12: Building Stable Systems 149 Why Do Systems Fail, and What Can We Do About Them? 149 How to Handle Known Errors 151 Common Bugs 159 How to Handle Unknown Errors 161 Graceful Degradation 163 Leadership Considerations 163 Summary 164 Chapter 13: Building and Evolving the Systems 165 Getting Your Hands Dirty 165 Communicating the Design 172 Evolving the System: How to Learn from Your Users and Improve the System 172 Leadership Considerations 175 Summary 176 Index 179

    1 in stock

    £23.99

  • Data Structures using Python

    OUP India Data Structures using Python

    Book SynopsisData Structures using Python provides an introduction to design, analysis, and implementation of data structures using the powerful language Python. This book is designed for a first course on the subject. It is written for the undergraduate engineering students of Computer Science, Information Technology and allied disciplines.The book begins with an overview of the concept, need, nomenclature followed by discussion of Arrays, Stacks, Queues, Double Ended Queues, Linked List - all under a chapter on Linear Data Structures. This is followed by a chapter on Non-linear Data Structures where Heap, Hash Table, Trie, and Disjoint Sets are discussed. Trees, though a non-linear data structure, is discussed as a separate chapter to emphasize upon its importance. The last few chapters of the book discusses Graphs, Searching, and Sorting finally ending with an appendix on Python built-in class functions.Table of Contents1. Data Structures-Introduction 1.1 Introduction 1.2 What is a Data Structure? 1.3 Why Do We Need Data Structures? 1.4 How to Study/Prepare Data Structures? Why Does It Appear Difficult? 1.5 Different Types of Data Structures 1.6 How to Select a Data Structure? 1.7 How are Data Structures Implemented? 1.8 Real-Life Scenarios for Data Structures 1.6 Difference Between Data Structures and Database Management Systems 2. Abstract Data Type and Analysis 2.1 Introduction- Abstract Data Type 2.2 Complexity 2.2.1 Time Complexity 2.2.2 Space Complexity 2.3 Asymptotic Notations 2.3.1 Big-O 2.3.2 Big-Omega 2.3.3 Big-Theta 2.3.4 Small-O 2.3.5 Small-Omega 2.4 Recursion 2.4.1 How does Recursion Work? 2.4.2 Inefficient Recursion 2.4.3 Tail Call Elimination 2.4.4 Analysis of Recursive Functions 2.5 Applications of Recursion 3. Linear Data Structures 3.1 Arrays-Introduction 3.2 Declaration of Arrays 3.3 Implementation 3.3.1 Insertion 3.3.2 Deletion 3.3.3 Merging 3.3.4 Some More Operations 3.3.5 Complexity Analysis 3.4 Applications 3.5 Python Sequences 4. Continuous Memory Based Linear Data Structures 4.1 Introduction 4.2 Stack 4.2.1 Working-Push Operation 4.2.2 Working-Pop Operation 4.2.3 Working-Top Operation 4.3 Implementation of Stack Using Pointers 4.4 Complex Operations 4.4.1 Searching 4.4.2 Sorting 4.4.3 Complexity Analysis 4.5 Applications of Stacks 4.5.1 Application: Infix-to-Postfix Conversion 4.5.2 Application: Evaluation of Prefix Expression 4.6 Queues 4.7 ingle-Ended Queues 4.7.1 Working-Enqueue Operation 4.7.2 Working-Dequeue Operation 4.7.3 Working-Front Operation 4.7.4 Implementation of Single-Ended Queues using Lists 4.7.5 Complex Operations 4.7.6 Circular Array-based Implementation of Single-ended Queues 4.8 Double-Ended Queues 4.8.1 Working: Push_Front Operation 4.8.2 Working: Push_Back Operation 4.8.3 Working: Pop-Front Operation 4.8.4 Working: Pop_Back Operation 4.8.5 Working: Front Operation 4.8.6 Working: Rear Operation 4.8.7 Implementation of a Deque 4.8.8 Complex Operations 4.8.9 Complexity Analysis 4.9 Priority Queues 4.9.1 Implementation of Priority Queues 4.1 Applications of Queues 4.10.1 Application: Check if a Given String is a Palindrome 5. Pointer-Based Linear Data Structures 5.1 Introduction to Linked Lists 5.2 Singly Linked Lists 5.2.1 Working-Insert Node Operation 5.2.2 Working-Delete Node Operation 5.2.3 Working-ValueAt Operation 5.2.4 Implementation of Singly Linked Lists 5.2.5 Complex Operations-Searching 5.2.6 Complex Operations-Sorting 5.2.7 Complexity Analysis 5.3 Doubly Linked Lists 5.3.1 Working-Insert Node Operation 5.3.2 Working-Delete Node Operation 5.3.3 Working-ValueAt Operation 5.3.4 Implementation of Doubly Linked Lists 5.3.5 Complexity Analysis 5.4 Circular Linked Lists 5.4.1 Working-Insert Node Operation 5.4.3 Implementation of Circular Linked Lists 5.4.4 Complexity Analysis 5.5 Applications of Linked Lists 6. Pointer Based Hierarchical Data Structures 6.1 Introduction-Non-Linear Data Structures 6.2 TREES 6.2.1 Definitions 6.3 Binary Trees 6.3.1 Types of Binary Trees 6.4 Implementation of Binary Trees 6.4.1 Pointer-based Implementation 6.4.2 Array-based Implementation 6.4.3 Linked List-based Implementation 6.5 Traversal 6.5.1 In-order Traversal 6.5.2 Pre-order Traversal 6.5.3 Post-order Traversal 6.5.4 Level-ordered Traversal 6.6 Basic Operations 6.6.1 Inserting a Node 6.6.2 Deleting a Node 6.7 Threaded Binary Trees 6.8 Applications of Trees 7. Search Trees 7.1 Introduction 7.2 Binary Search Trees 7.2.1 Operation-Search Value 7.2.2 Operation-Insert a Node 7.2.3 Operation-Delete a Node 7.2.4 Implementation of Binary Search Trees 7.2.5 Complexity Analysis 7.3 Avl Trees 7.3.1 Operation-Search Value 7.3.2 Operation- Insert a Node 7.3.3 Operation-Deleting a Node 7.3.4 Implementation of AVL Trees 7.3.5 Complexity Analysis 7.4 Red-Black Trees 7.4.1 Operation-Insertion 7.4.2 Operation-Delete a Node 7.4.3 Implementation of Red-Black Trees 7.4.4 Complexity Analysis 7.5 Splay Trees 7.5.1 Operation-'Search a Value' or 'Splay a Value' 7.5.2 Operation-Insert a Node 7.5.3 Operation-Delete a Node 7.5.4 Implementation of Splay Trees 7.5.5 Complexity Analysis 7.6 B-TREES 7.6.1 In-order Traversal 7.6.2 Operation-Search a Node 7.6.3 Operation-Insert a Node 7.6.4 Operation-Delete a Node 7.6.5 Implementation of B-Trees 7.6.6 Complexity Analysis 7.7 Applications of Search Trees 8. Priority Queues and Heaps 8.1 Introduction-Heap 8.2 Binary Heaps 8.2.1 Operation-Insertion 8.2.2 Operation-Deletion 8.2.3 Implementation of Max Heap 8.2.4 Complexity Analysis 8.3 Leftist Heaps 8.3.1 Operation-Merging 8.3.2 Operation-Insertion 8.3.3 Operation-Deletion 8.3.4 Implementation of Leftist Heaps 8.3.5 Complexity Analysis 8.4 Priority Queues Using Heaps 8.5 Applications of Heaps 9. Other Non-Linear Data Structures 9.1 Introduction-Non-Linear, Non-Hierarchical Data Structures 9.2 Trie 9.2.1 Insertion of a Key 9.2.2 Searching a Key 9.2.3 Implementation 9.2.4 Complexity Analysis 9.2.5 Applications of Trie 9.3 Dictionary 9.3.1 Inserting a Key and its Value 9.3.2 Deleting a Key along with Value 9.3.3 Merging Dictionaries 9.3.4 Handling Tabular Data 9.3.5 Implementation 9.3.6 Complexity 9.3.7 Applications of Dictionary 9.4 Hash Table 9.4.1 Linear Probing 9.4.2 Chaining the Elements 9.4.3 Implementation 9.4.4 Complexity 9.4.5 Applications of Hash Tables 9.5 Sets 9.5.1 Operation-Insertion of an Element 9.5.2 Operation-Removal of Elements 9.5.3 Binary Set Operations 9.5.4 Other Utility Functions 9.5.5 Implementation 9.5.6 Complexity Analysis 9.5.7 Applications of Set 9.5.8 Variants of Set Data Structure 9.5 Counter/Multisets 9.5.1 Accessing 9.5.2 Binary Operations on Counters 10. Memory Management 10.1 Introduction-Memory Management 10.2 Data Structures in Memory Management 10.3 B+ Trees 10.3.1 Working 10.3 Memory Hierarchy and Caching 11. Graphs 11.1 Graph-Introduction 11.2 Components of a Graph 11.4 Graph Representation 11.4.1 Linked List Based Representation 11.4.2 Matrix Based Representation 11.2.3 Pointer Based Representation 11.2.4 Performance Comparison of Graph Representation 11.3 Types of Graph 11.4 Working 11.4.1 Insertion of a node 11.4.2 Insertion of an edge 11.4.3 Deletion of an edge 11.4.4 Deletion of a node 11.5 Traversal 11.5.1 Depth First Search 11.5.2 Breadth First Search 11.7 Implementation of Graph 11.7.1 Adjacency List Based Representation 11.7.2 Adjacency Matrix Based Representation 11.7.3 Incidence Matrix Based Representation 11.8 Complexity Analysis 11.9 Topological Sorting 11.9.1 Implementation 11.9.2 Complexity Analysis 11.1 Spanning Tree 11.10.1 Kruskal Algorithm 11.10.2 Prim's Algorithm 11.11 Shortest Distance 11.11.1 Dijkstra's Algorithm 11.11.2 Floyd-Warshall Algorithm 11.12 Graph Connectivity 11.12 Applications Of Graph 12. Sorting 12.1 Introduction to Sorting 12.2 Importance of Sorting Algorithms 12.3 Exchange Sort 12.3.1 Bubble Sort 12.4 Selection Sort 12.4.1 Straight Selection Sort 12.4.2 Heap Sort 12.5 Insertion Sort 12.5.1 Simple Insertion Sort 12.5.2 Shell Sort 12.6 Divide and Conquer 12.6.1 Merge Sort 12.6.2 Quick Sort 12.7 Distributed Sort 12.7.1 Bucket Sort 12.7.2 Counting Sort 12.7.3 Radix Sort 12.8 Comparison of Sorts 13. Searching 13.1 Introduction-What is Searching? 13.2 Linear Search 13.2.1 Working 13.2.2 Implementation 13.3.3 Complexity Analysis 13.3 Binary Search 13.3.1 Working 13.3.2 Implementation 13.3.3 Complexity Analysis 13.4 Tree-Based Search 13.5 Hashing 13.5.1 Working 13.5.2 Problem of Collision 13.5.4 Implementation 13.5.5 Complexity Analysis 13.6 Case Studies of Searching Techniques ANNEXURE 1 - Python classes and built in Functions

    £75.99

  • Software Design Decoded 66 Ways Experts Think The

    MIT Press Ltd Software Design Decoded 66 Ways Experts Think The

    Book SynopsisAn engaging, illustrated collection of insights revealing the practices and principles that expert software designers use to create great software.What makes an expert software designer? It is more than experience or innate ability. Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software. The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, “Experts generate alternatives” is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful.Organized i

    £20.70

  • Cloud and Cognitive Computing A Machine Learning

    2 in stock

    £93.59

  • How to Design Programs  An Introduction to

    MIT Press How to Design Programs An Introduction to

    2 in stock

    Book SynopsisA completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming.This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it. Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language. For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as

    2 in stock

    £51.30

  • You Look Like a Thing and I Love You How

    Voracious You Look Like a Thing and I Love You How

    2 in stock

    Book Synopsis

    2 in stock

    £16.14

  • Reinventing Clinical Decision Support

    Taylor & Francis Ltd Reinventing Clinical Decision Support

    15 in stock

    Book SynopsisThis book takes an in-depth look at the emerging technologies that are transforming the way clinicians manage patients, while at the same time emphasizing that the best practitioners use both artificial and human intelligence to make decisions. AI and machine learning are explored at length, with plain clinical English explanations of convolutional neural networks, back propagation, and digital image analysis. Real-world examples of how these tools are being employed are also discussed, including their value in diagnosing diabetic retinopathy, melanoma, breast cancer, cancer metastasis, and colorectal cancer, as well as in managing severe sepsis.With all the enthusiasm about AI and machine learning, it was also necessary to outline some of criticisms, obstacles, and limitations of these new tools. Among the criticisms discussed: the relative lack of hard scientific evidence supporting some of the latest algorithms and the so-called black box problem. A chTable of ContentsDedicationContentsPrefaceAbout the AuthorsChapter 1: Clinical Reasoning and Diagnostic ErrorsChapter 2: The Promise of Artificial Intelligence and Machine LearningChapter 3: AI Criticisms, Obstacles, and LimitationsChapter 4: CDS Systems: Past, Present, and FutureChapter 5: Reengineering Data AnalyticsChapter 6: Will Systems Biology Transform Clinical Decision Support? Chapter 7: Precision MedicineChapter 8: Reinventing Clinical Decision Support: Case StudiesIndex

    15 in stock

    £54.14

  • Methods of Mathematical Modelling

    CRC Press Methods of Mathematical Modelling

    Out of stock

    Book SynopsisThis book features original research articles on the topic of mathematical modelling and fractional differential equations. The contributions, written by leading researchers in the field, consist of chapters on classical and modern dynamical systems modelled by fractional differential equations in physics, engineering, signal processing, fluid mechanics, and bioengineering, manufacturing, systems engineering, and project management.The book offers theory and practical applications for the solutions of real-life problems and will be of interest to graduate level students, educators, researchers, and scientists interested in mathematical modelling and its diverse applications.Features Presents several recent developments in the theory and applications of fractional calculus Includes chapters on different analytical and numerical methods dedicated to several mathematical equations Develops methods for Table of Contents1. Fractional Model of Vibration Equation. 2. Fractional Schrodinger Equations. 3. Fractional Advection-Dispersion Equations. 4. Fractional Model of Chemical Reactors. 5. Fractional Gas Dynamics Equations. 6. Fractional Model of Smoking Dynamics. 7. Fractional Riccati Differential Equations. 8. Fractional Model of Bloch Equations. 9. Fractional Model of Diffusion Equations. 10. Fractional Klein-Gordon Equations. 11. Fractional Fornberg-Whitham Equation. 12. Fractional Biological Population Model.

    Out of stock

    £137.75

  • CRC Press Fundamentals of Stochastic Models

    1 in stock

    Book SynopsisStochastic modeling is a set of quantitative techniques for analyzing practical systems with random factors. This area is highly technical and mainly developed by mathematicians. Most existing books are for those with extensive mathematical training; this book minimizes that need and makes the topics easily understandable.Fundamentals of Stochastic Models offers many practical examples and applications and bridges the gap between elementary stochastics process theory and advanced process theory. It addresses both performance evaluation and optimization of stochastic systems and covers different modern analysis techniques such as matrix analytical methods and diffusion and fluid limit methods. It goes on to explore the linkage between stochastic models, machine learning, and artificial intelligence, and discusses how to make use of intuitive approaches instead of traditional theoretical approaches.The goal is to minimize the mathematical background of readers that is required to understand the topics covered in this book. Thus, the book is appropriate for professionals and students in industrial engineering, business and economics, computer science, and applied mathematics.

    1 in stock

    £51.29

  • International Recent Issues about ECDIS

    Taylor & Francis Ltd International Recent Issues about ECDIS

    1 in stock

    Book SynopsisThe TransNav 2011 Symposium held at the Gdynia Maritime University, Poland in June 2011 has brought together a wide range of participants from all over the world. The program has offered a variety of contributions, allowing to look at many aspects of the navigational safety from various different points of view. Topics presented and discussed at the Symposium were: navigation, safety at sea, sea transportation, education of navigators and simulator-based training, sea traffic engineering, ship's manoeuvrability, integrated systems, electronic charts systems, satellite, radio-navigation and anti-collision systems and many others.This book is part of a series of six volumes and provides an overview of International recent issues about ECDIS, E-Navigation and Safety at Sea and is addressed to scientists and professionals involved in research and development of navigation, safety of navigation and sea transportation.Table of Contentse-Navigation ConceptECDISVisualization and Presentation of Navigational InformationData Transmission and Communication SystemsSafety at Sea

    1 in stock

    £92.14

  • Miscellaneous Problems in Maritime Navigation

    Taylor & Francis Ltd Miscellaneous Problems in Maritime Navigation

    1 in stock

    Book SynopsisThe TransNav 2011 Symposium held at the Gdynia Maritime University, Poland in June 2011 has brought together a wide range of participants from all over the world. The program has offered a variety of contributions, allowing to look at many aspects of the navigational safety from various different points of view. Topics presented and discussed at the Symposium were: navigation, safety at sea, sea transportation, education of navigators and simulator-based training, sea traffic engineering, ship's manoeuvrability, integrated systems, electronic charts systems, satellite, radio-navigation and anti-collision systems and many others.This book is part of a series of six volumes and provides an overview of Problems in Maritime Navigation, Transport and Shipping and is addressed to scientists and professionals involved in research and development of navigation, safety of navigation and sea transportation.Table of ContentsWeather Routing and Meteorological AspectsIce NavigationShip ConstructionShip Propulsion and Fuel EfficiencySafe Shipping and Environment in the Baltic Sea RegionOil Spill ResponseLarge Cetaceans

    1 in stock

    £92.14

  • Fundamental Modeling Concepts Effective

    John Wiley & Sons Inc Fundamental Modeling Concepts Effective

    15 in stock

    Book SynopsisTo develop information processing systems requires effective and efficient communication between many people. In order to understand requirements and design decisions, there is a need for a common conceptual model of the system: one that represents the architecture of the system.Table of ContentsForeword. Preface. 1 Introduction. 1.1 The need for communication. 1.2 The FMC Idea. 1.3 Outline of this book. 2 Compositional Structures. 2.1 An example: The travel agency. 2.2 Modeling the structure of a system. 2.3 Agents accessing storages. 2.4 Agents communicate via channels. 2.5 Summary. 2.6 Exercises. 3 Dynamic Structures. 3.1 Petrinets: Basic principles. 3.2 Conflicts and conditions. 3.3 Basic patterns. 3.4 Responsibilities and scope boundaries. 3.5 Summary. 3.6 Exercises. 4 Value Structures and Mind Maps. 4.1 Entity sets and relationships. 4.2 Cardinalities. 4.3 Predicates and roles. 4.4 Partitions. 4.5 Reification. 4.6 Summary. 4.7 Exercises. 5 FMC Basics: Summary. 6 Reinforcing the Concepts. 6.1 The meta model: A mind map to FMC. 6.2 Operational versus control state. 6.3 Block diagrams: Advanced concepts. 6.4 Petrinets: Advanced concepts. 6.5 Non-hierarchical transformations and semantic layers. 6.6 Exercises. 7 Towards Implementation Structures. 7.1 System structure versus software structure. 7.2 From Processor to processes. 7.3 Distribution, concurrency and synchronization. 7.4 From FMC to objects and classes. 7.5 Conceptual patterns versus software patterns. 8 Applying FMC in Your Daily Work. 8.1 Becoming comfortable with FMC. 8.2 Describing existing systems with FMC. 8.3 Using FMC in construction. 8.4 Using FMCdiagrams to support communication. 8.5 Guidelines for didactical modeling. 8.6 Cost and benefit of modeling. 9 Modeling and Visualization Guidelines. 9.1 Introduction. 9.2 Increasingt he reader’s perception. 9.3 Increasing comprehension. 9.4 Secondary notation, patterns and pitfalls. 10 Relationship with Other Modeling Approaches. 10.1 Comparing FMC with Structured Analysis. 10.2 FMC and the Unified Modeling Language. 11 A System of Server Patterns 247 11.1 Applicationdomain. 11.2 A pattern language for request processing servers. 11.3 Example applications. 11.4 Conclusion and further research. Epilogue. A Solutions. B Reference Sheets. C Glossary. References. Index.

    15 in stock

    £31.50

  • Reliability of Computer Systems Fault Tolerance

    John Wiley & Sons Inc Reliability of Computer Systems Fault Tolerance

    Out of stock

    Book SynopsisFault-tolerant computing is the use of redundant elements in a system's design which allow the system to continue functioning when a component fails. These safety-critical systems are built into transportation systems and network servers, among other items.Trade Review"...develops the principles of reliability and availability analysis for computer networks, culminating in a n introduction network design principles." (SciTech Book News, Vol. 26, No. 2, June 2002) "...a useful reference." (IEEE Computer-Review, August 2002) "The author has created a wonderful toolbox for systems engineers. So much is right here in one place, and organized effectively. I recommend this book to anyone working on networks or systems where reliability is a concern." (IIE Transactions on Quality and Reliability Engineering) "...very good practical hints...recommended for everyone who wants to learn either reliability fundamentals or know about the computer applications of reliability..." (Comsoc.org, April 2003)Table of ContentsPreface. 1 Introduction. 1.1 What is Fault-Tolerant Computing? 1.2 The Rise of Microelectronics and the Computer. 1.3 Reliability and Availability. 1.4 Organization of the Book. 2 Coding Techniques. 2.1 Introduction. 2.2 Basic Principles. 2.3 Parity-Bit Codes. 2.4 Hamming Codes. 2.5 Error-Detection and Retransmission Codes. 2.6 Burst Error-Correction Codes. 2.7 Reed–Solomon Codes. 2.8 Other Codes. 3 Redundancy, Spares, and Repairs. 3.1 Introduction. 3.2 Apportionment. 3.3 System Versus Component Redundancy. 3.4 Approximate Reliability Functions. 3.5 Parallel Redundancy. 3.6 An r-out-of-n Structure. 3.7 Standby Systems. 3.8 Repairable Systems. 3.9 RAID Systems Reliability. 3.10 Typical Commercial Fault-Tolerant Systems: Tandem and Stratus. 4 N-Modular Redundancy. 4.1 Introduction. 4.2 The History of N-Modular Redundancy. 4.3 Triple Modular Redundancy. 4.4 N-Modular Redundancy. 4.5 Imperfect Voters. 4.6 Voter Logic. 4.7 N-Modular Redundancy with Repair. 4.8 N-Modular Redundancy with Repair and Imperfect Voters. 4.9 Availability of N-Modular Redundancy with Repair and Imperfect Voters. 4.10 Microcode-Level Redundancy. 4.11 Advanced Voting Techniques. 5 Software Reliability and Recovery Techniques. 5.1 Introduction. 5.2 The Magnitude of the Problem. 5.3 Software Development Life Cycle. 5.4 Reliability Theory. 5.5 Software Error Models. 5.6 Reliability Models. 5.7 Estimating the Model Constants. 5.8 Other Software Reliability Models. 5.9 Software Redundancy. 5.10 Rollback and Recovery. 6 Networked Systems Reliability. 6.1 Introduction. 6.2 Graph Models. 6.3 Definition of Network Reliability. 6.4 Two-Terminal Reliability. 6.5 Node Pair Resilience. 6.6 All-Terminal Reliability. 6.7 Design Approaches. 7 Reliability Optimization. 7.1 Introduction. 7.2 Optimum Versus Good Solutions. 7.3 A Mathematical Statement of the Optimization Problem. 7.4 Parallel and Standby Redundancy. 7.5 Hierarchical Decomposition. 7.6 Apportionment. 7.7 Optimization at the Subsystem Level via Enumeration. 7.8 Bounded Enumeration Approach. 7.9 Apportionment as an Approximate Optimization Technique. 7.10 Standby System Optimization. 7.11 Optimization Using a Greedy Algorithm. 7.12 Dynamic Programming. 7.13 Conclusion. Appendix A Summary of Probability Theory. A1 Introduction. A2 Probability Theory. A3 Set Theory. A4 Combinatorial Properties. A5 Discrete Random Variables. A6 Continuous Random Variables. A7 Moments. A8 Markov Variables. Appendix B Summary of Reliability Theory. B1 Introduction. B2 Combinatorial Reliability. B3 Failure-Rate Models. B4 System Reliability. B5 Illustrative Example of Simplified Auto Drum Brakes. B5.6 Summary. B6 Markov Reliability and Availability Models. B7 Repairable Systems. B8 Laplace Transform Solutions of Markov Models. Appendix C Review of Architecture Fundamentals. C1 Introduction to Computer Architecture. C2 Logic Gates, Symbols, and Integrated Circuits. C3 Boolean Algebra and Switching Functions. C4 Switching Function Simplification. C5 Combinatorial Circuits. C6 Common Circuits: Parity-Bit Generators and Decoders. C7 Flip-Flops. C8 Storage Registers. Appendix D Programs for Reliability Modeling and Analysis. D1 Introduction. D2 Various Types of Reliability and Availability Programs. D3 Testing Programs. D4 Partial List of Reliability and Availability Programs. D5 An Example of Computer Analysis. Name Index. Subject Index.

    Out of stock

    £166.46

  • Embedded System Design

    John Wiley & Sons Inc Embedded System Design

    15 in stock

    Book SynopsisThis book introduces a modern approach to embedded system design, presenting software design and hardware design in a unified manner.Table of ContentsPreface. Introduction. Custom Single-Purpose Processors: Hardware. General-Purpose Processors: Software. Standard Single-Purpose Processors: Peripherals. Memory. Interfacing. Digital Camera Example. State Machine and Concurrent Process Models. Control Systems. IC Technology. Design Technology. Appendix A: Online Resources. Index.

    15 in stock

    £161.06

  • Design Through Verilog Hdl

    John Wiley & Sons Inc Design Through Verilog Hdl

    15 in stock

    Book SynopsisVerilog provides platforms for designs to be described at different layers of complexity, combine them in a seamless manner, test them at every stage and build up a bug-free design. This book intends to guide readers to master Verilog as an HDL and use it for design.Trade Review"…this book is surely welcome…due to its simple but efficient structure, the book can be used both in academia and in industry." (IEEE Circuits & Devices, July/August 2006) “...ideally suited for teaching digital hardware design techniques using a low-level programming language...highly recommended...” (Choice, Vol. 41, No. 8, April 2004) "…enables readers to master Verilog as an HDL for design...engages the readers at every stage through the variety and number of examples." (IEEE Solid-State Circuits Society Newsletter, January 2004)Table of ContentsPREFACE. ACKNOWLEDGEMENTS. 1 INTRODUCTION TO VLSI DESIGN. 1.1 INTRODUCTION. 1.2 CONVENTIONAL APPROACH TO DIGITAL DESIGN. 1.3 VLSI DESIGN. 1.4 ASIC DESIGN FLOW. 1.5 ROLE OF HDL. 2 INTRODUCTION TO VERILOG. 2.1 VERILOG AS AN HDL. 2.2 LEVELS OF DESIGN DESCRIPTION. 2.3 CONCURRENCY. 2.4 SIMULATION AND SYNTHESIS. 2.5 FUNCTIONAL VERIFICATION. 2.6 SYSTEM TASKS. 2.7 PROGRAMMING LANGUAGE INTERFACE (PLI). 2.8 MODULE. 2.9 SIMULATION AND SYNTHESIS TOOLS. 2.10 TEST BENCHES. 3 LANGUAGE CONSTRUCTS AND CONVENTIONS IN VERILOG. 3.1 INTRODUCTION. 3.2 KEYWORDS. 3.3 IDENTIFIERS. 3.4 WHITE SPACE CHARACTERS. 3.5 COMMENTS. 3.6 NUMBERS. 3.7 STRINGS. 3.8 LOGIC VALUES. 3.9 STRENGTHS. 3.10 DATA TYPES. 3.11 SCALARS AND VECTORS. 3.12 PARAMETERS. 3.13 MEMORY. 3.14 OPERATORS. 3.15 SYSTEM TASKS. 3.16 EXERCISES. 4 GATE LEVEL MODELING – 1. 4.1 INTRODUCTION. 4.2 AND GATE PRIMITIVE. 4.3 MODULE STRUCTURE. 4.4 OTHER GATE PRIMITIVES. 4.5 ILLUSTRATIVE EXAMPLES. 4.6 TRI-STATE GATES. 4.7 ARRAY OF INSTANCES OF PRIMITIVES. 4.8 ADDITIONAL EXAMPLES. 4.9 EXERCISES. 5 GATE LEVEL MODELING – 2. 5.1 INTRODUCTION. 5.2 DESIGN OF FLIP-FLOPS WITH GATE PRIMITIVES. 5.3 DELAYS. 5.4 STRENGTHS AND CONTENTION RESOLUTION. 5.5 NET TYPES. 5.6 DESIGN OF BASIC CIRCUITS. 5.7 EXERCISES. 6 MODELING AT DATA FLOW LEVEL. 6.1 INTRODUCTION. 6.2 CONTINUOUS ASSIGNMENT STRUCTURES. 6.3 DELAYS AND CONTINUOUS ASSIGNMENTS. 6.4 ASSIGNMENT TO VECTORS. 6.5 OPERATORS. 6.6 ADDITIONAL EXAMPLES. 6.7 EXERCISES. 7 BEHAVIORAL MODELING — 1. 7.1 INTRODUCTION. 7.2 OPERATIONS AND ASSIGNMENTS.0 7.3 FUNCTIONAL BIFURCATION.1 7.4 INITIAL CONSTRUCT. 7.5 ALWAYS CONSTRUCT. 7.6 EXAMPLES. 7.7 ASSIGNMENTS WITH DELAYS. 7.8 wait CONSTRUCT. 7.9 MULTIPLE ALWAYS BLOCKS. 7.10 DESIGNS AT BEHAVIORAL LEVEL. 7.11 BLOCKING AND NONBLOCKING ASSIGNMENTS. 7.12 THE case STATEMENT. 7.13 SIMULATION FLOW. 7.14 EXERCISES. 8 BEHAVIORAL MODELING II. 8.1 INTRODUCTION. 8.2 if AND if–else CONSTRUCTS. 8.3 assign–deassign CONSTRUCT. 8.4 repeat CONSTRUCT. 8.5 for LOOP. 8.6 THE disable CONSTRUCT. 8.7 while LOOP. 8.8 forever LOOP. 8.9 PARALLEL BLOCKS. 8.10 force–release CONSTRUCT. 8.11 EVENT. 8.12 EXERCISES. 9 FUNCTIONS, TASKS, AND USER-DEFINED PRIMITIVES. 9.1 INTRODUCTIUON. 9.2 FUNCTION. 9.3 TASKS. 9.4 USER-DEFINED PRIMITIVES (UDP).2 9.5 EXERCISES. 10 SWITCH LEVEL MODELING 305 10.1 INTRODUCTION. 10.2 BASIC TRANSISTOR SWITCHES.5 10.3 CMOS SWITCH. 10.4 BIDIRECTIONAL GATES. 10.5 TIME DELAYS WITH SWITCH PRIMITIVES. 10.6 INSTANTIATIONS WITH STRENGTHS AND DELAYS. 10.7 STRENGTH CONTENTION WITH TRIREG NETS. 10.8 EXERCISES. 11 SYSTEM TASKS, FUNCTIONS, AND COMPILER DIRECTIVES 339 11.1 INTRODUCTION. 11.2 PARAMETERS.9 11.3 PATH DELAYS. 11.4 MODULE PARAMETERS. 11.5 SYSTEM TASKS AND FUNCTIONS. 11.6 FILE-BASED TASKS AND FUNCTIONS. 11.7 COMPILER DIRECTIVES. 11.8 HIERARCHICAL ACCESS. 11.9 GENERAL OBSERVATIONS. 11.10 EXERCISES. 12 QUEUES, PLAS, AND FSMS. 12.1 INTRODUCTION. 12.2 QUEUES. 12.3 PROGRAMMABLE LOGIC DEVICES (PLDs). 12.4 DESIGN OF FINITE STATE MACHINES. 12.5 EXERCISES. APPENDIX A (Keywords and Their Significance). APPENDIX B (Truth Tables of Gates and Switches). REFERENCES. INDEX.

    15 in stock

    £119.65

© 2025 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account