Object-oriented programming (OOP) Books
Cambridge University Press An Introduction to Computational Physics
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.
£33.24
Cambridge University Press ObjectOriented Programming with Visual Basic.NET
a huge range and FREE tracked UK delivery on ALL orders.
£47.49
Cambridge University Press The Object Primer Agile ModelDriven Development With Uml 20
a huge range and FREE tracked UK delivery on ALL orders.
£56.99
Cambridge University Press Tried and True Object Development
a huge range and FREE tracked UK delivery on ALL orders.
£60.79
Cambridge University Press Fundamentals of OOP and Data Structures in Java
a huge range and FREE tracked UK delivery on ALL orders.
£71.24
Cambridge University Press Hardcore JFC
a huge range and FREE tracked UK delivery on ALL orders.
£60.79
Cambridge University Press Mastering ENVYDeveloper
a huge range and FREE tracked UK delivery on ALL orders.
£64.59
Cambridge University Press C Design Patterns and Derivatives Pricing 2 Mathematics Finance and Risk Series Number 2
a huge range and FREE tracked UK delivery on ALL orders.
£56.99
Cambridge University Press Steps in Scala An Introduction to ObjectFunctional Programming
a huge range and FREE tracked UK delivery on ALL orders.
£46.61
Cambridge University Press Steps in Scala An Introduction to ObjectFunctional Programming
a huge range and FREE tracked UK delivery on ALL orders.
£63.65
Cambridge University Press Foundations of ComponentBased Systems
a huge range and FREE tracked UK delivery on ALL orders.
£76.94
Cambridge University Press Formal Methods for Distributed Processing
a huge range and FREE tracked UK delivery on ALL orders.
£128.25
Cambridge University Press More C Gems 17 SIGS Reference Library Series Number 17
a huge range and FREE tracked UK delivery on ALL orders.
£71.24
Cambridge University Press The Road to the Unified Software Development Process 18 SIGS Reference Library Series Number 18
a huge range and FREE tracked UK delivery on ALL orders.
£57.94
Cambridge University Press Uml XtraLight How to Specify your Software Requirements 23 SIGS Managing Object Technology Series Number 23
a huge range and FREE tracked UK delivery on ALL orders.
£32.29
Cambridge University Press The Elements of C Style
a huge range and FREE tracked UK delivery on ALL orders.
£21.99
John Wiley & Sons Inc Introductory Programming with ObjectOriented C
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.
£150.26
John Wiley & Sons Inc Java Programming
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.
£136.80
John Wiley & Sons Inc A Practical Introduction to ObjectOriented Design
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.
£155.66
Cengage Learning, Inc Java Programming From Problem Analysis to Program Design
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.
£212.01
John Wiley & Sons Inc Big C
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
£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
ISTE Ltd and John Wiley & Sons Inc Tree-based Graph Partitioning Constraint
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
£132.00
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Selenium WebDriver Recipes in C#: Practical Testing Solutions for Selenium WebDriver
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
£42.74