Object-oriented programming (OOP) Books

187 products


  • C 6.0 Cookbook 4e

    O'Reilly Media C 6.0 Cookbook 4e

    3 in stock

    Book SynopsisCompletely updated for C# 6.0, the new edition of this bestseller offers more than 150 code recipes to common and not-so-common problems that C# programmers face every day. More than a third of the recipes have been rewritten to take advantage of new C# 6.0 features.

    3 in stock

    £35.19

  • Swift Development for the Apple Watch

    O'Reilly Media Swift Development for the Apple Watch

    2 in stock

    Book SynopsisIf you're comfortable using OS X, Xcode, and iOS-and familiar with Swift-this concise book shows you the basics of building your own apps for this wrist-mounted computer with Apple's WatchKit framework.

    2 in stock

    £16.99

  • Introduction to JavaScript Object Notation

    O'Reilly Media Introduction to JavaScript Object Notation

    3 in stock

    Book SynopsisThis concise guide helps busy IT professionals get up and running quickly with this popular data interchange format, and provides a deep understanding of how JSON works. Author Lindsay Bassett begins with an overview of JSON syntax, data types, formatting, and security concerns before exploring the many ways you can apply JSON today.

    3 in stock

    £19.19

  • Modern Java Recipes

    O'Reilly Media Modern Java Recipes

    1 in stock

    Book SynopsisWith more than 70 detailed recipes, author Ken Kousen shows you how to use the newest features of Java to solve a wide range of problems.

    1 in stock

    £29.99

  • DevOps Tools for Java Developers

    O'Reilly Media DevOps Tools for Java Developers

    1 in stock

    Book SynopsisThis practical guide helps you take advantage of microservices, serverless, and cloud native technologies using the latest DevOps techniques to simplify your build process and create hyperproductive teams.

    1 in stock

    £39.74

  • C Cookbook

    O'Reilly Media C Cookbook

    7 in stock

    Book SynopsisThis cookbook is packed full of recipes to help you solve issues for C# programming tasks you're likely to encounter. You'll learn tried-and-true techniques to help you achieve greater productivity and improve the quality of your code.

    7 in stock

    £39.74

  • O'Reilly Media Functional Programming with C

    15 in stock

    Book SynopsisWith concise, easy-to-read code that supports asynchronous, concurrent processing, aspects of functional programming have begun to appear in several traditionally object-oriented languages such as C# and Java. This practical book shows C# programmers how to use functional programming features without having to navigate an entirely new language.

    15 in stock

    £47.99

  • Concurrent, Real-Time and Distributed Programming

    ISTE Ltd and John Wiley & Sons Inc Concurrent, Real-Time and Distributed Programming

    Book SynopsisThis book provides an introduction to concurrent, real-time, distributed programming with Java object-oriented language support as an algorithm description tool. It describes in particular the mechanisms of synchronization (cooperative and competitive) and sharing of data (internal class, static variables) between threads in Java. He then discusses the use of Java for real-time applications. Consequently, a presentation of the RTSJ (Real Time Specification for Java) specification dedicated to the development of real-time applications in Java is also introduced in this book. Finally, a presentation of programming distributed in Java is presented in this book. We are particularly interested in communication using the TCP Sockets and high-level communication using Java Remote Method Invocation (RMI). The book also contains an annex which contains a practical set of application exercises in relation to the theme of the book. Knowledge of the Java language is a prerequisite for understanding the book.Table of Contents1. Introduction to threads in Java. 2. Threads Synchronization. 3. Real-time systems and real-time Java. 4. Distributed Programming in Java.

    £125.06

  • COBOL Software Modernization: From Principles to

    ISTE Ltd and John Wiley & Sons Inc COBOL Software Modernization: From Principles to

    Book SynopsisNowadays, billions of lines of code are in the COBOL programming language. This book is an analysis, a diagnosis, a strategy, a MDD method and a tool to transform legacy COBOL into modernized applications that comply with Internet computing, Service-Oriented Architecture (SOA) and the Cloud. It serves as a blueprint for those in charge of finding solutions to this considerable challenge.Table of ContentsACKNOWLEDGMENTS xi ACRONYMS xiii INTRODUCTION xvii CHAPTER 1. SOFTWARE MODERNIZATION: A BUSINESS VISION 1 1.1. Software-based business 1 1.2. Information-driven business 2 1.2.1. Adaptation to business 4 1.3. The case of tourism industry 7 1.4. IT progress acceleration 11 1.5. Legacy world 13 1.5.1. Exiting the legacy world 15 1.5.2. Legacy world professionals 16 1.6. Conclusions 18 CHAPTER 2. SOFTWARE MODERNIZATION: TECHNICAL ENVIRONMENT 21 2.1. Legacy system 21 2.2. Modernization 22 2.2.1. Replacement 24 2.2.2. Migration 25 2.2.3. Modernization versus migration 27 2.2.4. The superiority of white-box modernization 29 2.3. Software engineering principles underpinning modernization 31 2.3.1. Re-engineering in action 33 2.3.2. Re-engineering challenges 36 2.4. Conclusions 37 CHAPTER 3. STATUS OF COBOL LEGACY APPLICATIONS 39 3.1. OLTP versus batch programs 41 3.2. Mainframes 42 3.3. Data-driven design 43 3.4. COBOL degeneration principle 44 3.5. COBOL pitfalls 46 3.6. Middleware for COBOL 47 3.7. Moving COBOL OLTP/batch programs to Java 49 3.8. COBOL is not a friend of Java, and vice versa 51 3.9. Spaghetti code 52 3.9.1. Spaghetti code sample 53 3.9.2. Code comprehension 56 3.10. No longer COBOL? 57 3.11. Conclusions 58 CHAPTER 4. SERVICE-ORIENTED ARCHITECTURE (SOA) 59 4.1. Software architecture versus information system urbanization 59 4.2. Software architecture evolution 60 4.3. COBOL own style of software architecture 61 4.4. The one-way road to SOA 64 4.5. Characterization of SOA 66 4.5.1. Preliminary note 66 4.5.2. From objects to components and services 66 4.5.3. Type versus instance 67 4.5.4. Distribution concerns 68 4.5.5. Functional grouping 68 4.5.6. Granularity 69 4.5.7. Technology-centrism 70 4.5.8. Composition at design time (… is definitely modeling) 72 4.5.9. Composition at runtime 77 4.6. Conclusions 78 CHAPTER 5. SOA IN ACTION 79 5.1. Service as materialized component 81 5.2. Service as Internet resource 85 5.2.1. Pay-per-use service 87 5.2.2. Free service 89 5.2.3. Data feed service 90 5.3. High-end SOA 93 5.4. SOA challenges 95 5.5. The Cloud 97 5.5.1. COBOL in the Cloud 98 5.5.2. Computing is just resource consumption 99 5.5.3. Cloud computing is also resource consumption, but… 101 5.5.4. Everything as a service 102 5.5.5. SOA in the Cloud 104 5.5.6. The cloud counterparts 105 5.6. Conclusions 106 CHAPTER 6. MODEL-DRIVEN DEVELOPMENT (MDD) 109 6.1. Why MDD? 110 6.2. Models, intuitively 111 6.3. Models, formally 112 6.4. Models as computerized objects 113 6.5. Model-based productivity 118 6.6. Openness through standards 118 6.6.1. Model-Driven Architecture (MDA) 120 6.7. Models and people 121 6.8. Metamodeling 123 6.8.1. Metamodeling, put simply 123 6.9. Model transformation 125 6.10. Model transformation by example 125 6.11. From contemplative to executable models 126 6.12. Model execution in action 127 6.13. Toward Domain-Specific Modeling Languages (DSMLs) 129 6.14. Conclusions 132 CHAPTER 7. MODEL-DRIVEN SOFTWARE MODERNIZATION 135 7.1. Reverse and forward engineering are indivisible components of modernization 137 7.2. Architecture-Driven Modernization (ADM) 138 7.3. ASTM and KDM at a glance 142 7.4. Variations on ASTM 146 7.5. From ASTM to KDM 148 7.6. Variations on KDM 149 7.7. Automation 153 7.8. Conclusions 153 CHAPTER 8. SOFTWARE MODERNIZATION METHOD AND TOOL 155 8.1. BLU AGE overview 156 8.2. The toolbox 158 8.2.1. BLU AGE format required for forward engineering 160 8.2.2. Reverse tooling 162 8.3. BLU AGE as an ADM- and MDA-compliant tool 170 8.4. Modernization workflow 173 8.4.1. Initialization 173 8.4.2. Realization 182 8.4.3. Validation and deployment 187 8.5. Conclusions 188 CHAPTER 9. CASE STUDY 191 9.1. Case study presentation 192 9.2. Legacy modernization in action 195 9.2.1. Creating modernization project 196 9.2.2. Better dealing with the legacy material 196 9.2.3. Strategy for modernizing screens 202 9.2.4. Strategy for modernizing data items 203 9.2.5. Creating forward project 204 9.2.6. Entity extraction 207 9.2.7. From screens to pages and UI components 209 9.3. Annotations 209 9.4. Pattern definition 211 9.4.1. Pattern for simple statements 211 9.4.2. Patterns for operation calls 213 9.4.3. Patterns for operation calls with arguments 214 9.4. Database exchange modernization 216 9.5. Transmodeling 219 9.6. Transmodeling complex functionalities 226 9.6.1. Transmodeling the “custCost” program 228 9.6.2. Modernizing “Add a new reservation” 233 9.7. Application generation and testing 234 9.8. Conclusions 235 BIBLIOGRAPHY 239 INDEX 243

    £125.06

  • Das C++ Tutorial: Crash-Kurs und Repetitorium für

    Springer Das C++ Tutorial: Crash-Kurs und Repetitorium für

    1 in stock

    Book SynopsisDieses Tutorial hilft nicht nur Ingenieuren und Naturwissenschaftlern beim schnellen Einstieg und der Vertiefung in die Programmierung mit C++. Kommentierte Aufgaben, lebensnahe Beispiele und eine kompakte sowie systematische Struktur zeichnen dieses Buch aus.Table of ContentsGrundlagen.- Erste Schritte und strukturiertes Programmieren.- Prozedurales Programmieren.- Funktionen.- Algorithmen.- Modulares Programmieren.- Objektorientiertes Programmieren.- Klassen - Grundlagen.- Klassen - Vererbung und Polymorphie.- Generisches Programmieren: Templates.- Ausnahmebehandlungen.

    1 in stock

    £21.84

  • Java üben mit dem Plotter: Ein Überblick für

    Springer Fachmedien Wiesbaden Java üben mit dem Plotter: Ein Überblick für

    1 in stock

    Book SynopsisDieses essential zeigt, wie man in Java-Anwendungen mit dem Plotter grafische Darstellungen erzeugen kann. Mit dem Plotter-Objekt – angelehnt an den Stiftplotter, der sich mit Steuerbefehlen über Papier bewegt – wird eine einfache Schnittstelle zur grafischen Programmierung angeboten. Bereits beim Einstieg in die Programmierung entstehen so erste grafische Darstellungen wie z.B. Funktionsverläufe und Simulationsergebnisse. Durch einfache Programmierbeispiele und Aufgaben wird der Umgang mit grundlegenden Konzepten wie Variablen, Kontrollstrukturen, Methoden und Klassen geübt. Table of ContentsJava Plotter – grafische Darstellung mit unterschiedlichen Linienarten und Farben.- Beispiele mit Quell-Code – LineStyle Demo, Spirale und mehr.- Übungsaufgaben zu Kurven, Simulationen mit Zufallszahlen und Feldern.

    1 in stock

    £11.77

  • Springer International Publishing AG Foundations of Programming Languages

    1 in stock

    Book SynopsisThis clearly written textbook provides an accessible introduction to the three programming paradigms of object-oriented/imperative, functional, and logic programming. Highly interactive in style, the text encourages learning through practice, offering test exercises for each topic covered. Review questions and programming projects are also presented, to help reinforce the concepts outside of the classroom. This updated and revised new edition features new material on the Java implementation of the JCoCo virtual machine.Topics and features: includes review questions and solved practice exercises, with supplementary code and support files available from an associated website; presents an historical perspective on the models of computation used in implementing the programming languages used today; provides the foundations for understanding how the syntax of a language is formally defined by a grammar; illustrates how programs execute at the level of assembly language, through the implementation of a stack-based Python virtual machine called JCoCo and a Python disassembler; introduces object-oriented languages through examples in Java, functional programming with Standard ML, and programming using the logic language Prolog; describes a case study involving the development of a compiler for the high level functional language Small, a robust subset of Standard ML.Undergraduate students of computer science will find this engaging textbook to be an invaluable guide to the skills and tools needed to become a better programmer. While the text assumes some background in an imperative language, and prior coverage of the basics of data structures, the hands-on approach and easy to follow writing style will enable the reader to quickly grasp the essentials of programming languages, frameworks, and architectures.Table of ContentsIntroductionSyntaxAssembly LanguageObject-Oriented ProgrammingFunctional ProgrammingCompiling Standard MLLogic ProgrammingStandard ML Type InferenceAppendix A: The JCoCo Virtual Machine Specification Appendix B: The Standard ML Basis Library

    1 in stock

    £51.15

  • Taylor & Francis Ltd Delphi Made Simple

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £22.49

  • Taylor & Francis Inc Programming in C for Engineering and Science

    15 in stock

    Book SynopsisDeveloped from the author's many years of teaching computing courses, Programming in C++ for Engineering and Science guides students in designing programs to solve real problems encountered in engineering and scientific applications. These problems include radioactive decay, pollution indexes, digital circuits, differential equations, Internet addresses, data analysis, simulation, quality control, electrical networks, data encryption, beam deflection, and many other areas. To make it easier for novices to develop programs, the author uses an object-centered design approach that helps students identify the objects in a problem and the operations needed; develop an algorithm for processing; implement the objects, operations, and algorithm in a program; and test, correct, and revise the program. He also revisits topics in greater detail as the text progresses. By the end of the book, students will have a solid understanding of how C++ can be used to Trade Review"The book is lavishly illustrated with examples and exercises, which would make it both an ideal course companion and a book for private study. The author’s abilities to explain briefly the history of computing and to write an engaging text are to be commended. If you buy only one text on programming in C++, then this should be the one for you."—Carl M. O’Brien, International Statistical Review (2013), 81Table of ContentsIntroduction to Computing. Programming and Problem Solving—Software Engineering. Types in C++. Getting Started with Expressions. Control Structures. Functions and Libraries. Using Classes. More Selection Control Structures. More Repetition Control Structures. Functions in Depth. Files and Streams. Arrays and the vector Class Template. Multidimensional Arrays and Vectors. Building Classes. Pointers and Linked Structures. Data Structures. Answers to Test Yourself Questions. Appendices.

    15 in stock

    £90.24

  • Cambridge University Press UML by Example

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £47.49

  • Cambridge University Press Information Systems Engineering

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £48.44

  • Cambridge University Press Foundations of ComponentBased Systems

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £46.54

  • Cambridge University Press Formal Methods for Distributed Processing

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £45.59

  • Cambridge University Press An Introduction to Computational Physics

    15 in stock

    Book SynopsisThis advanced textbook, revised for its second edition, provides an introduction to the methods and tools of computational physics, and offers an overview of progress in scientific computing. Important concepts are illustrated with relevant step-by-step examples with exercises.Trade ReviewReview of the hardback: 'This is an excellent textbook for course on computational physics and scientific computation.' Zentralblatt MATHTable of ContentsPreface to first edition; Preface; Acknowledgements; 1. Introduction; 2. Approximation of a function; 3. Numerical calculus; 4. Ordinary differential equations; 5. Numerical methods for matrices; 6. Spectral analysis; 7. Partial differential equations; 8. Molecular dynamics simulations; 9. Modeling continuous systems; 10. Monte Carlo simulations; 11. Genetic algorithm and programming; 12. Numerical renormalization; References; Index.

    15 in stock

    £33.24

  • Cambridge University Press ObjectOriented Programming with Visual Basic.NET

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £47.49

  • Cambridge University Press The Object Primer Agile ModelDriven Development With Uml 20

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £56.99

  • Cambridge University Press Tried and True Object Development

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £60.79

  • Cambridge University Press Fundamentals of OOP and Data Structures in Java

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £71.24

  • Cambridge University Press Hardcore JFC

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £60.79

  • Cambridge University Press Mastering ENVYDeveloper

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £64.59

  • Cambridge University Press C Design Patterns and Derivatives Pricing 2 Mathematics Finance and Risk Series Number 2

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £56.99

  • Cambridge University Press Steps in Scala An Introduction to ObjectFunctional Programming

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £46.61

  • Cambridge University Press Steps in Scala An Introduction to ObjectFunctional Programming

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £63.65

  • Cambridge University Press Foundations of ComponentBased Systems

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £76.94

  • Cambridge University Press Formal Methods for Distributed Processing

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £128.25

  • Cambridge University Press More C Gems 17 SIGS Reference Library Series Number 17

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £71.24

  • Cambridge University Press The Road to the Unified Software Development Process 18 SIGS Reference Library Series Number 18

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £57.94

  • Cambridge University Press Uml XtraLight How to Specify your Software Requirements 23 SIGS Managing Object Technology Series Number 23

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £32.29

  • Cambridge University Press The Elements of C Style

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £21.99

  • Introductory Programming with ObjectOriented C

    John Wiley & Sons Inc Introductory Programming with ObjectOriented C

    10 in stock

    Book SynopsisA gentle introductory programming book written specifically to teach readers to use objects for the very beginning, rather than starting with structured programming. Perfect for structure programmers that need to learn the object-oriented perspective. Covers the fundamentals of C++ and gives a firm grounding in the object-oriented paradigm. Begins with the systems development life cycle and demonstrates where the software development cycle fits within it.Table of ContentsSoftware Development: The Organizational Process. Software Development: The Programming Process. The Role of Binary. Introducing the Object-Oriented Paradigm. Anatomy of a C++ Program. Variables. Declaring Member Functions. Writing and Using Member Functions. Stream I/O. File I/O. Doing Arithmetic. Making Decisions. Repeating Actions. Introducing Arrays. Arrays of Objects. Strings. Pointers. Inheritance. Linked Lists. Overloading. Templates. Summing Up. Glossary. Index.

    10 in stock

    £150.26

  • Java Programming

    John Wiley & Sons Inc Java Programming

    10 in stock

    Book SynopsisThis introduction to Java programming features a business focus. It discusses what it means to be object oriented, how to structure classes, and how to write methods using Java''s structured programming elements. After outlining the elements of a complete Java program, the book moves on to advanced topics such as writing event-driven GUI programs, preparing applets for the Web, one- and two-dimensional arrays, animation, and more. Files from the book will be available on the Web.Table of ContentsIntroducing Java and the Object-Oriented Paradigm. Running Java. Variables and Data Types. Writing and Using Methods (Part I). Writing Methods (Part II). Inheritance. Event-Driven Programming and the Graphic User Interface. Arrays and Vectors. Containers. Applets. Enhancing the GUI. File I/O and Exception Handling. Images, Animation, and Threads. Glossary. Index.

    10 in stock

    £136.80

  • A Practical Introduction to ObjectOriented Design

    John Wiley & Sons Inc A Practical Introduction to ObjectOriented Design

    10 in stock

    Book SynopsisThis text details the use of inheritance, object libraries, design patterns and notations, and library class creation. It discusses language and programming features like exception handling, and interprocess communication. It also contains material from software engineering and object-orientation.Table of ContentsWhat Is Object-Oriented Design? A Simple Example of Object-Oriented Design. Implementing an Object-Oriented Design. How to Use C++ Effectively. Designing with Inheritance. Design Notations. Using Object-Oriented Libraries. Debugging and Testing. Graphical Application Concepts. Designing Graphical Applications. User-Interface Design. Creating Object Libraries. Design Patterns. Multiple-Processs Programming. Software Engineering. Writing Larger Systems. Appendices. Index.

    10 in stock

    £155.66

  • Java Programming  From Problem Analysis to Program Design

    Cengage Learning, Inc Java Programming From Problem Analysis to Program Design

    7 in stock

    Book SynopsisDesigned for a first Computer Science (CS1) Java course, JAVA PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN 5e will motivate readers while building a cornerstone for the Computer Science curriculum. With a focus on readers' learning, this text approaches programming using the latest version of Java, and includes updated programming exercises and programs. The engaging and clear-cut writing style will help readers learn key concepts through concise explanations and practice in this complex and powerful language.

    7 in stock

    £212.01

  • John Wiley & Sons Inc Big C

    10 in stock

    Book SynopsisTable of ContentsPreface iii Special Features xxiv 1 Introduction 1 1.1 What is Programming? 2 1.2 The Anatomy of a Computer 3 C&S Computers are Everywhere 5 1.3 Machine Code and Programming Languages 5 C&S Standards Organizations 7 1.4 Becoming Familiar with Your Programming Environment 7 PT 1 Backup Copies 10 1.5 Analyzing Your First Program 11 CE 1 Omitting Semicolons 13 ST 1 Escape Sequences 13 1.6 Errors 14 CE 2 Misspelling Words 15 1.7 PROBLEM SOLVING Algorithm Design 16 The Algorithm Concept 16 An Algorithm for Solving an Investment Problem 17 Pseudocode 18 From Algorithms to Programs 19 HT 1 Describing an Algorithm with Pseudocode 19 WE 1 Writing an Algorithm for Tiling a Floor 21 2 Fundamental Data Types 25 2.1 Variables 26 Variable Definitions 26 Number Types 28 Variable Names 29 The Assignment Statement 30 Constants 31 Comments 31 CE 1 Using Undefined Variables 33 CE 2 Using Uninitialized Variables 33 PT 1 Choose Descriptive Variable Names 33 PT 2 Do Not Use Magic Numbers 34 ST 1 Numeric Types in C++ 34 ST 2 Numeric Ranges and Precisions 35 ST 3 Defining Variables with auto 35 2.2 Arithmetic 36 Arithmetic Operators 36 Increment and Decrement 36 Integer Division and Remainder 36 Converting Floating-Point Numbers to Integers 37 Powers and Roots 38 CE 3 Unintended Integer Division 39 CE 4 Unbalanced Parentheses 40 CE 5 Forgetting Header Files 40 CE 6 Roundoff Errors 41 PT 3 Spaces in Expressions 42 ST 4 Casts 42 ST 5 Combining Assignment and Arithmetic 42 C&S The Pentium Floating-Point Bug 43 2.3 Input and Output 44 Input 44 Formatted Output 45 2.4 PROBLEM SOLVING First Do It By Hand 47 WE 1 Computing Travel Time 48 HT 1 Carrying out Computations 48 WE 2 Computing the Cost of Stamps 51 2.5 Strings 51 The string Type 51 Concatenation 52 String Input 52 String Functions 52 C&S International Alphabets and Unicode 55 3 Decisions 59 3.1 The if Statement 60 CE 1 A Semicolon After the if Condition 63 PT 1 Brace Layout 63 PT 2 Always Use Braces 64 PT 3 Tabs 64 PT 4 Avoid Duplication in Branches 65 ST 1 The Conditional Operator 65 3.2 Comparing Numbers and Strings 66 CE 2 Confusing = and == 68 CE 3 Exact Comparison of Floating-Point Numbers 68 PT 5 Compile with Zero Warnings 69 ST 2 Lexicographic Ordering of Strings 69 HT 1 Implementing an if Statement 70 WE 1 Extracting the Middle 72 C&S Dysfunctional Computerized Systems 72 3.3 Multiple Alternatives 73 ST 3 The switch Statement 75 3.4 Nested Branches 76 CE 4 The Dangling else Problem 79 PT 6 Hand-Tracing 79 3.5 PROBLEM SOLVING Flowcharts 81 3.6 PROBLEM SOLVING Test Cases 83 PT 7 Make a Schedule and Make Time for Unexpected Problems 84 3.7 Boolean Variables and Operators 85 CE 5 Combining Multiple Relational Operators 88 CE 6 Confusing && and || Conditions 88 ST 4 Short-Circuit Evaluation of Boolean Operators 89 ST 5 De Morgan’s Law 89 3.8 APPLICATION Input Validation 90 C&S Artificial Intelligence 92 4 Loops 95 4.1 The while Loop 96 CE 1 Infinite Loops 100 CE 2 Don’t Think “Are We There Yet?” 101 CE 3 Off-by-One Errors 101 C&S The First Bug 102 4.2 PROBLEM SOLVING Hand-Tracing 103 4.3 The for Loop 106 PT 1 Use for Loops for Their Intended Purpose Only 109 PT 2 Choose Loop Bounds That Match Your Task 110 PT 3 Count Iterations 110 4.4 The do Loop 111 PT 4 Flowcharts for Loops 111 4.5 Processing Input 112 Sentinel Values 112 Reading Until Input Fails 114 ST 1 Clearing the Failure State 115 ST 2 The Loop-and-a-Half Problem and the break Statement 116 ST 3 Redirection of Input and Output 116 4.6 PROBLEM SOLVING Storyboards 117 4.7 Common Loop Algorithms 119 Sum and Average Value 119 Counting Matches 120 Finding the First Match 120 Prompting Until a Match is Found 121 Maximum and Minimum 121 Comparing Adjacent Values 122 HT 1 Writing a Loop 123 WE 1 Credit Card Processing 126 4.8 Nested Loops 126 WE 2 Manipulating the Pixels in an Image 129 4.9 PROBLEM SOLVING Solve a Simpler Problem First 130 4.10 Random Numbers and Simulations 134 Generating Random Numbers 134 Simulating Die Tosses 135 The Monte Carlo Method 136 C&S Digital Piracy 138 5 Functions 141 5.1 Functions as Black Boxes 142 5.2 Implementing Functions 143 PT 1 Function Comments 146 5.3 Parameter Passing 146 PT 2 Do Not Modify Parameter Variables 148 5.4 Return Values 148 CE 1 Missing Return Value 149 ST 1 Function Declarations 150 HT 1 Implementing a Function 151 WE 1 Generating Random Passwords 152 WE 2 Using a Debugger 152 5.5 Functions Without Return Values 153 5.6 PROBLEM SOLVING Reusable Functions 154 5.7 PROBLEM SOLVING Stepwise Refinement 156 PT 3 Keep Functions Short 161 PT 4 Tracing Functions 161 PT 5 Stubs 162 WE 3 Calculating a Course Grade 163 5.8 Variable Scope and Global Variables 163 PT 6 Avoid Global Variables 165 5.9 Reference Parameters 165 PT 7 Prefer Return Values to Reference Parameters 169 ST 2 Constant References 170 5.10 Recursive Functions (Optional) 170 HT 2 Thinking Recursively 173 C&S The Explosive Growth of Personal Computers 174 6 Arrays and Vectors 179 6.1 Arrays 180 Defining Arrays 180 Accessing Array Elements 182 Partially Filled Arrays 183 CE 1 Bounds Errors 184 PT 1 Use Arrays for Sequences of Related Values 184 C&S Computer Viruses 185 6.2 Common Array Algorithms 185 Filling 186 Copying 186 Sum and Average Value 186 Maximum and Minimum 187 Element Separators 187 Counting Matches 187 Linear Search 188 Removing an Element 188 Inserting an Element 189 Swapping Elements 190 Reading Input 191 ST 1 Sorting with the C++ Library 192 ST 2 A Sorting Algorithm 192 ST 3 Binary Search 193 6.3 Arrays and Functions 194 ST 4 Constant Array Parameters 198 6.4 PROBLEM SOLVING Adapting Algorithms 198 HT 1 Working with Arrays 200 WE 1 Rolling the Dice 203 6.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 203 6.6 Two-Dimensional Arrays 206 Defining Two-Dimensional Arrays 207 Accessing Elements 207 Locating Neighboring Elements 208 Computing Row and Column Totals 208 Two-Dimensional Array Parameters 210 CE 2 Omitting the Column Size of a Two-Dimensional Array Parameter 212 WE 2 A World Population Table 213 6.7 Vectors 213 Defining Vectors 214 Growing and Shrinking Vectors 215 Vectors and Functions 216 Vector Algorithms 216 Two-Dimensional Vectors 218 PT 2 Prefer Vectors over Arrays 219 ST 5 The Range-Based for Loop 219 7 Pointers and Structures 223 7.1 Defining and Using Pointers 224 Defining Pointers 224 Accessing Variables Through Pointers 225 Initializing Pointers 227 CE 1 Confusing Pointers with the Data to Which They Point 228 PT 1 Use a Separate Definition for Each Pointer Variable 229 ST 1 Pointers and References 229 7.2 Arrays and Pointers 230 Arrays as Pointers 230 Pointer Arithmetic 230 Array Parameter Variables are Pointers 232 ST 2 Using a Pointer to Step Through an Array 233 CE 2 Returning a Pointer to a Local Variable 234 PT 2 Program Clearly, Not Cleverly 234 ST 3 Constant Pointers 235 7.3 C and C++ Strings 235 The char Type 235 C Strings 236 Character Arrays 237 Converting Between C and C++ Strings 237 C++ Strings and the [] Operator 238 ST 4 Working with C Strings 238 7.4 Dynamic Memory Allocation 240 CE 3 Dangling Pointers 242 CE 4 Memory Leaks 243 7.5 Arrays and Vectors of Pointers 243 7.6 PROBLEM SOLVING Draw a Picture 246 HT 1 Working with Pointers 248 WE 1 Producing a Mass Mailing 249 C&S Embedded Systems 250 7.7 Structures 250 Structured Types 250 Structure Assignment and Comparison 251 Functions and Structures 252 Arrays of Structures 252 Structures with Array Members 253 Nested Structures 253 7.8 Pointers and Structures 254 Pointers to Structures 254 Structures with Pointer Members 255 ST 5 Smart Pointers 256 8 Streams 259 8.1 Reading and Writing Text Files 260 Opening a Stream 260 Reading from a File 261 Writing to a File 262 A File Processing Example 262 8.2 Reading Text Input 265 Reading Words 265 Reading Characters 266 Reading Lines 267 CE 1 Mixing >> and getline Input 268 ST 1 Stream Failure Checking 269 8.3 Writing Text Output 270 ST 2 Unicode, UTF-8, and C++ Strings 272 8.4 Parsing and Formatting Strings 273 8.5 Command Line Arguments 274 C&S Encryption Algorithms 277 HT 1 Processing Text Files 278 WE 1 Looking for for Duplicates 281 8.6 Random Access and Binary Files 281 Random Access 281 Binary Files 282 Processing Image Files 282 C&S Databases and Privacy 286 9 Classes 289 9.1 Object-Oriented Programming 290 9.2 Implementing a Simple Class 292 9.3 Specifying the Public Interface of a Class 294 CE 1 Forgetting a Semicolon 296 9.4 Designing the Data Representation 297 9.5 Member Functions 299 Implementing Member Functions 299 Implicit and Explicit Parameters 299 Calling a Member Function from a Member Function 301 PT 1 All Data Members Should Be Private; Most Member Functions Should Be Public 303 PT 2 const Correctness 303 9.6 Constructors 304 CE 2 Trying to Call a Constructor 306 ST 1 Overloading 306 ST 2 Initializer Lists 307 ST 3 Universal and Uniform Initialization Syntax 308 9.7 PROBLEM SOLVING Tracing Objects 308 HT 1 Implementing a Class 310 WE 1 Implementing a Bank Account Class 314 C&S Electronic Voting Machines 314 9.8 PROBLEM SOLVING Discovering Classes 315 PT 3 Make Parallel Vectors into Vectors of Objects 317 9.9 Separate Compilation 318 9.10 Pointers to Objects 322 Dynamically Allocating Objects 322 The -> Operator 323 The this Pointer 324 9.11 PROBLEM SOLVING Patterns for Object Data 324 Keeping a Total 324 Counting Events 325 Collecting Values 326 Managing Properties of an Object 326 Modeling Objects with Distinct States 327 Describing the Position of an Object 328 C&S Open Source and Free Software 329 10 Inheritance 333 10.1 Inheritance Hierarchies 334 10.2 Implementing Derived Classes 338 CE 1 Private Inheritance 341 CE 2 Replicating Base-Class Members 341 PT 1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 342 ST 1 Calling the Base-Class Constructor 342 10.3 Overriding Member Functions 343 CE 3 Forgetting the Base-Class Name 345 10.4 Virtual Functions and Polymorphism 346 The Slicing Problem 346 Pointers to Base and Derived Classes 347 Virtual Functions 348 Polymorphism 349 PT 2 Don’t Use Type Tags 352 CE 4 Slicing an Object 352 CE 5 Failing to Override a Virtual Function 353 ST 2 Virtual Self-Calls 354 HT 1 Developing an Inheritance Hierarchy 354 WE 1 Implementing an Employee Hierarchy for Payroll Processing 359 C&S Who Controls the Internet? 360 11 Recursion 363 11.1 Triangle Numbers 364 CE 1 Tracing Through Recursive Functions 367 CE 2 Infinite Recursion 368 HT 1 Thinking Recursively 369 WE 1 Finding Files 372 11.2 Recursive Helper Functions 372 11.3 The Efficiency of Recursion 373 11.4 Permutations 377 11.5 Mutual Recursion 380 11.6 Backtracking 383 WE 2 Towers of Hanoi 389 C&S The Limits of Computation 390 12 Sorting and Searching 393 12.1 Selection Sort 394 12.2 Profiling the Selection Sort Algorithm 397 12.3 Analyzing the Performance of the Selection Sort Algorithm 398 ST 1 Oh, Omega, and Theta 399 ST 2 Insertion Sort 400 12.4 Merge Sort 402 12.5 Analyzing the Merge Sort Algorithm 405 ST 3 The Quicksort Algorithm 407 12.6 Searching 408 Linear Search 408 Binary Search 410 PT 1 Library Functions for Sorting and Binary Search 412 ST 4 Defining an Ordering for Sorting Objects 413 12.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 413 Linear Time 413 Quadratic Time 414 The Triangle Pattern 415 Logarithmic Time 417 WE 1 Enhancing the Insertion Sort Algorithm 418 C&S The First Programmer 418 13 Advanced C++ 421 13.1 Operator Overloading 422 Operator Functions 422 Overloading Comparison Operators 425 Input and Output 425 Operator Members 426 ST 1 Overloading Increment and Decrement Operators 427 ST 2 Implicit Type Conversions 428 ST 3 Returning References 429 WE 1 A Fraction Class 430 13.2 Automatic Memory Management 430 Constructors That Allocate Memory 430 Destructors 432 Overloading the Assignment Operator 433 Copy Constructors 437 PT 1 Use Reference Parameters to Avoid Copies 441 CE 1 Defining a Destructor Without the Other Two Functions of the “Big Three” 442 ST 4 Virtual Destructors 443 ST 5 Suppressing Automatic Generation of Memory Management Functions 443 ST 6 Move Operations 444 ST 7 Shared Pointers 445 WE 2 Tracing Memory Management of Strings 446 13.3 Templates 446 Function Templates 447 Class Templates 448 ST 8 Non-Type Template Parameters 450 14 Linked Lists, Stacks, and Queues 453 14.1 Using Linked Lists 454 14.2 Implementing Linked Lists 459 The Classes for Lists, Node, and Iterators 459 Implementing Iterators 460 Implementing Insertion and Removal 462 WE 1 Implementing a Linked List Template 472 14.3 The Efficiency of List, Array, and Vector Operations 472 14.4 Stacks and Queues 476 14.5 Implementing Stacks and Queues 479 Stacks as Linked Lists 479 Stacks as Arrays 482 Queues as Linked Lists 482 Queues as Circular Arrays 483 14.6 Stack and Queue Applications 484 Balancing Parentheses 484 Evaluating Reverse Polish Expressions 485 Evaluating Algebraic Expressions 487 Backtracking 490 ST 1 Reverse Polish Notation 492 15 Sets, Maps, and Hash Tables 495 15.1 Sets 496 15.2 Maps 499 PT 1 Use the auto Type for Iterators 503 ST 1 Multisets and Multimaps 503 WE 1 Word Frequency 504 15.3 Implementing a Hash Table 504 Hash Codes 504 Hash Tables 505 Finding an Element 507 Adding and Removing Elements 508 Iterating over a Hash Table 508 ST 2 Implementing Hash Functions 514 ST 3 Open Addressing 516 16 Tree Structures 519 16.1 Basic Tree Concepts 520 16.2 Binary Trees 524 Binary Tree Examples 524 Balanced Trees 526 A Binary Tree Implementation 527 WE 1 Building a Huffman Tree 528 16.3 Binary Search Trees 528 The Binary Search Property 529 Insertion 530 Removal 532 Efficiency of the Operations 533 16.4 Tree Traversal 538 Inorder Traversal 539 Preorder and Postorder Traversals 540 The Visitor Pattern 541 Depth-First and Breadth-First Search 542 Tree Iterators 543 16.5 Red-Black Trees 544 Basic Properties of Red-Black Trees 544 Insertion 546 Removal 548 WE 2 Implementing a Red-Black Tree 551 17 Priority Queues and Heaps 553 17.1 Priority Queues 554 WE 1 Simulating a Queue of Waiting Customers 557 17.2 Heaps 557 17.3 The Heapsort Algorithm 567 Appendix A Reserved Word Summary A-1 Appendix B Operator Summary A-3 Appendix C Character Codes A-5 Appendix D C++ Library Summary A-8 Appendix E C++ Language Coding Guidelines A-12 Appendix F Number Systems and Bit and Shift Operations A-19 Glossary G-1 Index I-1 Credits C-1 Quick Reference C-2

    10 in stock

    £128.66

  • McGraw Hill Education India C Programming An Objectoriented Approach

    Book Synopsis

    £130.66

  • McGraw-Hill Education Loose Leaf for Software Engineering

    Book Synopsis

    £144.76

  • Tree-based Graph Partitioning Constraint

    ISTE Ltd and John Wiley & Sons Inc Tree-based Graph Partitioning Constraint

    10 in stock

    Book SynopsisCombinatorial problems based on graph partitioning enable us to mathematically represent and model many practical applications. Mission planning and the routing problems occurring in logistics perfectly illustrate two such examples. Nevertheless, these problems are not based on the same partitioning pattern: generally, patterns like cycles, paths, or trees are distinguished. Moreover, the practical applications are often not limited to theoretical problems like the Hamiltonian path problem, or K-node disjoint path problems. Indeed, they usually combine the graph partitioning problem with several restrictions related to the topology of nodes and arcs. The diversity of implied constraints in real-life applications is a practical limit to the resolution of such problems by approaches considering the partitioning problem independently from each additional restriction. This book focuses on constraint satisfaction problems related to tree partitioning problems enriched by several additional constraints that restrict the possible partitions topology. On the one hand, this title focuses on the structural properties of tree partitioning constraints. On the other hand, it is dedicated to the interactions between the tree partitioning problem and classical restrictions (such as precedence relations or incomparability relations between nodes) involved in practical applications. Precisely, Tree-based Graph Partitioning Constraint shows how to globally take into account several restrictions within one single tree partitioning constraint. Another interesting aspect of this book is related to the implementation of such a constraint. In the context of graph-based global constraints, the book illustrates how a fully dynamic management of data structures makes the runtime of filtering algorithms independent of the graph density.Table of ContentsPART 1. CONSTRAINT PROGRAMMING AND FOUNDATIONS OF GRAPH THEORY 1 Introduction to Part 1 3 Chapter 1. Introduction to Constraint Programming 5 1.1. What is a variable? 7 1.2. What is a constraint? 8 1.3. What is a global constraint? 10 1.4. What is a propagation algorithm? 11 1.5. What is a consistency level? 14 1.6. What is a constraint solver? 15 1.7. Constraint solvers at work 17 1.8. Organization structure 21 Chapter 2. Graph Theory and Constraint Programming 23 2.1. Modeling graphs with constraint programming 24 2.2. Graph theory at work in constraint programming 34 2.3. Constraint programming at work in graph theory 37 Chapter 3. Tree Graph Partitioning 39 3.1. In undirected graphs 39 3.2. In directed graphs 42 PART 2. CHARACTERIZATION OF TREE-BASED GRAPH PARTITIONING CONSTRAINTS 47 Chapter 4. Tree Constraints in Undirected Graphs 49 4.1. Decomposition 49 4.2. Definition of constraints 51 4.3. A filtering algorithm for the proper-forest constraint 56 4.4. Filtering algorithm for the resource-forest constraint 70 4.5. Summary of undirected tree constraints 80 Chapter 5. Tree Constraints in Directed Graphs 83 5.1. Decomposition 83 5.2. Definition of constraints 86 5.3. Filtering algorithm for the tree constraint 89 5.4. Filtering algorithm for the proper-tree constraint 96 5.5. Summary of tree constraints in directed and undirected graphs 113 Chapter 6. Additional Constraints Linked to Graph Partitioning 117 6.1. Definition of restrictions 118 6.2. Complexity zoo 123 6.3. Interaction between the number of trees and the number of proper trees 129 6.4. Relation of precedence between the vertices of the graph 130 6.5. Relation of conditional precedence 137 6.6. Relation of incomparability between graph vertices 140 6.7. Interactions between precedence and incomparability constraints 143 6.8. Constraining the interior half-degree of each vertex 148 6.9. Summary 151 Chapter 7. The Case of Disjoint Paths 153 7.1. Minimum number of paths in acyclic directed graphs 156 7.2. Minimum number of paths in any directed graph 161 7.3. A path partitioning constraint 169 7.4. Summary 173 Chapter 8. Implementation of a Tree Constraint 175 8.1. Original implementation 176 8.2. Toward a “portable” implementation 181 8.3. Conclusion 191 PART 3. IMPLEMENTATION: TASK PLANNING 193 Introduction to Part 3 195 Chapter 9. First Model in Constraint Programming 199 9.1. Model for the coherence of displacements in space 199 9.2. Modeling resource consumption 200 9.3. Modeling time windows 201 9.4. Modeling coordination constraints between units 202 9.5. Limitations of the proposed model 203 Chapter 10. Advanced Model in Constraint Programming 205 10.1. Modeling the coherence of displacements in space 206 10.2. Modeling resource consumption 208 10.3. Integration of temporal aspects 208 10.4. Propagating time windows 213 PART 4. CONCLUSION AND FUTURE WORK 225 Chapter 11. Conclusion 227 Chapter 12. Perspectives and Criticisms 231 Bibliography 233 Index 239

    10 in stock

    £132.00

  • Selenium WebDriver Recipes in C#: Practical Testing Solutions for Selenium WebDriver

    Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Selenium WebDriver Recipes in C#: Practical Testing Solutions for Selenium WebDriver

    10 in stock

    Book SynopsisSolve your Selenium WebDriver problems with this quick guide to automated testing of web applications with Selenium WebDriver in C#. This third edition contains hundreds of solutions to real-world problems, with clear explanations and ready-to-run Selenium test scripts that you can use in your own projects. Updated to Selenium version 4, this revision includes Visual Studio Code set up, additional recipes, and new chapters on Selenium DevTools and continuous testing. You'll see how to use Selenium WebDriver for select lists, navigation, assertions, frames, file upload and pop-up dialogs. You'll also learn how to locate web elements and test functions for hyperlinks, buttons, TextFields and TextAreas, radio buttons, CheckBoxes, and more. What You'll Learn Debug test scripts and test data Work with Selenium Remote Control Server Manage and deal with browser profiles and capabilities Monitor tests for advanced user interactions and experiences (UX) Who This Book Is For Experienced .NET and C# Windows application programmers/developers.Table of Contents1. Introduction2. Locating Web Elements 3. Hyperlink 4. Button 5. TextField and TextArea 6. Radio Button 7. Check Box 8. Select List 9. Navigation and Browser 10. Assertion 11. Frames 12. Testing AJAX 13. File Upload and Pop-up Dialogs14. Debugging Test Scripts 15. Test Data16. Browser Profile and Capabilities17. Advanced User Interactions 18. HTML5 and JavaScript 19. WYSIWYG HTML Editors20. Leverage Programming 21. Optimization 22. Gotchas 23. Selenium 4 24. Selenium DevTools 25. Remote Control Server 26. Continuous Testing 27. Case Studies28. Afterword 29. Resources

    10 in stock

    £42.74

© 2026 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