Computer programming / software engineering Books
John Wiley & Sons Inc Software Engineering
Book SynopsisPeters and Pedrycz have written the first comprehensive and complete text on a quantitative approach to Software Engineering. This book provides the reader with well-defined and carefully described software practices based on industry standards. It presents practical approaches to specifying, designing and testing software as well as the foundations of Software Engineering. Frameworks, methods and technologies in aid of the activities typically found in software projects, are thoroughly presented. This book includes a complete case study representing all of the major phases in software development.Emphasizing both the design and analysis of the technology, Peters and Pedrycz have created a highly balanced introduction to Software Engineering. This text provides students with a holistic look at software design by encouraging them to view the process as an interplay between hardware and software. The reader will also find the latest information in the field, frequent referencesTable of ContentsSOFTWARE ENGINEER'S WORKSHOP. Software Engineering Landscape. Software Processes. Requirements Engineering. Software Design: Architectures. SoftwareDesign: Validation and Risk Analysis. Design Elaboration. Design Elaboration: Mobile Computing. Software Verification. Software Measures. Software Cost Estimation. Software Reliability. Computational Intelligence in Software Engineering. READINGS. Index.
£206.96
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
John Wiley & Sons Inc Perl Programming for Biologists
Book SynopsisWorking on the assumption that the reader has no formal training in programming, this book demonstrates how Perl is used to solve biological problems. Each chapter opens with a set of learning objectives, provides numerous review questions and self-study exercises, and concludes with a bulleted summary of key points.Trade Review"This well written book illustrates PERL with examples…Those with less or no programming skills should read this book before attempting the practice of bioinformatics ideas." (Journal of Statistical Computation & Simulation, January 2005) "…the book is useful to biologists who already use languages like C+ or Visual Basic and want to learn Perl." (Biomolecular Engineering, November 2004) “…written in a pleasant chatty style with obvious enthusiasm for the topic” (Robotica, Vol. 22, 2004) “...unique and I highly recommend it as a first book on programming for biology-oriented professionals interested in using perl...excellent for self-study...can also be a great resource as classroom material...” (Clinical Chemistry, Vol. 50, No. 2, 2004) "...not be surprised to see [it] finding a space on the bookshelves in many biological laboratories in the near future." (Briefings in Bioinformatics, Vol 5(1), March 2004)Table of ContentsPART I: THE BASICS. Introduction. Chapter 1. An Introduction to Perl. Chapter 2. Variables and Data Types. Chapter 3. Arrays and Hashes. Chapter 4. Control Structures. PART II: INTERMEDIATE PERL. Chapter 5. Subroutines. Chapter 6. String Manipulation. Chapter 7. Input and Output. Chapter 8. Perl Modules and Packages. PART III: ADVANCED PERL. Chapter 9. References. Chapter 10. Object-Oriented Programming. Chapter 11. Bioperl. Appendix A. Partial Perl Reference. Appendix B. Bioinformatics File Formats. Index.
£85.45
John Wiley & Sons Inc Professional Windows Embedded Compact 7
Book SynopsisLearn to program an array of customized devices and solutions As a compact, highly efficient, scalable operating system, Windows Embedded Compact 7 (WEC7) is one of the best options for developing a new generation of network-enabled, media-rich, and service-oriented devices.Table of ContentsFOREWORD xxxv INTRODUCTION xxxvii PART I: INTRODUCING EMBEDDED DEVELOPMENT. CHAPTER 1: EMBEDDED DEVELOPMENT 3 CHAPTER 2: WINDOWS EMBEDDED COMPACT 7 11 CHAPTER 3: DEVELOPMENT STATION PREPARATION 19 CHAPTER 4: DEVELOPMENT PROCESS 29 CHAPTER 5: DEVELOPMENT ENVIRONMENT AND TOOLS 35 PART II: PLATFORM BUILDER AND OS DESIGN. CHAPTER 6: BSP INTRODUCTION 53 CHAPTER 7: OS DESIGN 69 CHAPTER 8: TARGET DEVICE CONNECTIVITY AND DOWNLOAD 87 CHAPTER 9: DEBUG AND REMOTE TOOLS 97 CHAPTER 10: THE REGISTRY 125 CHAPTER 11: THE BUILD SYSTEM 137 CHAPTER 12: REMOTE DISPLAY APPLICATION 151 CHAPTER 13: TESTING WITH COMPACT TEST KIT 157 PART III: APPLICATION DEVELOPMENT. CHAPTER 14: APPLICATION DEVELOPMENT 173 CHAPTER 15: .NET COMPACT FRAMEWORK 181 CHAPTER 16: CORECON CONNECTIVITY 187 CHAPTER 17: VISUAL STUDIO NATIVE CODE APPLICATION EXAMPLE 195 CHAPTER 18: MANAGED CODE APPLICATION EXAMPLE 207 CHAPTER 19: PLATFORM BUILDER NATIVE CODE APPLICATION EXAMPLE 219 CHAPTER 20: DEVELOPING EMBEDDED DATABASE APPLICATIONS 233 CHAPTER 21: SILVERLIGHT FOR WINDOWS EMBEDDED 267 CHAPTER 22: SILVERLIGHT FOR WINDOWS EMBEDDED APPLICATION EXAMPLES 275 CHAPTER 23: AUTO LAUNCHING APPLICATIONS 289 CHAPTER 24: APPLICATION DEPLOYMENT OPTIONS 297 PART IV: DEPLOY WINDOWS EMBEDDED COMPACT 7 DEVICES. CHAPTER 25: DEPLOY OS RUN-TIME IMAGES 305 CHAPTER 26: BOOTLOADERS 313 CHAPTER 27: BIOSLOADER 321 CHAPTER 28: THE DISKPREP POWER TOY 327 PART V: DEVICE DRIVERS, BOOT LOADER, BSP, AND OAL DEVELOPMENT. CHAPTER 29: AN OVERVIEW OF DEVICE DRIVERS 339 CHAPTER 30: DEVICE DRIVER ARCHITECTURES 349 CHAPTER 31: INTERRUPTS 367 CHAPTER 32: STREAM INTERFACE DRIVERS 393 CHAPTER 33: DEVELOPING A STREAM INTERFACE DRIVER 417 CHAPTER 34: STREAM DRIVER API AND DEVICE DRIVER TESTING 449 CHAPTER 35: THE TARGET SYSTEM 467 PART VI: ADVANCED APPLICATION DEVELOPMENT. CHAPTER 36: INTRODUCTION TO REAL-TIME APPLICATIONS 487 CHAPTER 37: A SIMPLE REAL-TIME APPLICATION 497 CHAPTER 38: EXTENDING LOW-LEVEL ACCESS TO MANAGED CODE 509 CHAPTER 39: EXTENDING LOW-LEVEL ACCESS TO MANAGED CODE WITH MESSAGES 531 CHAPTER 40: A WEB SERVER APPLICATION 545 CHAPTER 41: A USB CAMERA APPLICATION 563 PART VII: SAMPLE PROJECTS. CHAPTER 42: DEVELOP A WINDOWS NETWORK PROJECTOR 577 CHAPTER 43: PHIDGETS DEVICES 585 CHAPTER 44: FTDI DEVICES 601 CHAPTER 45: INTEGRATING MANAGED CODE PROJECTS 629 APPENDIX A: VIRTUAL PC CONNECTIVITY 639 APPENDIX B: MICROSOFT RESOURCES 645 APPENDIX C: COMMUNITY RESOURCES 649 APPENDIX D: EMBEDDED HARDWARE 655 INDEX 659
£33.24
John Wiley & Sons Inc Beginning Visual C 2012 Programming
Book SynopsisStep-by-step beginner s guide to Visual C# 2012 Written for novice programmers who want to learn programming with C# and the. NET framework, this book offers programming basics such as variables, flow control, and object oriented programming. It then moves into web and Windows programming and data access (databases and XML).Table of ContentsINTRODUCTION xxxi PART I: THE C# LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the .NET Framework? 3 What’s in the .NET Framework? 4 Writing Applications Using the .NET Framework 4 CIL and JIT 4 Assemblies 5 Managed Code 5 Garbage Collection 6 Fitting It Together 6 Linking 7 What Is C#? 7 Applications You Can Write with C# 8 C# in this Book 8 Visual Studio 2012 8 Visual Studio Express 2012 Products 9 Solutions 9 Summary 10 CHAPTER 2: WRITING A C# PROGRAM 13 The Visual Studio 2012 Development Environment 14 Console Applications 16 The Solution Explorer 18 The Properties Window 19 The Error List Window 19 Desktop Applications 20 Summary 23 CHAPTER 3: VARIABLES AND EXPRESSIONS 25 Basic C# Syntax 26 Basic C# Console Application Structure 28 Variables 29 Simple Types 29 Variable Naming 33 Naming Conventions 34 Literal Values 34 Variable Declaration and Assignment 36 Expressions 37 Mathematical Operators 37 Assignment Operators 41 Operator Precedence 42 Namespaces 42 Summary 45 CHAPTER 4: FLOW CONTROL 49 Boolean Logic 49 Boolean Assignment Operators 52 Bitwise Operators 53 Operator Precedence Updated 57 The goto Statement 58 Branching 59 The Ternary Operator 59 The if Statement 59 Checking More Conditions Using if Statements 62 The switch Statement 63 Looping 65 do Loops 66 while Loops 68 for Loops 70 Interrupting Loops 74 Infi nite Loops 75 Summary 75 CHAPTER 5: MORE ABOUT VARIABLES 79 Type Conversion 80 Implicit Conversions 80 Explicit Conversions 81 Explicit Conversions Using the Convert Commands 84 Complex Variable Types 86 Enumerations 87 Defi ning Enumerations 87 Structs 90 Defi ning Structs 90 Arrays 92 Declaring Arrays 93 foreach Loops 95 Multidimensional Arrays 96 Arrays of Arrays 97 String Manipulation 98 Summary 102 CHAPTER 6: FUNCTIONS 105 Defi ning and Using Functions 106 Return Values 108 Parameters 109 Parameter Matching 111 Parameter Arrays 111 Reference and Value Parameters 113 Out Parameters 115 Variable Scope 116 Variable Scope in Other Structures 118 Parameters and Return Values versus Global Data 120 The Main( ) Function 121 Struct Functions 123 Overloading Functions 124 Using Delegates 125 Summary 128 CHAPTER 7: DEBUGGING AND ERROR HANDLING 131 Debugging in Visual Studio 132 Debugging in Nonbreak (Normal) Mode 132 Outputting Debugging Information 133 Tracepoints 137 Diagnostics Output Versus Tracepoints 139 Debugging in Break Mode 140 Entering Break Mode 140 Monitoring Variable Content 142 Stepping Through Code 144 Immediate and Command Windows 146 The Call Stack Window 146 Error Handling 147 try…catch…finally 147 Listing and Configuring Exceptions 152 Notes on Exception Handling 152 Summary 153 CHAPTER 8: INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING 157 What Is Object-Oriented Programming? 158 What Is an Object? 158 Properties and Fields 159 Methods 160 Everything’s an Object 161 The Life Cycle of an Object 161 Constructors 161 Destructors 162 Static and Instance Class Members 162 Static Constructors 162 Static Classes 163 OOP Techniques 163 Interfaces 163 Disposable Objects 164 Inheritance 165 Polymorphism 167 Interface Polymorphism 168 Relationships Between Objects 168 Containment 168 Collections 169 Operator Overloading 169 Events 170 Reference Types Versus Value Types 170 OOP in Desktop Applications 171 Summary 174 CHAPTER 9: DEFINING CLASSES 177 Class Defi nitions in C# 177 Interface Defi nitions 180 System.Object 182 Constructors and Destructors 184 Constructor Execution Sequence 185 OOP Tools in Visual Studio 188 The Class View Window 188 The Object Browser 190 Adding Classes 191 Class Diagrams 192 Class Library Projects 193 Interfaces Versus Abstract Classes 196 Struct Types 198 Shallow Copying Versus Deep Copying 200 Summary 200 CHAPTER 10: DEFINING CLASS MEMBERS 203 Member Defi nitions 203 Defi ning Fields 204 Defi ning Methods 204 Defi ning Properties 205 Adding Members from a Class Diagram 210 Adding Methods 210 Adding Properties 212 Adding Fields 212 Refactoring Members 212 Automatic Properties 213 Additional Class Member Topics 213 Hiding Base Class Methods 213 Calling Overridden or Hidden Base Class Methods 215 The this Keyword 216 Using Nested Type Defi nitions 216 Interface Implementation 218 Implementing Interfaces in Classes 219 Explicit Interface Member Implementation 220 Additional Property Accessors 220 Partial Class Defi nitions 221 Partial Method Defi nitions 222 Example Application 224 Planning the Application 224 The Card Class 224 The Deck Class 224 Writing the Class Library 224 Adding the Suit and Rank Enumerations 225 Adding the Card Class 226 Adding the Deck Class 227 A Client Application for the Class Library 230 The Call Hierarchy Window 231 Summary 232 CHAPTER 11: COLLECTIONS, COMPARISONS, AND CONVERSIONS 235 Collections 236 Using Collections 236 Defi ning Collections 241 Indexers 242 Adding a Cards Collection to CardLib 244 Keyed Collections and IDictionary 247 Iterators 248 Iterators and Collections 252 Deep Copying 253 Adding Deep Copying to CardLib 255 Comparisons 256 Type Comparisons 256 Boxing and Unboxing 257 The is Operator 258 Value Comparisons 260 Operator Overloading 261 Adding Operator Overloads to CardLib 265 The IComparable and IComparer Interfaces 269 Sorting Collections 271 Conversions 274 Overloading Conversion Operators 274 The as Operator 275 Summary 276 CHAPTER 12: GENERICS 279 What Are Generics? 280 Using Generics 281 Nullable Types 281 Operators and Nullable Types 282 The ?? Operator 283 The System.Collections.Generic Namespace 287 List 287 Sorting and Searching Generic Lists 289 Dictionary 294 Modifying CardLib to Use a Generic Collection Class 295 Defi ning Generic Types 296 Defi ning Generic Classes 296 The default Keyword 298 Constraining Types 298 Inheriting from Generic Classes 304 Generic Operators 305 Generic Structs 306 Defi ning Generic Interfaces 306 Defi ning Generic Methods 306 Defi ning Generic Delegates 308 Variance 308 Covariance 309 Contravariance 310 Summary 310 CHAPTER 13: ADDITIONAL OOP TECHNIQUES 313 The :: Operator and the Global Namespace Qualifi er 313 Custom Exceptions 315 Adding Custom Exceptions to CardLib 315 Events 316 What Is an Event? 316 Handling Events 317 Defi ning Events 319 Multipurpose Event Handlers 323 The EventHandler and Generic EventHandler Types 325 Return Values and Event Handlers 326 Anonymous Methods 326 Expanding and Using CardLib 327 A Card Game Client for CardLib 327 Attributes 334 Reading Attributes 334 Creating Attributes 335 Summary 336 CHAPTER 14: C# LANGUAGE ENHANCEMENTS 339 Initializers 340 Object Initializers 340 Collection Initializers 342 Type Inference 344 Anonymous Types 346 Dynamic Lookup 350 The dynamic Type 350 IDynamicMetaObjectProvider 354 Advanced Method Parameters 354 Optional Parameters 354 Optional Parameter Values 355 The OptionalAttribute Attribute 356 Optional Parameter Order 356 Named Parameters 356 Named and Optional Parameter Guidelines 360 Extension Methods 360 Lambda Expressions 364 Anonymous Methods Recap 364 Lambda Expressions for Anonymous Methods 365 Lambda Expression Parameters 368 Lambda Expression Statement Bodies 368 Lambda Expressions as Delegates and Expression Trees 369 Lambda Expressions and Collections 370 Caller Information Attributes 372 Summary 375 PART II: WINDOWS PROGRAMMING CHAPTER 15: BASIC DESKTOP PROGRAMMING 381 XAML 382 Separation of Concerns 382 XAML in Action 383 Namespaces 383 Code-Behind Files 384 The Playground 384 WPF Controls 385 Properties 386 Dependency Properties 387 Attached Properties 388 Events 388 Handling Events 389 Routed Events 390 Routed Commands 390 Control Types 392 Control Layout 393 Stack Order 393 Alignment, Margins, Padding, and Dimensions 393 Border 394 Canvas 394 DockPanel 395 StackPanel 397 WrapPanel 398 Grid 398 The Game Client 401 The About Window 401 Designing the User Interface 401 The Image Control 401 The Label Control 402 The TextBlock Control 402 The Button Control 402 The Options Window 405 The TextBox Control 406 The CheckBox Control 406 The RadioButton Control 407 The ComboBox Control 408 The TabControl 409 Handling Events in the Options Window 411 Data Binding 413 The DataContext 414 Binding to Local Objects 414 Static Binding to External Objects 414 Dynamic Binding to External Objects 415 Starting a Game 418 The ListBox Control 418 Summary 421 CHAPTER 16: ADVANCED DESKTOP PROGRAMMING 425 The Main Window 425 The Menu Control 426 Routed Commands with Menus 426 Creating and Styling Controls 429 Styles 430 Templates 430 Value Converters 434 The IValueConverter Interface 434 ValueConversionAttribute 434 Triggers 435 Animations 436 Timelines without Key Frames 436 Timelines with Key Frames 437 WPF User Controls 438 Implementing Dependency Properties 439 Putting It All Together 447 Refactoring the Domain Model 447 The View Models 451 Completing the Game 459 Summary 466 CHAPTER 17: WINDOWS STORE APPS 469 Getting Started 469 Windows 8 Developer License 470 How to Get the License 470 Windows Store Apps versus Desktop Applications 471 Developing Windows Store Apps 472 View Modes 472 Full-Screen Mode 473 Snapped Mode 473 Fill Mode 473 Screen Orientation 473 The Missing Caption Bar 473 Menus and Toolbars 473 The App Bar 474 Charms 475 Tiles and Badges 476 App Lifetime 476 Lock Screen Apps 476 App Development 476 WPF and Windows Store App XAML Diff erences 476 Namespace Changes 477 Eff ects 477 Opacity Mask 477 Style Triggers 477 Commands 478 Templates and Pages 478 Blank Page 478 Basic Page 478 Grouped Items and Group Details Pages 478 Item Details Page 479 Items and Split Pages 479 Sandboxed Apps 479 Disk Access 479 Serialization, Streams, and Async Programming 480 Navigation Between Pages 483 Managing State 485 Converting KarliCards, Part 1 485 Creating the CardLib Project 486 Converting the View Models 489 Visual Changes 493 Drop Shadow and Opacity Masks 493 Style Triggers 493 Converting User Controls 493 Common Elements of Windows Store Apps 499 The AppBar Control 500 The Settings Panel 501 Tiles, Badges, and Splash Screens 503 Converting KarliCards, Part 2 504 The Windows Store 509 Checking the Store Requirements 509 Summary 510 CHAPTER 18: DEPLOYING DESKTOP APPLICATIONS 513 Deployment Overview 514 ClickOnce Deployment 514 Implementing ClickOnce Deployment 515 Installing the Application with ClickOnce 522 Creating and Using Updates of the Application 524 InstallShield Limited Edition 524 The Project Assistant 524 Step 1: Application Information 525 Step 2: Installation Requirements 525 Step 3: Installation Architecture 526 Step 4: Application Files 526 Step 5: Application Shortcuts 527 Step 6: Application Registry 528 Step 7: Installation Interview 528 Summary 530 PART III: WEB PROGRAMMING CHAPTER 19: ASP.NET WEB PROGRAMMING 535 Overview of Web Applications 536 ASP.NET Runtime 536 Creating a Simple Page 536 Server Controls 544 ASP.NET Postback 545 ASP.NET AJAX Postback 550 Input Validation 553 State Management 557 Client-Side State Management 558 View State 558 Cookie 559 Server-Side State Management 560 Session 560 Application 561 Cache 562 Styles 562 Master Pages 566 Site Navigation 571 Authentication and Authorization 573 Authentication Confi guration 574 Using Security Controls 577 Reading from and Writing to a SQL Server Database 580 Summary 589 CHAPTER 20: DEPLOYING WEB APPLICATIONS 591 Internet Information Services 591 IIS Confi guration 592 Copying a Website 594 Publishing a Web Application 597 Summary 600 PART IV: DATA ACCESS CHAPTER 21: FILE SYSTEM DATA 605 Streams 605 The Classes for Input and Output 606 The File and Directory Classes 607 The FileInfo Class 608 The DirectoryInfo Class 610 Path Names and Relative Paths 611 The FileStream Object 611 File Position 612 Reading Data 613 Writing Data 615 The StreamWriter Object 617 The StreamReader Object 618 Reading Data 620 Delimited Files 621 Asynchronous File Access 625 Reading and Writing Compressed Files 625 Serialized Objects 628 Monitoring the File System 632 Summary 636 CHAPTER 22: XML 639 XML Documents 640 XML Elements 640 Attributes 641 The XML Declaration 641 The Structure of an XML Document 642 XML Namespaces 642 Well-Formed and Valid XML 643 Validating XML Documents 644 Schemas 644 The XSD dialog box shown in the XmlDocument Class 645 Using XML in Your Application 647 XML Document Object Model 647 The XmlDocument Class 648 The XmlElement Class 648 Changing the Values of Nodes 652 Selecting Nodes 656 XPath 657 Summary 661 CHAPTER 23: INTRODUCTION TO LINQ 663 First LINQ Query 664 Declaring a Variable for Results Using the var Keyword 665 Specifying the Data Source: from Clause 666 Specify Condition: where Clause 666 Selecting Items: select Clause 666 Finishing Up: Using the foreach Loop 667 Deferred Query Execution 667 Using the LINQ Method Syntax 667 LINQ Extension Methods 667 Query Syntax versus Method Syntax 668 Ordering Query Results 669 Understanding the orderby Clause 670 Ordering Using Method Syntax 671 Querying a Large Data Set 672 Using Aggregate Operators 674 Querying Complex Objects 678 Projection: Creating New Objects in Queries 681 Projection: Method Syntax 682 Using the Select Distinct Query 683 Using the Any and All Methods 684 Ordering by Multiple Levels 685 Multi-Level Ordering Method Syntax: ThenBy 687 Using Group Queries 687 Using Take and Skip 689 Using First and FirstOrDefault 691 Using the LINQ Set Operators 692 Using Joins 694 Summary 696 CHAPTER 24: APPLYING LINQ 699 LINQ Varieties 699 Using LINQ with Databases 700 Installing SQL Server and the Northwind Sample Data 700 Installing SQL Server Express 701 Installing the Northwind Sample Database 701 First LINQ to Database Query 701 Navigating Database Relationships 704 Using LINQ with XML 706 LINQ to XML Functional Constructors 707 Constructing XML Element Text with Strings 710 Saving and Loading an XML Document 710 Loading XML from a String 712 Contents of a Saved XML Document 713 Working with XML Fragments 713 Generating XML from Databases 715 How to Query an XML Document 717 Using LINQ to XML Query Members 718 Elements( ) 718 Descendants( ) 719 Attributes( ) 721 Summary 723 PART V: ADDITIONAL TECHNIQUES CHAPTER 25: WINDOWS COMMUNICATION FOUNDATION 727 What Is WCF? 728 WCF Concepts 728 WCF Communication Protocols 729 Addresses, Endpoints, and Bindings 729 Contracts 731 Message Patterns 732 Behaviors 732 Hosting 732 WCF Programming 733 The WCF Test Client 740 Defi ning WCF Service Contracts 742 Data Contracts 743 Service Contracts 743 Operation Contracts 744 Message Contracts 745 Fault Contracts 745 Self-Hosted WCF Services 750 Summary 756 CHAPTER 26: WINDOWS WORKFLOW FOUNDATION 759 Hello World 759 Workfl ows and Activities 761 If Activity 761 While Activity 762 Sequence Activity 762 Arguments and Variables 763 Custom Activities 767 Workfl ow Extensions 769 Activity Validation 773 Activity Designers 774 Summary 776 APPENDIX A: EXERCISE SOLUTIONS 779 INDEX 827
£33.24
John Wiley & Sons Inc Java for Everyone Compatible With Java 5 6 and 7
Book Synopsis
£128.66
John Wiley & Sons Inc OCP Oracle Certified Professional Java SE 11
Book SynopsisTable of ContentsIntroduction xxix Assessment Tests lix Part I Exam 1Z0-815, OCP Java SE 11 Programmer I 1 Chapter 1 Welcome to Java 3 Chapter 2 Java Building Blocks 37 Chapter 3 Operators 81 Chapter 4 Making Decisions 115 Chapter 5 Core Java APIs 163 Chapter 6 Lambdas and Functional Interfaces 223 Chapter 7 Methods and Encapsulation 249 Chapter 8 Class Design 297 Chapter 9 Advanced Class Design 365 Chapter 10 Exceptions 403 Chapter 11 Modules 453 Part II Exam 1Z0-816, OCP Java SE 11 Programmer II Exam 1Z0-817, Upgrade OCP Java SE 11 493 Chapter 12 Java Fundamentals 495 Chapter 13 Annotations 553 Chapter 14 Generics and Collections 599 Chapter 15 Functional Programming 669 Chapter 16 Exceptions, Assertions, and Localization 741 Chapter 17 Modular Applications 803 Chapter 18 Concurrency 839 Chapter 19 I/O 913 Chapter 20 NIO.2 969 Chapter 21 JDBC 1023 Chapter 22 Security 1069 Appendix Answers to Review Questions 1105 Index 1177
£51.00
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
John Wiley & Sons Inc Brief C
Book SynopsisTable of ContentsPreface v Special Features xxiv Quick Reference xxviii 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
£128.66
John Wiley & Sons Inc Brief Java
Book SynopsisTable of ContentsPreface v Special Features xxvi Introduction 1 1.1 Computer Programs 2 1.2 The Anatomy of a Computer 3 1.3 The Java Programming Language 5 1.4 Becoming Familiar with Your Programming Environment 7 1.5 Analyzing Your First Program 11 1.6 Errors 13 1.7 PROBLEM SOLVING Algorithm Design 15 The Algorithm Concept 15 An Algorithm for Solving an Investment Problem 16 Pseudocode 17 From Algorithms to Programs 18 HT 1 Describing an Algorithm with Pseudocode 18 WE 1 Writing an Algorithm for Tiling a Floor 20 Using Objects 23 2.1 Objects and Classes 24 Using Objects 24 Classes 25 2.2 Variables 26 Variable Declarations 26 Types 28 Names 29 Comments 30 Assignment 30 ST 1 Variable Type Inference 33 2.3 Calling Methods 33 The Public Interface of a Class 33 Method Arguments 34 Return Values 35 Method Declarations 36 2.4 Constructing Objects 38 2.5 Accessor and Mutator Methods 40 2.6 The API Documentation 41 Browsing the API Documentation 41 Packages 43 2.7 Implementing a Test Program 44 ST 2 Testing Classes in an Interactive Environment 45 WE 1 How Many Days Have You Been Alive? 46 WE 2 Working with Pictures 46 2.8 Object References 46 2.9 Graphical Applications 49 Frame Windows 50 Drawing on a Component 51 Displaying a Component in a Frame 53 2.10 Ellipses, Lines, Text, and Color 54 Ellipses and Circles 54 Lines 55 Drawing Text 56 Colors 56 Implementing Classes 61 3.1 Instance Variables and Encapsulation 62 Instance Variables 62 The Methods of the Counter Class 64 Encapsulation 64 3.2 Specifying the Public Interface of a Class 66 Specifying Methods 66 Specifying Constructors 67 Using the Public Interface 69 Commenting the Public Interface 69 3.3 Providing the Class Implementation 72 Providing Instance Variables 72 Providing Constructors 73 Providing Methods 75 HT 1 Implementing a Class 78 WE 1 Making a Simple Menu 81 3.4 Unit Testing 81 3.5 PROBLEM SOLVING Tracing Objects 84 3.6 Local Variables 86 3.7 The this Reference 88 ST 1 Calling One Constructor from Another 90 3.8 Shape Classes 90 HT 2 Drawing Graphical Shapes 94 Fundamental Data Types 99 4.1 Numbers 100 Number Types 100 Constants 102 ST 1 Big Numbers 106 4.2 Arithmetic 107 Arithmetic Operators 107 Increment and Decrement 107 Integer Division and Remainder 108 Powers and Roots 109 Converting Floating-Point Numbers to Integers 110 ST 2 Avoiding Negative Remainders 112 ST 3 Combining Assignment and Arithmetic 113 ST 4 Instance Methods and Static Methods 113 4.3 Input and Output 114 Reading Input 114 Formatted Output 115 HT 1 Carrying Out Computations 118 WE 1 Computing the Volume and Surface Area of a Pyramid 121 4.4 PROBLEM SOLVING First Do it By Hand 121 WE 2 Computing Travel Time 122 4.5 Strings 122 The String Type 122 Concatenation 123 String Input 124 Escape Sequences 124 Strings and Characters 124 Substrings 125 ST 5 Using Dialog Boxes for Input and Output 128 Decisions 131 5.1 The if Statement 132 ST 1 The Conditional Operator 137 5.2 Comparing Values 137 Relational Operators 138 Comparing Floating-Point Numbers 139 Comparing Strings 140 Comparing Objects 141 Testing for null 141 HT 1 Implementing an if Statement 143 WE 1 Extracting the Middle 146 5.3 Multiple Alternatives 146 ST 2 The switch Statement 148 5.4 Nested Branches 149 ST 3 Block Scope 154 ST 4 Enumeration Types 155 5.5 PROBLEM SOLVING Flowcharts 156 5.6 PROBLEM SOLVING Selecting Test Cases 159 ST 5 Logging 161 5.7 Boolean Variables and Operators 161 ST 6 Short-Circuit Evaluation of Boolean Operators 165 ST 7 De Morgan’s Law 165 5.8 APPLICATION Input Validation 166 Loops 171 6.1 The while Loop 172 6.2 PROBLEM SOLVING Hand-Tracing 179 6.3 The for Loop 183 ST 1 Variables Declared in a for Loop Header 189 6.4 The do Loop 190 6.5 APPLICATION Processing Sentinel Values 192 ST 2 Redirection of Input and Output 194 ST 3 The “Loop and a Half” Problem 194 ST 4 The break and continue Statements 195 6.6 PROBLEM SOLVING Storyboards 197 6.7 Common Loop Algorithms 199 Sum and Average Value 199 Counting Matches 200 Finding the First Match 200 Prompting Until a Match is Found 201 Maximum and Minimum 201 Comparing Adjacent Values 202 HT 1 Writing a Loop 203 WE 1 Credit Card Processing 206 6.8 Nested Loops 206 WE 2 Manipulating the Pixels in an Image 209 6.9 APPLICATION Random Numbers and Simulations 209 Generating Random Numbers 210 The Monte Carlo Method 211 6.10 Using a Debugger 213 HT 2 Debugging 215 WE 3 A Sample Debugging Session 217 Arrays and Array Lists 221 7.1 Arrays 222 Declaring and Using Arrays 222 Array References 225 Using Arrays with Methods 226 Partially Filled Arrays 226 ST 1 Methods with a Variable Number of Arguments 229 7.2 The Enhanced for Loop 230 7.3 Common Array Algorithms 232 Filling 232 Sum and Average Value 232 Maximum and Minimum 232 Element Separators 232 Linear Search 233 Removing an Element 234 Inserting an Element 234 Swapping Elements 236 Copying Arrays 237 Reading Input 238 ST 2 Sorting with the Java Library 240 7.4 PROBLEM SOLVING Adapting Algorithms 240 HT 1 Working with Arrays 242 WE 1 Rolling the Dice 245 7.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 245 7.6 Two-Dimensional Arrays 248 Declaring Two-Dimensional Arrays 248 Accessing Elements 249 Locating Neighboring Elements 250 Accessing Rows and Columns 251 Two-Dimensional Array Parameters 252 WE 2 A World Population Table 253 ST 3 Two-Dimensional Arrays with Variable Row Lengths 254 ST 4 Multidimensional Arrays 255 7.7 Array Lists 255 Declaring and Using Array Lists 255 Using the Enhanced for Loop with Array Lists 258 Copying Array Lists 259 Wrappers and Auto-boxing 259 Using Array Algorithms with Array Lists 260 Storing Input Values in an Array List 261 Removing Matches 261 Choosing Between Array Lists and Arrays 262 ST 5 The Diamond Syntax 264 7.8 Regression Testing 264 Designing Classes 271 8.1 Discovering Classes 272 8.2 Designing Good Methods 273 Providing a Cohesive Public Interface 273 Minimizing Dependencies 274 Separating Accessors and Mutators 275 Minimizing Side Effects 276 ST 1 Call by Value and Call by Reference 278 8.3 PROBLEM SOLVING Patterns for Object Data 282 Keeping a Total 282 Counting Events 283 Collecting Values 283 Managing Properties of an Object 284 Modeling Objects with Distinct States 284 Describing the Position of an Object 285 8.4 Static Variables and Methods 286 ST 2 Alternative Forms of Instance and Static Variable Initialization 289 ST 3 Static Imports 290 8.5 PROBLEM SOLVING Solve a Simpler Problem First 291 8.6 Packages 295 Organizing Related Classes into Packages 295 Importing Packages 296 Package Names 297 Packages and Source Files 297 ST 4 Package Access 298 HT 1 Programming with Packages 299 8.7 Unit Test Frameworks 300 Inheritance 305 9.1 Inheritance Hierarchies 306 9.2 Implementing Subclasses 310 9.3 Overriding Methods 314 ST 1 Calling the Superclass Constructor 318 9.4 Polymorphism 319 ST 2 Dynamic Method Lookup and the Implicit Parameter 322 ST 3 Abstract Classes 323 ST 4 Final Methods and Classes 324 ST 5 Protected Access 324 HT 1 Developing an Inheritance Hierarchy 325 WE 1 Implementing an Employee Hierarchy for Payroll Processing 330 9.5 Object: The Cosmic Superclass 330 Overriding the toString Method 330 The equals Method 332 The instanceof Operator 333 ST 6 Inheritance and the toString Method 335 ST 7 Inheritance and the equals Method 336 Interfaces 339 10.1 Using Interfaces for Algorithm Reuse 340 Discovering an Interface Type 340 Declaring an Interface Type 341 Implementing an Interface Type 343 Comparing Interfaces and Inheritance 345 ST 1 Constants in Interfaces 346 ST 2 Nonabstract Interface Methods 347 10.2 Working with Interface Variables 348 Converting from Classes to Interfaces 348 Invoking Methods on Interface Variables 349 Casting from Interfaces to Classes 349 WE 1 Investigating Number Sequences 350 10.3 The Comparable Interface 350 ST 3 The clone Method and the Cloneable Interface 352 10.4 Using Interfaces for Callbacks 355 ST 4 Lambda Expressions 358 ST 5 Generic Interface Types 360 10.5 Inner Classes 360 10.6 Mock Objects 361 10.7 Event Handling 363 Listening to Events 363 Using Inner Classes for Listeners 365 10.8 Building Applications with Buttons 368 10.9 Processing Timer Events 371 10.10 Mouse Events 374 ST 6 Keyboard Events 377 ST 7 Event Adapters 378 Input/Output and Exception Handling 383 11.1 Reading and Writing Text Files 384 ST 1 Reading Web Pages 387 ST 2 File Dialog Boxes 387 ST 3 Character Encodings 388 11.2 Text Input and Output 389 Reading Words 389 Reading Characters 390 Classifying Characters 390 Reading Lines 390 Scanning a String 392 Converting Strings to Numbers 392 Avoiding Errors When Reading Numbers 392 Mixing Number, Word, and Line Input 393 Formatting Output 394 ST 4 Regular Expressions 395 ST 5 Reading an Entire File 396 11.3 Command Line Arguments 396 HT 1 Processing Text Files 399 WE 1 Analyzing Baby Names 403 11.4 Exception Handling 403 Throwing Exceptions 403 Catching Exceptions 405 Checked Exceptions 407 Closing Resources 409 Designing Your Own Exception Types 410 ST 6 Assertions 411 ST 7 The try/finally Statement 412 11.5 APPLICATION Handling Input Errors 412 Object-Oriented Design 419 12.1 Classes and Their Responsibilities 420 Discovering Classes 420 The CRC Card Method 421 12.2 Relationships Between Classes 423 Dependency 423 Aggregation 424 Inheritance 425 HT 1 Using CRC Cards and UML Diagrams in Program Design 426 ST 1 Attributes and Methods in UML Diagrams 426 ST 2 Multiplicities 427 ST 3 Aggregation, Association, and Composition 427 12.3 APPLICATION Printing an Invoice 428 Requirements 429 CRC Cards 429 UML Diagrams 432 Method Documentation 432 Implementation 434 WE 1 Simulating an Automatic Teller Machine 439 RECURSION*(ETEXT ONLY) 443 13.1 Triangle Numbers 444 HT 1 Thinking Recursively 448 WE 1 Finding Files 452 13.2 Recursive Helper Methods 452 13.3 The Efficiency of Recursion 453 13.4 Permutations 459 13.5 Mutual Recursion 463 13.6 Backtracking 469 WE 2 Towers of Hanoi 475 SORTING AND SEARCHING*(ETEXT ONLY) 477 14.1 Selection Sort 478 14.2 Profiling the Selection Sort Algorithm 481 14.3 Analyzing the Performance of the Selection Sort Algorithm 484 ST 1 Oh, Omega, and Theta 486 ST 2 Insertion Sort 487 14.4 Merge Sort 488 14.5 Analyzing the Merge Sort Algorithm 491 ST 3 The Quicksort Algorithm 493 14.6 Searching 495 Linear Search 495 Binary Search 497 14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 500 Linear Time 500 Quadratic Time 501 The Triangle Pattern 502 Logarithmic Time 503 14.8 Sorting and Searching in the Java Library 504 Sorting 504 Binary Search 505 Comparing Objects 505 ST 4 The Comparator Interface 506 ST 5 Comparators with Lambda Expressions 507 WE 1 Enhancing the Insertion Sort Algorithm 507 The Java Collections Framework*(ETEXT ONLY) 511 15.1 An Overview of the Collections Framework 512 15.2 Linked Lists 514 The Structure of Linked Lists 515 The LinkedList Class of the Java Collections Framework 516 List Iterators 516 15.3 Sets 520 Choosing a Set Implementation 520 Working with Sets 522 15.4 Maps 525 ST 1 Updating Map Entries 527 HT 1 Choosing a Collection 527 WE 1 Word Frequency 528 ST 2 Hash Functions 529 15.5 Stacks, Queues, and Priority Queues 531 Stacks 531 Queues 532 Priority Queues 533 15.6 Stack and Queue Applications 534 Balancing Parentheses 534 Evaluating Reverse Polish Expressions 535 Evaluating Algebraic Expressions 537 Backtracking 540 ST 3 Reverse Polish Notation 542 WE 2 Simulating a Queue of Waiting Customers 543 Appendix A The Basic Latin and Latin-1 Subsets of Unicode A-1 Appendix B Java Operator Summary A-5 Appendix C Java Reserved Word Summary A-7 Appendix D The Java Library A-9 Appendix E Java Language Coding Guidelines A-29 Appendix F Tool Summary (ETEXT ONLY) Appendix G Number Systems (ETEXT ONLY) Appendix H UML Summary (ETEXT ONLY) Appendix I Java Syntax Summary (ETEXT ONLY) Appendix J Html Summary (ETEXT ONLY) Glossary G-1 Index I-1 Credits C-1 Quick Reference C-3
£128.66
John Wiley & Sons Inc Data Conscience
Book SynopsisDATA CONSCIENCE ALGORITHMIC S1EGE ON OUR HUM4N1TY EXPLORE HOW D4TA STRUCTURES C4N HELP OR H1NDER SOC1AL EQU1TY Data has enjoyed bystander' status as we've attempted to digitize responsibility and morality in tech. In fact, data's importance should earn it a spot at the center of our thinking and strategy around building a better, more ethical world. It's useand misuselies at the heart of many of the racist, gendered, classist, and otherwise oppressive practices of modern tech. In Data Conscience: Algorithmic Siege on our Humanity, computer science and data inclusivity thought leader Dr. Brandeis Hill Marshall delivers a call to action for rebel tech leaders, who acknowledge and are prepared to address the current limitations of software development. In the book, Dr. Brandeis Hill Marshall discusses how the philosophy of move fast and break things is, itself, broken, and requires change. You'll learn about the ways that discrimination rears its ugly head in the digital data space and how to address them with several known algorithms, including social network analysis, and linear regression A can't-miss resource for junior-level to senior-level software developers who have gotten their hands dirty with at least a handful of significant software development projects, Data Conscience also provides readers with: Discussions of the importance of transparencyExplorations of computational thinking in practiceStrategies for encouraging accountability in techWays to avoid double-edged data visualizationSchemes for governing data structures with law and algorithmsTable of ContentsForeword xix Introduction xxi Part I Transparency 1 Chapter 1 Oppression By. . . 3 The Law 4 Slave Codes 5 Black Codes 5 The Rise of Jim Crow Laws 8 Breaking Open Jim Crow Laws 11 Overt Surveillance 12 Surveillance at Scale 13 The Science 16 Numbers 16 Anthropometry 18 Eugenics 19 Summary 23 Notes 23 Recommended Reading 25 Chapter 2 Morality 27 Data Is All Around Us 29 Morality and Technology 33 Defining Tech Ethics 33 Mapping Tech Ethics to Human Ethics 39 Squeezing in Data Ethics 45 Misconceptions of Data Ethics 49 Misconception 1: Goodness of Data, and Tech by Proxy, Is Apolitical or Bipartisan 49 Misconception 2: Data Ethics Is Focused Solely on Laws Protecting Confidentiality and Privacy 50 Misconception 3: Implementing Data Ethics Practices Will Make Data Objective 52 Notable Misconception Mentions: Ethics and Diversity, Equity, and Inclusion (DEI) Are Interchangeable 53 Another Notable Mention: Software Developers Are Only Responsible for Societal Outcomes Stemming from Their Code 54 Limits of Tech and Data Ethics 55 Summary 57 Notes 57 Chapter 3 Bias 61 Types of Bias 62 Defining Bias 63 Concrete Example of Biases 65 The Bias Wheel 70 Before You Code 73 Case Study Scenario: Data Sourcing for an Employee Candidate Résumé Database 77 Case Study Scenario: Data Manipulation for an Employee Candidate Résumé Database 78 Case Study Scenario: Data Interpretation for an Employee Candidate Résumé Database 82 Bias Messaging 83 Summary 83 Notes 84 Chapter 4 Computational Thinking in Practice 87 Ready to Code 88 The Shampoo Algorithm 89 Computational Thinking 91 Coding Environments 93 Algorithmic Justice Practice 95 Code Cloning 97 Socio-Techno-Ethical Review: app.py 101 Socio-Techno-Ethical Review: screen.py 103 Socio-Techno-Ethical Review: search.py 109 Summary 114 Notes 114 Part II Accountability 117 Chapter 5 Messy Gathering Grove 119 Ask the Why Question 120 Collection 124 Open Source Dataset Example: Deciding Data Ownership 127 Open Source Dataset Example: Considering Data Privacy 129 Reformat 133 Summary 139 Notes 139 Chapter 6 Inconsistent Storage Sanctuary 143 Ask the “What” Question 144 Files, Sheets, and the Cloud 146 Decisions in a Vacuum 149 Case Study: Black Twitter 150 Modeling Content Associations 153 Manipulating with SQL 158 Summary 160 Notes 161 Chapter 7 Circus of Misguided Analysis 163 Ask the “How” Question 164 Misevaluating the “Cleaned” Dataset 169 Overautomating k, K, and Thresholds 177 Deepfake Technology 179 Not Estimating Algorithmic Risk at Scale 185 Summary 187 Notes 187 Chapter 8 Double-Edged Visualization Sword 191 Ask the “When” Question 192 Critiquing Visual Construction 197 Disabilities in View 201 Pretty Picture Mirage 204 Case Study: SAT College Board Dataset 207 Summary 208 Notes 209 Part III Governance 213 Chapter 9 By the Law 215 Federal and State Legislation 216 International and Transatlantic Legislation 219 Regulating the Tech Sector 221 Summary 228 Notes 228 Chapter 10 By Algorithmic Influencers 231 Group (Re)Think 232 Flyaway Fairness 238 Algorithmic Fairness 239 Broadening Fairness 241 Moderation Modes 245 Double Standards 246 Calling Out Algorithmic Misogynoir 252 Data and Oversight 254 Summary 256 Notes 256 Chapter 11 By the Public 263 Freeing the Underestimated 264 Learning Data Civics 267 The State of the Data Industry 271 Living in the 21st Century 273 Condemning the Original Stain 277 Tech Safety in Numbers 279 Summary 283 Notes 283 Appendix A Code for app.py 287 A 287 B 288 C 288 D 289 Appendix B Code for screen.py 291 A 291 B 294 C 295 Appendix C Code for search.py 297 A 297 B 300 C 301 D 303 Appendix D Pseudocode for faceit.py 305 Appendix E The Data Visualisation Catalogue’s Visualization Types 309 Appendix F Glossary 313 Index 315
£24.79
McGraw-Hill Education Loose Leaf for FORTRAN for Scientists Engineers
Book Synopsis
£106.20
McGraw-Hill Education RSLogix PLC Manual for use with Programmable
Book Synopsis
£109.99
Cengage Learning, Inc Microsoft Visual Basic 2015
Book SynopsisOnly MICROSOFT? VISUAL BASIC? 2015: RELOADED pairs fundamental programming concepts with both business applications and fun, engaging game applications. This fully revised 6th Edition provides a solid foundation in programming principles while clearly demonstrating how to most effectively use those principles. The book begins by covering the basics, from creating user interfaces to understanding variables, constants, and calculations. Building on this knowledge, coverage progresses to more advanced topics, such as manipulating and querying a Microsoft? Access database, creating Web applications, and creating classes and objects. This new edition combines powerful, proven learning features from previous editions with the latest content. Clear explanations detail the new features of Visual Basic? 2015 while new examples and applications illustrate how those features can work for you.Table of ContentsOverview: An Introduction to Programming. 1. An Introduction to Visual Basic 2015. 2. Creating a User Interface. 3. Memory Locations and Calculations. 4. Making Decisions in a Program. 5. More on the Selection Structure. 6. Repeating Program Instructions. 7. More on the Repetition Structure. 8. Sub and Function Procedures. 9. Arrays. 10. String Manipulation and Menus. 11. Structures and Sequential Files. 12. Access Databases and LINQ. 13. Creating Simple Web Applications. 14. Creating Classes and Objects. Appendix A: Answers to Mini-Quizzes. Appendix B: How to Boxes. Appendix C: Most Commonly Used Properties of Objects. Appendix D: Visual Basic Conversion Functions. Appendix E: Finding and Fixing Program Errors.
£251.59
Cengage Learning, Inc JavaScript
Book SynopsisNow in its sixth edition, JAVASCRIPT guides beginning programmers through web application development using the JavaScript programming language. As with previous editions of the book, the authors introduce key web authoring techniques with a strong focus on industry application. New coverage includes developing for touchscreen and mobile devices, and using the jQuery library. A real-world project, similar to what students would encounter in a professional setting, is developed chapter by chapter. Because professional web development jobs often require programmers to add features to existing sites, each chapter project uses a professionally designed web site. After completing a course using this textbook, students will be able to use JavaScript to build professional quality, dynamic web sites.
£163.78
Barcharts, Inc XRay Tech
Book SynopsisX-ray tech/diagnostic radiology (DR) is tried-and-true healthcare modality, yet ever-changing technology makes it a continually challenging field. Our comprehensive 3-panel (6-page) guide will make it all easy to understand, including the differences between DR and radiation therapy (RT). All key aspects of DR -- from basic radiophysics to diagnostic testing procedures -- are covered in-depth with up-to-date information, enhanced by useful charts and tables. Each section features The Tech Knows summary of critical points, set off graphically for easy reference.
£11.77
Barcharts, Inc Facebook
Book SynopsisKnowing how to use Facebook to network and market yourself or your business gives a single person unlimited potential for reaching over 1 billion users in 60 countries. This tool will show you how to manage the marketing on your personal profile and business pages. Authored by an expert and consultant in cutting edge marketing strategies, this well-rounded guide will immediately change the way you use Facebook and the way you market your business. 6-page laminated guide includes: Profile vs. Page Your Personal Facebook Profile Networking How Facebook Can Benefit Businesses & Brands Your Business's Facebook Page Facebook Advertising Options Creating Calls to Action on Your Page How to Manage a Page with Multiple Admins How to Schedule Posts Facebook Apps Contests & Promotions Incorporate Facebook into Your Overall Marketing Strategy Helpful Resources within Facebook
£9.36
MC Press, LLC How to Become a Highly Paid Corporate Programmer
Book SynopsisWritten for those gifted coders and programmers who get wrapped up in how complex their code is and forget the basics of how to be successful in a corporate culture, this guide will help put these programmers on the fast track to promotions and raises. Programmers fresh out of technical school are shown how to make the transition into a corporate setting by managing the interview process, learning from the programmers already in the workplace, and learning the business side of programming. Seasoned programmers are provided with tips on how to please supervisors, how to maximize their worth in corporations, and how to develop mentoring relationships. Advice on moving out of the corporate world and becoming an entrepreneur either in the consulting arena, in writing package software, or in founding a software development company is also provided.Table of ContentsSection I: Starting a Successful Programming Career 1: How Much Are You Worth? 2: A Primer for Fledgling Programmers 3: What Your Boss Really Wants From You 4: Tips From a Technical Interviewer 5: Final Interview? Ask These Questions 6: What You Won't Learn in Programming School 7: The Beauty of Borrowed Code 8: Learning from the Masters 9: Techies and Bit-Twiddlers Are Doomed Section II: Thriving in a Competitive Environment 10: Harnessing the Brute Force of Calculation 11: Take on the Tough Jobs 12: Mission: Impossible 13: How Your Work Is Tracked 14: Boost Your Output, Lower Your Stress With Productivity Tools 15: A Blueprint for Savvy Programming 16: Master Millions of Lines of Complex Code 17: Good Enough Programming for the Seasoned Programmer 18: How Seasoned Programmers Stay at the Top of Their Game 19: Self-Management Tips for the Seasoned Professional 20: Spotting Opportunities, Skirting Land Mines Section III: Mastering the Corporate Culture 21: Slipping Into a New Corporate Culture 22: Mentors and Mentees 23: How Do You Deal with the End User? 24: When You Get a Really Bad Boss 25: A Raise and a Promotion In-House 26: A Big Push Out of the House Section IV: Beyond Programming 27: Jumping to Management 28: The Top of the Pyramid: The Programming Consultant 29: Write for Your Industry 30: Founding and Running Your Own Firm 31: Inventing Your Own Software 32: Marketing Your Product
£21.95
MC Press, LLC Qshell for iSeries
Book SynopsisFrom the basics of programming in the Qshell on iSeries to complete coverage of previously undocumented topics, programmers will not only learn the Qshell more easily than they can with the Qshell manual from IBM, they will also learn practical applications of using the Qshell effectively. Written for users who are more comfortable with DDS, CL, and RPG as well as those using modern languages such as C and Java, this book allows those who are unfamiliar with Unix to easily learn this technology, which otherwise might be foreign to them. Although written specifically for iSeries programmers, the information gleaned here will be largely applicable to the shells for Linux and Unix, so programmers not familiar with those platforms will find those shells much easier to learn after learning Qshell.Table of ContentsPrefaceChapter 1: IntroductionChapter 2: Running QshellChapter 3: The EDTF Text EditorChapter 4: ScriptingChapter 5: Parameters and Variables DefinedChapter 6: Using Parameters and VariablesChapter 7: The Exit Status and Decision MakingChapter 8: Additional Control StructuresChapter 9: The Integrated File SystemChapter 10: Input and OutputChapter 11: Command-Line ArgumentsChapter 12: CommandsChapter 13: FunctionsChapter 14: Path Name Expansion (Globbing)Chapter 15: Signals & trapsChapter 16: ArchivesChapter 17: grep Scan UtilityChapter 18: sed EditorChapter 19: Writing Programs for QshellChapter 20: Additional OS/400 specific featuresChapter 21: Application Development ToolsChapter 22: Perl application developmentChapter 23: Java application developmentChapter 24: C/C++ application developmentAppendix A: Summary of changes by releaseAppendix B: Qshell vs. DOS
£66.50
MC Press, LLC SQL for eServer i5 and iSeries
Book SynopsisThis examination of how SQL functions on the iSeries considers at all possible environments, including the traditional 5250 green screen applications, the SQL scripting tool within iSeries Navigator, and Visual Basic. Database management from creation to deletion is covered in detail. Programmers will learn how to implement referential constraints and primary and unique key indexes, check constraints, and journal physical files. How to extend a database with user-defined functions and procedures and how the new GUI development tools provide simplified methods for running, debugging, and tuning SQL statements are also explained.Table of ContentsIntroduction Ch 1: Interactive SQL Ch 2: SQL in iSeries Navigator Ch 3: Embedded SQL Ch 4: Advanced SQL Examples Ch 5: Optimizing SQL Ch 6: Creating Databases Objects Ch 7: Creating Functions Ch 8: Creating Stored Procedures Ch 9: Creating SQL-based Tools Ch 10: Using SQL from within Microsoft Office Appendix A: SQL Basics for Beginners
£54.15
MC Press, LLC SOA for the Business Developer: Concepts, BPEL,
Book SynopsisService-Oriented Architecture (SOA) is a way of organizing software. If your company’s development projects adhere to the principles of SOA, the outcome will be an inventory of modular units called ""services,"" which allow for a quick response to change.This book tells the SOA story in a simple, straightforward manner that will help you understand not only the buzzwords and benefits, but also the technologies that underlie SOA: XML, WSDL, SOAP, XPath, BPEL, SCA, and SDO. And through it all, the authors provide business examples and illustrations, giving a practical meaning to abstract ideas.SOA for the Business Developer• Gives a detailed overview of Extensible Markup Language (XML), including namespaces and XML schema.• Describes Web Services Definition Language (WSDL) and SOAP, the standard SOA technologies.• Gives a clear tutorial on XML Path Language (XPath), a language for deriving data from transmitted messages and other sources. XPath is useful for working with a variety of other technologies, including several described in this book.• Gives comprehensive details on BPEL 2.0, a language that coordinates services and whose preceding version is already in numerous products. Our coverage is sufficient for most of your work with BPEL and includes a quick-reference guide.• Introduces Service Component Architecture (SCA), a proposed standard for composing and deploying applications. You’re sure to hear more of SCA, which is sponsored by 18 companies, including IBM, Oracle, and Sun Microsystems.• Introduces Service Data Objects (SDO), a proposed standard for representing data in a single way, even if the data comes from different types of data sources. SDO is likely to accompany SCA into the limelight.Trade Review"Stands out from the crowd, complementing the 100+ books now available on SOA." —Norbert Bieberstein, author, Service-Oriented Architecture Compass "Offers a comprehensive yet very approachable introduction to service-oriented architecture." —Grady Booch, IBM Fellow and cocreator of the Unified Modeling Language "Should be on the must-read list for every business and IT manager." —Bob Thomas, publisher, Align Journal "Covers services and their recursive composition into more complex services at a profound technical level, incorporating all relevant WS-* standards." —Matthias Kloppmann, IBM Distinguished Engineer, Business Process Technology "Weaves [SOA] into a coherent pattern that ordinary mortals can hope to understand and, more importantly, practically apply to their own situations." —Michael Guttman, Object Management Group authority on Model Driven Architecture (MDA) and coauthor, Real-Life MDA "Gives programmers and managers a friendly and rapid introduction to service-oriented architecture, with practical examples." —Frank Cohen, author, FastSOA "Margolis and Sharpe (both, IBM) provide a very comprehensive introduction to Service Oriented Architecture (SOA) for programmers. Highly recommended." —Choice
£33.20
MC Press, LLC Advanced Guide to PHP on IBM i
Book SynopsisWorking through many of the concepts and skills needed by intermediate and advanced PHP developers, this book is specifically designed to help good PHP developers become indispensable ones. Topics include debugging, test-driven development, web-based development, advanced object-oriented programming, and web security, and the book also takes an in-depth look at the new PHP Toolkit for IBM i provided by Zend Technologies. Upon completion of this book, readers will be able to use its principles as a basis for architecting complex applications, building web services according to the best standards currently available, significantly reducing the time spent discovering and fixing errors in code, designing architectures that are testable and predictable, building secure applications by protecting against most known attacks, and avoiding and preparing for common performance issues.
£61.49
Franklin, Beedle & Associates Inc Problem Solving with Algorithms and Data
Book SynopsisThis textbook is about computer science. It is also about Python. However, there is much more. The study of algorithms and data structures is central to understanding what computer science is all about.Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence.This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving.The authors cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.This textbook has three key features:- A strong focus on problem solving introduces students to the fundamental data structures and algorithms by providing a very readable text without introducing an overwhelming amount of new language syntax.- Algorithm analysis in terms of Big-O running time is introduced early and applied throughout.- Python is used to facilitate the success of beginning students in using and mastering data structures and algorithms.Table of ContentsIntroduction; Algorithm Analysis; Basic Data Structures; Recursion; Searching and Sorting; Trees; Graphs; Additional Topics.
£41.61
No Starch Press,US The Artist's Guide To Gimp, 2nd Edition
Book SynopsisAs a full-featured, free alternative to Adobe Photoshop, GIMP is one of the world's most popular open source projects. The latest version of GIMP (2.8) brings long-awaited improvements and powerful new tools to make graphic design and photo manipulation even easier but it's still a notoriously challenging program to use. The Artist's Guide to GIMP teaches you how to use GIMP without a tedious list of menu paths and options. Instead, as you follow along with Michael J. Hammel's step-by-step instructions, you'll learn to produce professional-looking advertisements, apply impressive photographic effects, and design cool logos and text effects. These extensively illustrated tutorials are perfect for hands-on learning or as templates for your own artistic experiments. After a crash course in GIMP's core tools like brushes, patterns, selections, layers, modes, and masks, you'll learn: Photographic techniques to clean up blemishes and dust, create sepia-toned antique images, swap colors, prTrade Review"A really instructive book that is expanding my knowledge of the program. Users who are looking to get more out of the GIMP might want to check it out."—Ryan Paul, Ars Technica"All in all I feel this is a brilliant book."—Jayson Broughton, Linux Journal"For anyone wanting to familiarize themselves with GIMP, The Artist's Guide, either as paper or an ebook, is one of the best resources on its subject available in any medium."—Bruce Byfield, Linux Magazine"This resource is a solid stepping stone."—Oma Dial, GIMP Magazine"The design is clear and concise, while the structure of the book will take the reader from a complete GIMP beginner to a confident designer."—Graham Morrison, Linux Format"This is a really, really good book. It explains everything well, in detail, without expecting any prior knowledge from you."—Tony Mobily, Free Software Magazine"A very good book if you want to create your own artistic pieces with GIMP. It's well explained with big photos, good design and it will teach you lot of things covering a wide range of GIMP's uses."—Ramon Miranda, creator of GIMP Paint Studio"It's a good book, with decent instructions and engaging projects that any competent computer user should be able to handle, whether or not they have previous experience with an image editing package."—Phil Bull, author of the official Ubuntu documentation"I highly recommend this book for anyone who wants to learn photo manipulation, advertising style and creating your own web graphics, such as buttons, logos or mouseover menus."—Ken Hess, The Frugal Networker"The Artist's Guide to GIMP, 2nd Edition was easy for me to read and helped me do exactly what I set out to do in a short amount of time."—Beginlinux.com"I would definitely recommend The Artist's Guide to GIMP to those who want an all-round, practical book on how to use GIMP."—Kevin Unhammer, Software Engineer"Hammel has done an excellent job of creating a number of chapters focused on creating beautiful artwork with GIMP. The chapter on setting up GIMP would be especially useful to absolute beginners."—Partha Bagchi, GIMP advocate and blogger"The material is extremely solid, well organized, and pertinent for new or mid-level GIMP practitioners."—Matt Paddock, Game Vortex"This is what I want from a book."—John D. Cook, The EndeavourTable of ContentsAbout the AuthorAbout the Technical ReviewerAcknowledgmentsIntroductionChapter 1: Fundamental TechniquesChapter 2: Photographic EffectsChapter 3: Web DesignChapter 4: Advertising and Special EffectsChapter 5: Type EffectsChapter 6: Creative Inspiration
£30.39
No Starch Press,US Ruby Wizardry
Book SynopsisThe Ruby programming language is perfect for beginners: easy to learn, powerful, and fun to use! But wouldn't it be more fun if you were learning with the help of some wizards and dragons? Ruby Wizardry is a playful, illustrated tale that will teach you how to program in Ruby by taking you on a fantastical journey. As you follow the adventures of young heroes Ruben and Scarlet, you ll learn real programming skills, like how to: Use fundamental concepts like variables, symbols, arrays, and strings Work with Ruby hashes to create a programmable breakfast menu Control program flow with loops and conditionals to help the Royal Plumber Test your wild and crazy ideas in IRB and save your programs as scripts Create a class of mini-wizards, each with their own superpower! Organize and reuse your code with methods and lists Write your own amazing interactive stories using Ruby Along the way, you ll meet colorful characters from around the kingdom, like the hacker Queen, the Off-White KnTable of ContentsForeword by Steve Klabnik AcknowledgmentsChapter 1: What This Book’s AboutChapter 2: The King and His StringChapter 3: Pipe DreamsChapter 4: Staying in the LoopChapter 5: Array of Sunshine and Hash on the RangeChapter 6: The (Chunky) Bacon to Ruby’s HashChapter 7: The Magic of Methods and BlocksChapter 8: Everything Is an Object (Almost)Chapter 9: Inheriting the Magic of RubyChapter 10: A Horse of a Different ColorChapter 11: Second Time’s the CharmChapter 12: Reading, Writing, and Ruby MagicChapter 13: Follow the WEBrick RoadChapter 14: Where to Go NextAppendix A: Installing Ruby on Mac and LinuxAppendix B: TroubleshootingIndex
£23.19
No Starch Press,US The Smart Girl's Guide To Privacy
Book SynopsisThe whirlwind of social media, online dating, and mobile apps can make life a dream or a nightmare. For every trustworthy website, there are countless jerks, bullies, and scam artists who want to harvest your personal information for their own purposes. But you can fight back, right now. In The Smart Girl s Guide to Privacy, award-winning author and investigative journalist Violet Blue shows you how women are targeted online and how to keep yourself safe. Blue s practical, user-friendly advice will teach you how to: Delete personal content from websites Use website and browser privacy controls effectively Recover from and prevent identity theft Figure out where the law protects you and where it doesn t Set up safe online profiles Remove yourself from people-finder websites Even if your privacy has already been compromised, don t panic. It s not too late to take control. Let The Smart Girl s Guide to Privacy help you cut through the confusion and start protecting your online lifeTrade Review“An illuminating handbook for women.”—ELLE Magazine“A must-read for women of all ages.”—ChicagoNow"One of the best resources for learning to protect your online communications is Violet Blue’s The Smart Girl’s Guide to Privacy. The book is relevant for both men and women who want to strengthen their cybersecurity and online privacy."—Joe Kukura, SF Weekly“The Smart Girl’s Guide to Privacy is specifically geared toward women and other vulnerable members of the online population who need guidance navigating the murky, often treacherous waters of the Internet.”—The Daily Dot"If you have someone in your life who might be unaware of the various dangers lurking online (like a parent, child, or friend), gift them a copy of this book that covers online security and privacy basics. Blue does a commendable job of ensuring the reader stays informed, but far from overwhelmed."—Britt Kemp, Bishop Fox Labs“Women face unique threats and have to deal with safety and privacy issues that few–if any–men will ever even be aware of, much less concerned about. Violet Blue does an excellent job of describing what those issues are and providing simple, actionable advice to help readers stay safe online.”—Tony Bradley, techspective“In this must-read for anyone who uses their laptop or phone to go online, Blue details the numerous ways women and LGBT people especially face security risks . . . including identity theft, revenge porn, stalking, and all manner of scams.”—DAME Magazine“It’s up to each one of us to protect our own privacy, and The Smart Girl’s Guide to Privacy is a crucial weapon in that fight.”—Book Riot“The internet can be both an exciting and a scary place, so consider going through The Smart Girl's Guide to Privacy with your parents when you’re ready to start exploring widely.”—New Moon Girls“The Smart Girl's Guide To Privacy is ‘the talk’ 2.0 that all girls need. Heck, everybody needs this book. We all want our privacy, the majority just don’t realize how much we have already lost on that front.”—404 Tech Support“A smart, engaging read that's also super useful.”—SFist“Violet Blue is not just a writer and journalist; she’s also a friend and advocate to every female* who has a computer or smart phone...This book is highly recommended for public and school libraries, as well as social science and technology classes.”—Becky Walton, Ingram Collection Development Librarian
£15.29
No Starch Press,US Facebook For Seniors
Book SynopsisFacebook is the world s largest internet community. It s used by millions of people like you to connect with family and friends, share photos, and stay in touch. But if you re new to Facebook, getting started can be a little tricky. Based on award-winning computer classes for seniors, the 12 lessons in Facebook for Seniors will show you how to do things like: Sign up for Facebook and connect with family members and old friends Instantly share photos and messages Keep up-to-date with friends and loved ones Chat about cars, gardening, travel, or anything else that interests you Play games, and RSVP to parties and other events Keep your account safe and secure Step-by-step instructions and full-color images make it easy to follow along. Activities throughout help you practice what you ve learned, and if you get stuck, just flip to the solutions at the back of the book! Why let the kids have all the fun? Join the party.Table of ContentsPrefaceLesson 1: Joining FacebookLesson 2: Meeting FacebookLesson 3: Your ProfileLesson 4: Facebook FriendsLesson 5: Creating Text PostsLesson 6: Posting Photos and VideosLesson 7: Posting with FriendsLesson 8: Playing GamesLesson 9: GroupsLesson 10: Messenger and ChatLesson 11: EventsLesson 12: Privacy and Security Solutions
£20.39
ISTE Ltd and John Wiley & Sons Inc Ant Colony Optimization and Constraint
Book SynopsisAnt colony optimization is a metaheuristic which has been successfully applied to a wide range of combinatorial optimization problems. The author describes this metaheuristic and studies its efficiency for solving some hard combinatorial problems, with a specific focus on constraint programming. The text is organized into three parts. The first part introduces constraint programming, which provides high level features to declaratively model problems by means of constraints. It describes the main existing approaches for solving constraint satisfaction problems, including complete tree search approaches and metaheuristics, and shows how they can be integrated within constraint programming languages. The second part describes the ant colony optimization metaheuristic and illustrates its capabilities on different constraint satisfaction problems. The third part shows how the ant colony may be integrated within a constraint programming language, thus combining the expressive power of constraint programming languages, to describe problems in a declarative way, and the solving power of ant colony optimization to efficiently solve these problems.Trade Review"In this volume, Solnon (U. of Lyon, France) introduces ant colony optimization and its application to a range of combinatorial problems, with a focus on constraint programming." (Book News, September 2010) Table of ContentsForeword xi Acknowledgements xiii Chapter 1. Introduction 1 1.1. Overview of the book 2 Chapter 2. Computational Complexity 7 2.1. Complexity of an algorithm 8 2.2. Complexity of a problem 10 2.3. Where the most difficult instances can be found 15 2.4. Solving NP-hard problems in practice 21 PART I. CONSTRAINT PROGRAMMING 27 Introduction to Part I 29 Chapter 3. Constraint Satisfaction Problems 31 3.1. What is a constraint? 31 3.2. What is a constraint satisfaction problem? 33 3.3. Optimization problems related to CSPs 35 3.4. The n-queens problem 37 3.5. The stable marriage problem 43 3.6. Randomly generated binary CSPs 46 3.7. The car sequencing problem 47 3.8. Discussion 50 Chapter 4. Exact Approaches 53 4.1. Construction of a search tree 53 4.2. Constraint propagation 57 4.3. Ordering heuristics 60 4.4. From satisfaction to optimization problems 63 4.5. Discussion 65 Chapter 5. Perturbative Heuristic Approaches 69 5.1. Genetic algorithms 70 5.2. Local search 73 5.3. Particle swarm optimization 78 5.4. Discussion 80 Chapter 6. Constructive Heuristic Approaches 85 6.1. Greedy randomized approaches 86 6.2. Estimation of distribution algorithms 88 6.3. Ant colony optimization 90 6.4. Discussion 91 Chapter 7. Constraint Programming Languages 93 7.1. Constraint logic programming 94 7.2. Constraint programming libraries 96 7.3. Constraint-based local search 96 7.4. Discussion 99 PART II. ANT COLONY OPTIMIZATION 101 Introduction to Part II 103 Chapter 8. From Swarm Intelligence to Ant Colony Optimization 105 8.1. Complex systems and swarm intelligence 106 8.2. Searching for shortest paths by ant colonies 108 8.3. Ant system and the traveling salesman problem 111 8.4. Generic ACO framework 116 Chapter 9. Intensification versus Diversification 125 9.1. ACO mechanisms for intensifying the search 125 9.2. ACO mechanisms for diversifying the search 127 9.3. Balancing intensification and diversification 128 9.4. Measures of diversification/intensification 135 Chapter 10. Beyond Static Combinatorial Problems 141 10.1. Multi-objective problems 141 10.2. Dynamic optimization problems 145 10.3. Optimization problems over continuous domains 147 Chapter 11. Implementation Issues 151 11.1. Data structures 151 11.2. Selection of a component with respect to probabilities 154 11.3. Implementation of a local search procedure 157 11.4. Computation of diversification/intensification measures 157 PART III. CP WITH ACO 161 Introduction to Part III 163 Chapter 12. Sequencing Cars with ACO 165 12.1. Notation 165 12.2. A first pheromone structure for identifying good car sequences 166 12.3. A second pheromone structure for identifying critical cars 171 12.4. Combining the two pheromone structures 173 12.5. Comparison of the different ACO algorithms 174 12.6. Comparison of ACO with state-of-the-art approaches 178 12.7. Discussion 182 Chapter 13. Subset Selection with ACO 185 13.1. Subset selection problems 186 13.2. Description of Ant-SSP 189 13.3. Instantiations of Ant-SSP with respect to two pheromone strategies 192 13.4. Instantiation of Ant-SSP to solve CSPs 196 13.5. Experimental results 197 13.6. Discussion 202 Chapter 14. Integration of ACO in a CP Language 205 14.1. Framework for integrating ACO within a CP library 206 14.2. Illustration of ACO-CP on the car sequencing problem 210 14.3. Discussion 214 Chapter 15. Conclusion 215 15.1. Towards constraint-based ACO search 215 15.2. Towards a reactive ACO search 216 Bibliography 219 Index 231
£132.00
ISTE Ltd and John Wiley & Sons Inc Trends in Constraint Programming
Book SynopsisThis title brings together the best papers on a range of topics raised at the annual International Conference on Principles and Practice of Constraint Programming. This conference provides papers and workshops which produce new insights, concepts and results which can then be used by those involved in this area to develop their own work.Table of ContentsIntroduction 17 Frédéric Benhamou, Narendra Jussien, Barry O’Sullivan Part I. The Past, Present and Future of Constraint Programming 23 Frédéric Benhamou, Narendra Jussien , Barry O’Sullivan Chapter 1. Constraint Programming as Declarative Algorithmics 25 Pascal Van Hentenryck 1.1. The CHIP project 26 1.2. The Numerica project 32 1.3. The OPL project 34 1.4. The Comet project 35 1.5. The future of constraint programming 38 Chapter 2. Constraint Programming Tools 41 Laurent Michel, Christian Schulte, Pascal Van Hentenryck 2.1. Introduction 41 2.2. Invited talks 43 2.2.1. The development of an industrial CP tool (Jean-François Puget) 43 2.2.2. System design: taking informed decisions (Christian Schulte) 45 2.3. System presentations 48 2.3.1. ECLiPSe 48 2.3.2. SICStus FD 48 2.3.3. G12 49 2.3.4. DiSolver 49 2.3.5. MINION 50 2.3.6. Choco 50 2.3.7. Gecode 51 2.3.8. Comet 52 2.3.9. JaCoP 53 2.3.10. Borderwijk 54 2.4. Panels 54 2.5. Conclusion 56 2.6. References 57 Chapter 3. The Next 10 Years of Constraint Programming 59 Lucas Bordeaux, Barry O’Sullivan, Pascal Van Hentenryck 3.1. Pedro Barahona 61 3.2. Christian Bessiere 63 3.3. Peter Jeavons 64 3.4. Pedro Meseguer 66 3.5. Gilles Pesant 68 3.6. Francesca Rossi 70 3.7. Thomas Schiex 72 3.8. Christian Schulte 74 3.9. Meinolf Sellmann 75 3.10. Mark Wallace 77 3.11. Toby Walsh 79 3.12. Roland Yap 80 3.13. References 81 Chapter 4. Constraint Propagation and Implementation 83 Marc van Dongen, Christophe Lecoutre 4.1. Filtering algorithms for precedence and dependency constraints (by Roman Barták and Ondøej Èepek) 84 4.1.1. Problem description and related works 84 4.1.2. Filtering rules for precedence and dependency constraints 85 4.1.3. Summary 87 4.2. A study of residual supports in arc consistency (by Christophe Lecoutre and Fred Hemery) 87 4.3. Maintaining singleton arc consistency (by Christophe Lecoutre and Patrick Prosser) 89 4.3.1. Mixed consistency 90 4.3.2. Checking existential-SAC 91 4.3.3. Conclusion 92 4.4. Probabilistic singleton arc consistency (by Deepak Mehta and Marc van Dongen) 93 4.5. Simplification and extension of the SPREAD constraint (by Pierre Schaus, Yves Deville, Pierre Dupont and Jean-Charles Régin) 95 4.5.1. Filtering of π 96 4.5.2. Filtering of X 97 4.5.3. Conclusion 99 4.6. A new filtering algorithm for the graph isomorphism problem (by Sébastien Sorlin and Christine Solnon) 99 4.6.1. A global constraint for the graph isomorphism problem 99 4.6.2. ILL-consistency and ILL-filtering 100 4.6.3. Experimental results 102 4.7. References 103 Chapter 5. On the First SAT/CP Integration Workshop 105 Youssef Hamadi, Lucas Bordeaux 5.1. The technical program 106 5.1.1. The invited talk 106 5.1.2. Contributions related to SMT and solver integration 106 5.1.3. Contributions related to the use of SAT techniques to improve CSP/CP solvers 107 5.1.4. Other contributions 108 5.2. The panel session 109 5.2.1. Are SAT and CP different or similar? 109 5.2.2. Why has SAT succeeded in reducing the tuning issue? 111 5.2.3. How long can the current generation of SAT solvers evolve? 113 5.2.4. Were performance issues correctly addressed by CP? 115 5.2.5. Was CP too ambitious? 118 5.2.6. Do we still need CP? 119 5.3. Summary, future directions and conclusion 121 5.4. References 122 Chapter 6. Constraint-Based Methods for Bioinformatics 125 Alessandro Dal Palù, Agostino Dovier, Franæois Fages, Sebastian Will 6.1. On using temporal logic with constraints to express biological properties of cell processes (by François Fages) 126 6.2. Modeling biological systems in stochastic concurrent constraint programming (by Luca Bortolussi and Alberto Policriti) 129 6.3. Chemera: constraints in protein structural problems (by Pedro Barahona and Ludwig Krippahl) 132 6.4. Exploiting model checking in constraint-based approaches to the protein folding problem (by Elisabetta De Maria, Agostino Dovier, Angelo Montanari and Carla Piazza) 134 6.5. Global constraints for discrete lattices (by Alessandro Dal Palù, Agostino Dovier and Enrico Pontelli) 136 6.6. Counting protein structures by DFS with dynamic decomposition (by Sebastian Will and Martin Mann) 138 6.7. Suffix array and weighted CSPs (by Matthias Zytnicki, Christine Gaspin and Thomas Schiex) 141 6.8. Supertree construction with constraint programming: recent progress and new challenges (by Patrick Prosser) 143 6.9. References 145 Part II. Constraint Modeling and Reformulation 147 Ian Miguel, Steven Prestwich Chapter 7. Improved Models for Graceful Graphs 151 Jean-François Puget, Barbara Smith 7.1. Introduction 151 7.2. A direct model 152 7.3. The edge-label model 154 7.4. A combined model 156 7.5. Experimental results 157 7.6. Discussion 160 7.7. References 161 Chapter 8. The Automatic Generation of Redundant Representations and Channeling Constraints 163 Bernadette Martínez-Hernández, Alan M. Frisch 8.1. Introduction 163 8.2. Representations 167 8.3. Alternative representations and channels 168 8.3.1. Alternative representations 168 8.3.2. Constraint-wise quasi-representations and channeling constraints 169 8.4. Refinement 174 8.5. Systematic generation of channeling constraints 177 8.6. Producing the best alternative for channeling 179 8.7. Conclusions and future work 180 8.8. References 180 Part III. Symmetry in Constraint Satisfaction Problems 183 Alastair Donaldson, Peter Gregory, Karen Petrie Chapter 9. GAPLex: Generalized Static Symmetry Breaking 187 Chris Jefferson, Tom Kelsey, Steve Linton, Karen Petrie 9.1. Background and introduction 188 9.1.1. Group theory for CSPs 190 9.1.2. Using GAP to break CSP symmetries 191 9.2. GAPLex 192 9.2.1. Motivation and rationale 192 9.2.2. Motivating example 193 9.2.3. The GAPLex algorithms 193 9.3. Empirical evaluation 196 9.3.1. Combining GAPLex with incomplete static SB methods 197 9.3.2. Combining GAPLex with Puget’s all-different constraints 198 9.4. Conclusions and future work 199 9.5. References 199 Chapter 10. Symmetry Breaking in Subgraph Pattern Matching 203 Stéphane Zampelli, Yves Deville, Pierre Dupont 10.1. Background and definitions 205 10.2. Variable symmetries 207 10.2.1. Detection 207 10.2.2. Breaking 207 10.3. Value symmetries 208 10.3.1. Detection 208 10.3.2. Breaking 208 10.4. Experimental results 209 10.5. Local value symmetries 211 10.5.1. Dynamic target graph 212 10.5.2. Partial dynamic graphs 214 10.6. Conclusion 215 10.7. References 216 Part IV. Interval Analysis, Constraint Propagation and Applications 219 Christophe Jermann, Yahia Lebbah, Djamila Sam-Haroud Chapter 11. Modeling and Solving of a Radio Antenna Deployment Sup-port Application 223 Michael Heusch 11.1. Two simple models for the application 224 11.1.1. A first finite domain model 224 11.1.2. Shifting the model to mixed domains 225 11.1.3. Description of the search algorithm 225 11.1.4. Analysis of the performance on progressive deployment problems 226 11.2. Introducing the distn constraint 227 11.3. Modeling the application with the distn constraint 228 11.3.1. Revised model of the application 228 11.3.2. Numerical results when solving the LocRLFAP with distn 230 11.3.3. Qualitative analysis of the results 231 11.4. Conclusion 231 11.5. References 232 Chapter 12. Guaranteed Numerical Injectivity Test via Interval Analysis 233 Sébastien Lagrange, Nicolas Delanoue, Luc Jaulin 12.1. Interval analysis 235 12.2. Injectivity 236 12.2.1. Partial injectivity 236 12.2.2. Partial injectivity condition 238 12.3. ITVIA algorithm 241 12.4. Examples 242 12.4.1. Spiral function 243 12.4.2. Ribbon function 243 12.5. Conclusion 244 12.6. References 244 Chapter 13. An Interval-based Approximation Method for Discrete Changes in Hybrid cc 245 Daisuke Ishii, Kazunori Ueda, Hiroshi Hosobe 13.1. An overview of Hybrid cc 246 13.1.1. The Hybrid cc language 246 13.1.2. Implementation of Hybrid cc 247 13.2. The objective of the chapter 248 13.3. Background of interval arithmetic 248 13.3.1. Basic notions of interval arithmetic 249 13.3.2. ODE solving based on interval arithmetic 249 13.4. The proposed method 249 13.4.1. Assumptions on the proposed method 249 13.4.2. Trace algorithm 250 13.4.3. PruneAndMerge algorithm 251 13.5. Experimental results 252 13.6. Related work 253 13.7. Conclusion 254 13.8. References 254 Part V. Local Search Techniques in Constraint Satisfaction 257 Andrea Roli, Yehuda Naveh Chapter 14. Combining Adaptive Noise and Look-Ahead in Local Search for SAT 261 Chu Min Li, Wanxia Wei, Harry Zhang 14.1. Implementation of the adaptive noise mechanism in G2WSAT 262 14.2. Look-Ahead for promising decreasing variables 262 14.2.1. Promising score of a variable 262 14.2.2. Integrating limited look-ahead in adaptG2WSAT 263 14.3. Evaluation 264 14.4. Conclusion 266 14.5. References 266 Chapter 15. Finding Large Cliques using SAT Local Search 269 Steven Prestwich 15.1. SAT-encoding the clique problem 270 15.2. Notes on the bitwise at-most-one encoding 271 15.3. Experiments 272 15.4. Conclusion 273 15.5. References 274 Chapter 16. Multi-Point Constructive Search for Constraint Satisfac-tion: An Overview 275 Ivan Heckman, J. Christopher Beck 16.1. Background 276 16.2. Empirical study 277 16.3. Conclusion 279 16.4. References 280 Chapter 17. Boosting SLS Using Resolution 283 Anbulagan, Duc Nghia Pham, John Slaney, Abdul Sattar 17.1. SLS solvers 284 17.2. Preprocessors 285 17.3. Empirical evaluation 286 17.3.1. Clause weighting versus random walk 286 17.3.2. Matching preprocessors to solver-problem pairs 287 17.3.3. Multiple preprocessing and preprocessor ordering 287 17.4. Conclusion 288 17.5. References 288 Chapter 18. Growing COMET 291 Pascal Van Hentenryck, Laurent Michel 18.1. Constraint-based local search 291 18.2. COMET 292 18.3. Modeling 293 18.4. Search 295 18.5. References 296 Part VI. Preferences and Soft Constraints 299 Thomas Schiex Chapter 19. The Logic Behind Weighted CSP 303 Carlos Ansótegui, María L. Bonet, Jordi Levy, Felip Manyà 19.1. Preliminaries 304 19.2. The inference rule – soundness and completeness 307 19.3. Global consistency in WCSP 310 19.4. Local consistency in WCSP 311 19.5. Conclusions 314 19.6. References 316 Chapter 20. Dynamic Heuristics for Branch and Bound on Tree-Decomposition of Weighted CSPs 317 Philippe Jégou, Samba Ndojh Ndiaye, Cyril Terrioux 20.1. Introduction 317 20.2. Preliminaries 319 20.3. Dynamic orders in O(exp(w + 1)) 322 20.4. Bounded extensions of dynamic orders 324 20.5. Heuristics 325 20.5.1. Cluster orders 325 20.5.2. Variable orders 327 20.5.3. Heuristics for grouping variables in Classes 4 and 5 327 20.6. Experimental study 328 20.7. Discussion and conclusion 330 20.8. References 331 Part VII. Constraints in Software Testing, Verification and Analysis 333 Benjamin Blanc, Arnaud Gotlieb, Claude Michel Chapter 21. Extending a CP Solver with Congruences as Domains for Program Verification 337 Michel Leconte, Bruno Berstel 21.1. Related work 339 21.2. Congruences as domains 339 21.3. Propagation of congruences as domains 340 21.4. Cooperation of congruences and intervals 342 21.5. Conclusion 342 21.6. References 343 Chapter 22. Generating Random Values Using Binary Decision Dia-grams and Convex Polyhedra 345 Erwan Jahier, Pascal Raymond 22.1. BDD and convex polyhedra 346 22.2. The resolution algorithm 346 22.3. Choosing solutions 348 22.4. Available tools 349 22.5. Related work 350 22.6. Conclusion 351 22.7. References 351 Chapter 23. A Symbolic Model for Hash-Collision Attacks 353 Yannick Chevalier, Mounira Kourjieh 23.1. Terms and subterms 354 23.2. Analysis of reachability properties of cryptographic protocols 356 23.3. Model of a collision-aware intruder 357 23.3.1. Intruder on words 357 23.3.2. Intruder on words with free function symbols 358 23.3.3. Hash-colliding intruder 358 23.4. Conclusion 359 23.5. References 359 Chapter 24. Strategy for Flaw Detection Based on a Service-driven Model for Group Protocols 361 Najah Chridi, Laurent Vigneron 24.1. Protocol modeling and attack search 362 24.1.1. Input of the method 362 24.1.2. Searching for attacks in group protocols 363 24.1.3. Intruder knowledge management 365 24.1.4. Constraint management 366 24.2. Verification results 366 24.3. Summary and future work 367 24.4. References 368 Part VIII. Constraint Programming for Graphical Applications 369 Marc Christie, Hiroshi Hosobe and Kim Marriott Chapter 25. Trends and Issues in using Constraint Programming for Graphical Applications 371 Marc Christie, Hiroshi Hosobe and Kim Marriott 25.1. More powerful constraint-solving techniques 373 25.1.1. Mixture of discrete and continuous constraints 373 25.1.2. Mixture of linear, polynomial, geometric and non-linear constraints 373 25.1.3. Managing user interaction 374 25.1.4. Managing preferences 374 25.1.5. Generic techniques 375 25.2. Better modeling and understanding of constraint systems by the end-user 376 25.2.1. Model specification 376 25.2.2. Extensibility 377 25.2.3. Constraint representation 377 25.2.4. Understanding constraint interaction during solving 377 25.3. Bridging the gap between the solver and the application semantics 378 25.3.1. High-level modeling 379 25.3.2. Support for interaction 379 25.4. Conclusion 379 25.5. References 380 Chapter 26. A Constraint Satisfaction Framework for Visual Problem Solving 383 Bonny Banerjee, Balakrishnan Chandrasekaran 26.1. The framework 384 26.1.1. A language for expressing visual problems 384 26.1.2. A visual problem solver 388 26.2. Applications 390 26.3. Conclusion 393 26.4. References 393 Chapter 27. Computer Graphics and Constraint Solving: An Applica-tion to Virtual Camera Control 395 Jean-Marie Normand 27.1. Overview 397 27.2. A semantic space partitioning approach 398 27.2.1. Projection property 398 27.2.2. Orientation property 399 27.2.3. Occlusion property 399 27.3. Numerical solving stage 400 27.4. Exploitation of semantic volumes 401 27.4.1. Making requests on the volumes 401 27.4.2. Making requests on the scene 401 27.5. Results 401 27.6. Discussion 403 27.7. References 404 Index 405
£201.35
Transworld Publishers Ltd How AI Thinks: How we built it, how it can help
Book Synopsis'Artificial intelligence is going to have a massive impact on everyone’s lives... an accessible and sensible read that helps demystify AI' Deborah Meaden, entrepreneur and star of Dragon's Den'Nigel Toon is a visionary leader in the field of artificial intelligence... a must-read' Marc Tremblay, Distinguished Engineer, MicrosoftThose who understand how AI thinks are about to win big.We are used to thinking of computers as being a step up from calculators - very good at storing information, and maybe even at playing a logical game like chess. But up to now they haven't been able to think in ways that are intuitive, or respond to questions as a human might. All that has changed, dramatically, in the past few years.Our search engines are becoming answer engines. Artificial intelligence is already revolutionising sectors from education to healthcare to the creative arts. But how does an AI understand sentiment or context? How does it play and win games that have an almost infinite number of moves? And how can we work with AI to produce insights and innovations that are beyond human capacity, from writing code in an instant to unfolding the elaborate 3D puzzles of proteins?We stand at the brink of a historic change that will disrupt society and at the same time create enormous opportunities for those who understand how AI thinks. Nigel Toon shows how we train AI to train itself, so that it can paint images that have never existed before or converse in any language. In doing so he reveals the strange and fascinating ways that humans think, too, as we learn how to live in a world shared by machine intelligences of our own creation.Trade ReviewFew books are more timely than How AI Thinks, an accessible guide that walks the reader through the technology’s developmental history right back to the days before the computer... This is a fascinating read. -- Simon Hunt * Evening Standard *I believe that AI is going to have a massive impact on everyone’s lives; it’s such a hugely important topic that we can’t just leave it to technologists and governments to think about. Business people, teachers, students and parents - everyone needs to learn more about it. In How AI Thinks, Nigel Toon provides us with an accessible and sensible read that helps demystify AI and lets us all understand more about this incredibly powerful tool. -- Deborah Meaden, entrepreneur and star of Dragon's DenNigel Toon is not only a visionary leader in the field of artificial intelligence, but also a captivating storyteller who takes us on a journey through his own fascinating history and the evolution of our young industry. He has a gift for explaining complex concepts in simple terms, making this book accessible and engaging for anyone interested in AI. He also offers a prescriptive and optimistic view of the future of AI, showing how it can transform our lives and society for the better. This book is a must-read for anyone who wants to understand the past, present and future of artificial intelligence. -- Marc Tremblay PhD, Distinguished Engineer, MicrosoftAn insightful, informative, inspiring book which takes the reader on a journey of discovery, it ultimately paints a hopeful and reasoned vision of how humanity can move on from a position of fear and trepidation, and embrace AI, deriving profound benefit from all it makes possible. Nigel has a skill in taking highly technical content and making AI not just comprehensible, but also engaging. -- Professor Evelyn Welch, Vice-Chancellor and President, University of BristolAs a business leader, it was great to have all the strands that have created AI pulled together. Nigel Toon synthesizes everything so clearly, simply and in such an inspiring way. How AI Thinks delivers the perspective that leaders and politicians need so that they can regulate AI well. -- Sir Andrew MacKenzie, Chairman of Shell
£22.92
J Ross Publishing Software Engineering
Book Synopsis
£81.70
Amphorae Publishing Group, LLC Facehooked: How Facebook Affects Our Emotions,
Book SynopsisThe number of Facebook users worldwide exceeded one billion in August of 2012. With the increase in Facebook users, psychologists have seen an alarming increase in the number of Facebook related complaints from their clients. Dr. Suzana Flores, clinical psychologist, has interviewed Facebook users of all ages for three years exploring the positive and negative features of Facebook and evaluating the effect it has on our lives. Facehooked explores the problems most commonly found on Facebook, including controversial topics such as self-esteem, privacy, peer pressure, stalking, emotional manipulation, among others. Readers are not only provided with practical tools to help identify and avoid unhealthy behaviors, but also suggestions for healthier interaction on Facebook.Trade Review"Facehooked, while most definitely a critique of contemporary media driven culture, looks at the issues associated with social media and other forms of technological communication from a very realistic and level-headed viewpoint ... Flores does an excellent job of recognizing both sides of the social media coin ... Further, [her] use of case studies and her own life experiences makes the book a very real and often emotionally charged piece of non-fiction." Chicagoist" Facehooked talks about how teens connect through social-media networks like Facebook, Twitter, Snapchat, and YouTube. Now more than ever, teens have a voice in the world and can even make a serious social impact! The only problem issome people get into trouble when they share too much. Kids seem to feel obligated and addicted to responding and uploading to Facebook when it's not really necessary; doing so just adds more pressure and raises the potential of posting things they normally wouldn't or shouldn't. Whether online or logged off, I think people can express themselves any way they want as long as they treat each other with respect and stay true to themselves." Sean Giambrone, Actor, The Goldbergs"When it comes to understanding the world of teen online interaction, Dr. Flores gets it. Facehooked sums up what I've suspected is happening with today's teens. Dr. Flores provides a valuable wealth of information regarding smartphone and social-media addiction, digital expression, and the negative (and positive) effects of sharing personal information through various social networks. She clearly explains the influence social media can have on teen expression and self-perception, and provides clear guidelines for parents on how they can protect their teens' privacy. Facehooked is an intelligent, comfortable, and important read for any student, parent, school administrator and policy-maker who wishes to understand how social media is shaping today's 'Digital Natives.'" Dr. Matthew Clark, Child and Adolescent Psychologist, Director of The Clark Institute"Dr. Flores offers a compelling and genius look at what is really going on when seeking that Facebook fix. Is your hidden agenda personal validation? Creating a fantasy life? Or are you actually addicted? Her explanations are eye-opening and will make you rethink how and why you interact on Facebook every time you log on." Shawne Duperon, Six Time EMMY winner and Founder of Project: Forgive"Casual, approachable, and insightfulDr. Suzana Flores's book illuminates the myriad of impacts that social media can have on psychological and social well being. Unlike much that's been written on this topic, Dr. Flores also explores the positive effects that healthy social-media use can produce. Noting that 'Facebook is not the problem,' she takes readers on a case-driven exploration of what drives the distressful consequences of maladaptive social-media use and how to avoid them. Facehooked is a must read for anyone affected by social media, which is everyone." Omar Manejwala, MD, Author of Craving: Why We Can't Seem to Get Enough
£13.25
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Programming for Game Design: A Hands-On Guide with Godot
Book SynopsisCreate video game elements using the Godot game engine, gaining practical experience in programming and video game development. The Godot game engine uses a simplified programming language called GDScript, which closely resembles Python. By learning GDScript, you can focus more on learning the basics of programming. You’ll explore concepts such as variables and data structures variables used to store information about video game objects that can be manipulated using a keyboard or a mouse. You’ll also learn about user interface design, branching statements, and looping statements, enabling you to actively engage in programming and create your own interactive games. By the end of the book, you’ll have a solid understanding of how video game elements work and how the basic principles of programming work as well. By programming simple video game elements in the Godot game engine, you’ll learn both programming and the principles of 2D video game design.What You Will Learn Understand the basics of programming by creating simple video game elements in the Godot game engine. Explore variables and data structures to actively store and modify information about video game objects. Gain a deeper understanding of user interface design. Master simplified programming languages like GDScript. Who This Book Is For Aspiring programmers and game enthusiasts seeking an engaging introduction to programming through video game creation.Table of ContentsChapter 1: Why learn programming with the Godot game engine Chapter 2: Getting to know Godot Chapter 3: Writing scripts Chapter 4: Storing data in variables Chapter 5: Mathematical operations Chapter 6: Branching statements Chapter 7: Looping statements Chapter 8: Understanding arrays Chapter 9: Understanding dictionaries Chapter 10: Functions Chapter 11: Object-oriented programming Chapter 12: Getting input from the user Chapter 13: Shooting projectiles Chapter 14: Adding projectiles to a player Chapter 15: Hitting enemies with projectiles Chapter 16: Displaying a user interface Chapter 17: Adding physics Chapter 18: Playing audio Chapter 19: Creating and using scenes Chapter 20: Using Signals Chapter 21: Creating a Simple Tic-Tac-Toe Game
£39.99
Apress PHP by Example
£39.99
Apress The Embedded Project Cookbook
Book SynopsisChapter 1: Introduction.- Chapter 2: Requirements.- Chapter 3: Analysis.- Chapter 4: Software Development Plan.- Chapter 5: Preparation.- Chapter 6: Foundation.- Chapter 7: Building Applications with the Main Pattern.- Chapter 8: Continuous Integration Builds.- Chapter 9: Requirements Revisited.- Chapter 10: Tasks.- Chapter 11: Just in Time Detailed Design.- Chapter 12: Coding, Unit Tests, and Pull Requests.- Chapter 13: Integration Testing.- Chapter 14: Broad Support Package.- Chapter 15: Drivers.- Chapter 16: Release.- Appendix A: Getting started with the Source Code.- Appendix B: Running the Example Code.- Appendix C: Introduction to the Data Model Architecture.- Appendix D: LHeader and LConfig Patterns.- Appendix E: CPL C++ framework.- Appendix F: LHeader and LConfig Patterns.- Appendix G: Ratt.- Appendix H: GM6000 Requirements.- Appendix I: GM6000 System Architecture.- Appendix J: GM6000 Software Architecture.- Appendix K: GM6000 Software Development Plan.- Appendix L: GM6000 Software Detailed Design.- Appendix M: GM6000 Software Detailed Design.- Appendix N: GM6000 Fuzzy Logic Temperature Control.- Appendix O: Software C/C++ Embedded Coding Standard.- Appendix P: GM6000 Software Requirements Trace Matrix.- Appendix Q: GM6000 Software Bill of Materials.- Appendix R: GM6000 Software Release Notes.
£43.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Building Secure PHP Applications
Book SynopsisLearn how to protect PHP applications from potential vulnerabilities and attacks. As cyberattacks and data breaches continue to rise, it's crucial for developers and organizations to prioritize security in their PHP applications. The book offers an all-encompassing guide to securing PHP applications, covering topics ranging from PHP core security to web security, framework security (with a focus on Laravel), security standards, and protocol security. After examining PHP core security and essential topics, such as input validation, output encoding, secure session management, and secure file handling, you'll move on to common security risks in PHP applications and provides practical examples to demonstrate effective security measures. From there, you'll delve into web security, addressing XSS, SQL injection, and CSRF, reviewing in-depth explanations and mitigation techniques. A significant portion of the book focuses on Laravel's built-in security features, guiding readers to avoid common pitfalls. Industry-standard security protocols like HTTP, OAuth, and JSON Web Tokens are explained with demonstrations for how to effectively use them to ensure integrity, confidentiality, and authenticity in web applications. Additionally, protocol security is discussed, including secure communication, file transfer protocols (SFTP), and email handling. Security in cloud and hybrid environments is also discussed. This book's comprehensive and inclusive approach spans a wide range of security topics related to PHP and ensures that no critical areas are overlooked. It goes beyond theoretical concepts by providing practical guidance and actionable steps. It includes code snippets, real-world examples, case studies, and hands-on exercises, enabling you to apply the knowledge gained in practical scenarios. Building Secure PHP Applications provides a holistic approach to security, empowering you to build robust and resilient PHP applications. What You Will LearnUnderstand industry-recognized security standards and compliance requirements for data protection regulations. Learn the intricacies of Laravel and how to leverage its security features. Integrate security practices throughout the development lifecycle, conducting security testing and reviews and adopting secure deployment and DevOps practices. Conduct forensic analysis and perform post-incident analysis for continuous improvement. Look to the future and discover emerging security threats and techniques to anticipate and mitigate potential security risks. Who This Book Is ForPrimarily written for developers, security professionals, and webmasters involved in PHP application development. Additionally, this book may be used as a reference for students studying web development, PHP programming or cybersecurity
£46.74
Apress The Art of Decoding Microservices
Book SynopsisChapter 1: Evolution of Software Architecture.- Chapter 2: Overview of Microservices.- Chapter 3: Designing Microservices.- Chapter 4: Developing Microservices.- Chapter 5: Testing, Deploying, and Scaling Microservices.- Chapter 6: Microservices Security, Monitoring, and Maintenance.- Chapter 7: Lessons from Case Studies, Avoiding Pitfalls, and Shaping the Future.- Chapter 8: Conclusion and Quick Recap.- Appendix A: Glossary.- Appendix B: Closure and Final Thoughts.
£43.99