Practical applications of information technology Books

59 products


  • Beginning Visual Basic 2012

    John Wiley & Sons Inc Beginning Visual Basic 2012

    2 in stock

    Book SynopsisThe ultimate beginner's guide to programming in Visual Basic 2012 Visual Basic, used to write Windows applications and web apps with ASP. NET, is an essential language for beginning programmers. Using the time-tested Wrox approach, this guide provides a step-by-step format that gets beginners up and running quickly and confidently.Table of ContentsINTRODUCTION xxvii CHAPTER 1: WELCOME TO VISUAL BASIC 2012 1 Event-Driven Programming 2 Installing Visual Basic 2012 3 The Visual Studio 2012 IDE 6 The Profile Setup Page 6 The Menu 7 The Toolbars 8 Creating a Simple Application 9 Windows in the Visual Studio 2012 IDE 10 The Toolbox 14 Modified Hungarian Notation 17 The Code Editor 18 Using the Help System 23 Summary 23 CHAPTER 2: THE MICROSOFT .NET FRAMEWORK 27 Microsoft’s Reliance on Windows 28 MSN 1.0 28 The .NET Vision 29 This Sounds Like Java 30 Where Now? 30 Writing Software for Windows 31 The .NET Framework Classes 32 Executing Code 33 Common Language Runtime 34 Code Loading and Execution 35 Application Isolation 35 Security 35 Interoperability 36 Exception Handling 36 The Common Type System and Common Language Specification 37 Summary 37 CHAPTER 3: WRITING SOFTWARE 41 Information and Data 41 Algorithms 42 What Is a Programming Language? 43 Working with Variables 44 Comments and Whitespace 46 Comments 47 Whitespace 48 Data Types 49 Working with Numbers 49 Common Integer Math Operations 50 Integer Math Shorthand 52 The Problem with Integer Math 54 Floating-Point Math 54 Other States 56 Single-Precision Floating-Point Numbers 56 Working with Strings 57 Concatenation 58 Using the Concatenation Operator Inline 59 More String Operations 59 Substrings 61 Formatting Strings 62 Localized Formatting 63 Replacing Substrings 64 Using Dates 65 Formatting Date Strings 66 Extracting Date Properties 67 Date Constants 68 Defining Date Literals 69 Manipulating Dates 70 Boolean 71 Storing Variables 71 Binary 71 Bits and Bytes 72 Representing Values 73 Converting Values 74 Methods 76 Why Use Methods? 76 Methods You’ve Already Seen 77 Building a Method 80 Choosing Method Names 83 Scope 84 Summary 86 CHAPTER 4: CONTROLLING THE FLOW 89 Making Decisions 89 The If Statement 90 The Else Statement 92 Allowing Multiple Alternatives with ElseIf 92 Nested If Statements 94 Single-Line If Statement 94 Comparison Operators 94 Using Not Equal To 94 Using the Numeric Operators 96 The And and Or Operators 99 Using the And Operator 101 More on And and Or 102 String Comparison 103 Select Case 104 Case-Insensitive Select Case 108 Multiple Selections 110 The Case Else Statement 112 Different Data Types with Select Case 112 Loops 113 The For…Next Loop 113 Using the Step Keyword 116 Looping Backward 117 The For Each…Next Loop 118 The Do…Loop Loops 119 Do While…Loop 121 Acceptable Expressions for a Do…Loop 123 Other Versions of the Do…Loop 123 Nested Loops 124 Quitting Early 126 Quitting Do…Loops 128 Infinite Loops 129 Summary 130 CHAPTER 5: WORKING WITH DATA STRUCTURES 133 Understanding Arrays 134 Defining and Using Arrays 134 Using For Each…Next 137 Passing Arrays As Parameters 139 Sorting Arrays 141 Going Backward 142 Initializing Arrays with Values 144 Understanding Enumerations 145 Using Enumerations 145 Determining the State 149 Setting Invalid Values 151 Understanding Constants 152 Using Constants 152 Different Constant Types 154 Structures 155 Building Structures 155 Adding Properties to Structures 158 Working with ArrayLists 159 Using an ArrayList 159 Deleting from an ArrayList 163 Showing Items in the ArrayList 166 Working with Collections 167 Creating CustomerCollection 168 Adding an Item Property 170 Building Lookup Tables with Hashtable 171 Using Hashtables 172 Cleaning Up: Remove, RemoveAt, and Clear 175 Case Sensitivity 177 Advanced Array Manipulation 179 Dynamic Arrays 179 Using Preserve 181 Summary 182 CHAPTER 6: EXTENSIBLE APPLICATION MARKUP LANGUAGE (XAML) 185 What Is XAML? 186 XAML Syntax 187 Windows Presentation Foundation 190 Creating a Rich WPF User Interface 191 Using WPF Common Controls 197 Wiring Up Events 201 Summary 205 CHAPTER 7: BUILDING WINDOWS APPLICATIONS 209 Responding to Events 210 Building a Simple Application 217 Counting Characters 221 Counting Words 223 Creating More Complex Applications 229 Creating the Toolbar 231 Creating the Status Bar 235 Creating an Edit Box 237 Clearing the Edit Box 239 Responding to Toolbar Buttons 242 Using Multiple Forms 247 About Dialog 247 Summary 251 CHAPTER 8: DISPLAYING DIALOGS 255 The MessageBox 256 Available Icons for MessageBox 256 Available Buttons for MessageBox 257 Setting the Default Button 257 Miscellaneous Options 258 The Show Method Syntax 258 Example Message Boxes 260 The OpenFileDialog Control 263 The OpenFileDialog Control 264 The Properties of OpenFileDialog 265 OpenFileDialog Methods 266 Using the OpenFileDialog Control 266 The SaveDialog Control 271 The Properties of SaveFileDialog 271 SaveFileDialog Methods 273 Using the SaveFileDialog Control 273 The FontDialog Control 276 The Properties of FontDialog 277 The Methods of FontDialog 277 Using the FontDialog Control 277 The ColorDialog Control 280 The Properties of ColorDialog 281 Using the ColorDialog Control 282 The PrintDialog Control 283 The Properties of PrintDialog 284 Using the PrintDialog Control 285 The PrintDocument Class 285 The Properties of the PrintDocument Class 285 Printing a Document 285 The FolderBrowserDialog Control 292 The Properties of FolderBrowserDialog 292 Using the FolderBrowserDialog Control 293 Summary 296 CHAPTER 9: CREATING MENUS 299 Understanding Menu Features 299 Images 300 Access Keys 300 Shortcut Keys 300 Check Marks 300 The Properties Window 301 Creating Menus 302 Designing the Menus 302 Adding Toolbars and Controls 304 Coding Menus 306 Coding the View Menu and Toolbars 310 Testing Your Code 311 Context Menus 314 Creating Context Menus 315 Enabling and Disabling Menu Items and Toolbar Buttons 318 Summary 321 CHAPTER 10: DEBUGGING AND ERROR HANDLING 325 Major Error Types 326 Syntax Errors 326 Execution Errors 330 Logic Errors 330 Debugging 331 Creating a Sample Project 332 Setting Breakpoints 348 Debugging Using the Watch Window and QuickWatch Dialog Box 356 Debugging with the Autos Window 358 Debugging with the Locals Window 358 Error Handling 360 Using Structured Error Handling 361 Summary 363 CHAPTER 11: BUILDING OBJECTS 367 Understanding Objects 368 Encapsulation 369 Methods and Properties 369 Events 370 Visibility 370 What Is a Class? 371 Building Classes 371 Reusability 372 Designing an Object 373 State 374 Behavior 374 Storing State 375 Real Properties 378 Read/Write Properties 381 Auto-Implemented Properties 384 The IsMoving Method 384 Constructors 386 Inheritance 388 Adding New Methods and Properties 389 Adding a GetPowerToWeightRatio Method 392 Changing Defaults 394 Polymorphism: Scary Word, Simple Concept 395 Overriding More Methods 396 Inheriting from the Object Class 398 Objects and Structures 399 The Framework Classes 399 Namespaces 399 The Imports Statement 402 Creating Your Own Namespace 402 Inheritance in the .NET Framework 406 Summary 407 CHAPTER 12: ADVANCED OBJECT-ORIENTED TECHNIQUES 409 Building a Favorites Viewer 410 Internet Shortcuts and Favorites 410 Using Classes 412 Scanning Favorites 418 Viewing Favorites 426 An Alternative Favorite Viewer 428 Building a Favorites Tray 428 Displaying Favorites 429 Using Shared Properties and Methods 433 Using Shared Properties 434 Using Shared Methods 438 Understanding Object-Oriented Programming and Memory Management 439 Garbage Collection 440 Releasing Resources 441 Defragmentation and Compaction 442 Summary 443 CHAPTER 13: BUILDING CLASS LIBRARIES 445 Understanding Class Libraries 446 Creating a Class Library 446 Building a Class Library for Favorites Viewer 448 A Multitiered Application 452 Using Strong Names 453 Signing Assemblies 453 Assembly Versions 456 Registering Assemblies 456 Gacutil Utility 457 Why Is My Assembly Not Visible in the References Dialog? 457 Designing Class Libraries 457 Using Third-Party Class Libraries 459 Viewing Classes with the Object Browser 460 Summary 461 CHAPTER 14: CREATING WINDOWS FORMS USER CONTROLS 463 Windows Forms Controls 464 Creating and Testing a User Control 464 Exposing Properties from User Controls 468 Adding Properties 468 Exposing Methods from User Controls 470 Exposing Events from User Controls 471 Design Time or Runtime 476 Creating a Command Link Control 478 Building the Command Link Control 479 Using the Command Link Control 487 Summary 490 CHAPTER 15: ACCESSING DATA USING STRUCTURED QUERY LANGUAGE 493 What You Need to Complete This Chapter’s Exercises 494 What Is a Database? 495 Database Tables 495 Primary and Foreign Keys 500 Understanding Primary Keys 500 Understanding Foreign Keys 501 Queries 502 Understanding Basic SQL Syntax 503 Using SELECT Statement 503 Using the JOIN Statement 504 Using the UPDATE Statement 505 Using the DELETE Statement 506 Using the INSERT Statement 507 Using the SQL Comment 508 Executing Queries in SQL Server 508 Summary 511 CHAPTER 16: DATABASE PROGRAMMING WITH SQL SERVER AND ADO.NET 515 ADO.NET 516 ADO.NET Data Namespaces 516 The SqlConnection Class 517 Working with the Connection String Parameters 518 Opening and Closing the Connection 519 The SqlCommand Class 519 The Connection Property 520 The CommandText Property 520 The Parameters Collection 520 The ExecuteNonQuery Method 521 The SqlDataAdapter Class 522 The SelectCommand Property 522 Setting SelectCommand to SQL Text 523 Setting SelectCommand to a Stored Procedure 523 Using Command Builders to Create the Other Commands 524 The Fill Method 524 The DataSet Class 526 DataView 526 The Sort Property 527 The RowFilter Property 527 The Find Method 528 The ADO.NET Classes in Action 528 Data Binding 537 BindingContext and CurrencyManager 538 Binding Controls 539 Binding Examples 539 Summary 567 CHAPTER 17: DYNAMIC DATA WEBSITE 571 Creating a Dynamic Data Entities Website 571 Customizing the Design of a Dynamic Data Website 577 Page Templates 578 Entity Templates 578 Field Templates 578 Filter Templates 579 Summary 583 CHAPTER 18: ASP.NET 587 Thin-Client Architecture 588 Web Forms versus Windows Forms 589 Windows Forms Advantages 589 Web Forms Advantages 589 Web Applications: The Basic Pieces 590 Web Servers 590 Browsers 590 HyperText Markup Language 591 JavaScript 591 Cascading Style Sheets 591 Active Server Pages 592 Benefits of ASP.NET Web Pages 592 Special Website Files 592 Global.asax 592 Web.config 592 Development 593 Controls: The Toolbox 593 Building Websites 593 Creating a Web Form for Client- and Server-Side Processing 594 Website Locations with VS 2012 599 Performing Data Entry and Validation 602 Site Layout, Themes, and Navigation 606 Using the GridView to Build a Data-Driven Web Form 611 Summary 616 CHAPTER 19: DEPLOYING YOUR APPLICATION 619 What Is Deployment? 620 ClickOnce Deployment 620 XCOPY Deployment 626 Creating a Visual Studio 2012 Setup Application 626 Customize the User Interface 632 Deploying Diff erent Solutions 633 Private Assemblies 633 Shared Assemblies 634 Deploying Desktop Applications 635 Deploying Web Applications 635 Deploying XML Web Services 635 Useful Tools 635 Summary 636 CHAPTER 20: WINDOWS 8 APPS 639 Windows 8 Application Design Principles 640 Using Touch 640 Application Commands 640 Windows 8 Controls 642 Creating your First Windows 8 App 643 Application Layout 655 Application Views 656 Screen Sizes and Orientation 656 Summary 661 APPENDIX A: EXERCISE SOLUTIONS 665 APPENDIX B: WHERE TO NOW? 679 INDEX 683

    2 in stock

    £33.24

  • Beginning ArcGIS for Desktop Development Using

    John Wiley & Sons Inc Beginning ArcGIS for Desktop Development Using

    1 in stock

    Book SynopsisGet the very most out of the ArcGIS for Desktop products through ArcObjects and. NET ArcGIS for Desktop is a powerful suite of software tools for creating and using maps, compiling, analyzing and sharing geographic information, using maps and geographic information in applications, and managing geographic databases.Table of ContentsINTRODUCTION xxi PART I: THE BASICS CHAPTER 1: WHY GEOSPATIAL IS SPECIAL 3 A Tour of Geospatial Data 4 Why Geospatial Is Special 8 Various Kinds of GIS Software 10 Server GIS 11 Desktop GIS 13 Developer GIS 17 Mobile GIS 18 Geospatial Data Models and Storage 19 Raster 19 Vector 20 Geospatial Data as Text or Binary File 20 Geospatial Data in Georelational Models 21 Geospatial Data Inside Spatial DBMS 21 Geospatial Data in XML Structures 23 Esri Geodatabase 30 Personal Geodatabase 30 File Geodatabase 30 ArcSDE Geodatabase 31 Summary 32 CHAPTER 2: INTRODUCTION TO ARCGIS FOR DESKTOP APPLICATIONS CUSTOMIZATION 35 Four Ways to Customize ArcGIS for Desktop 36 Customizing the User Interface 37 Scripting 41 Desktop Add-Ins 48 ArcObjects SDK 55 Summary 59 PART II: .NET PROGRAMMING FUNDAMENTALS CHAPTER 3: .NET PROGRAMMING FUNDAMENTALS, PART I 63 The .NET Framework 63 The C# Language 64 A Brief History of C# 64 Basic Concepts 65 Variables and Data Types 66 Nullable Data Types 71 Operations on Variables 71 Arrays 75 Decision-Making 76 Iteration 78 Object Manipulation 81 Data Type Conversion 83 Enumerations 85 Methods 89 Introduction to Object-Oriented Programming in C# 93 Object-Oriented Programming in Action 94 Defi ning Properties 96 Defi ning Methods 98 Defi ning Constructors 98 Summary 100 CHAPTER 4: .NET PROGRAMMING FUNDAMENTALS, PART II 103 Overview of Object-Oriented Programming Concepts 104 Abstraction 104 Encapsulation 104 Inheritance 105 Polymorphism 106 Reference Types and Value Types 108 Assignment Operations 108 Comparison Operations 109 Passing Parameters between Method Calls 109 Brief Explanation of All .NET Types 111 Namespaces and Assemblies 112 Debugging Using Visual Studio 113 Structured Exception Handling 117 Casting Objects 120 Aggregation Using Collections 121 The ArrayList 122 Generics 123 Reading and Writing Files 123 Summary 135 PART III: ARCOBJECTS PROGRAMMING CHAPTER 5: UNDERSTANDING ARCOBJECTS OBJECT MODEL DIAGRAMS 139 What Is ArcObjects? 140 Interface-Based Programming in Brief 140 Understanding Object Model Diagrams 144 Types of Classes in ArcObjects 145 Relationships between Classes 147 Members of Interfaces 149 Interface Inheritance 151 Wormhole 153 Additional Tips for Using Object Model Diagrams 153 Where to Start with ArcObjects 155 How to Find an Associated Member 156 Summary 163 CHAPTER 6: ACCESSING MAPS AND LAYERS 165 Introduction to Maps and Layers In ArcObjects 165 General Properties of All Layers 175 Working with FeatureLayers 179 Working with RasterLayers 183 Adding an Existing *.lyr File to a Map 184 Adding *.lyr Files Using GxDialog 186 Saving *.lyr and *.mxd Files 191 Summary 194 CHAPTER 7: WORKING WITH TABLES AND FEATURECLASSES 197 Accessing Tables and FeatureClasses 197 Adding and Deleting Fields 204 Adding Existing FeatureClasses, Tables, and Rasters to a Map 207 Deleting an Existing FeatureDataset, FeatureClass, Table, or Raster 215 Creating Tables and Rows 215 Summary 225 CHAPTER 8: SUBSETS OF RECORDS 227 Using Object Model Diagrams for Selecting Features and Rows 228 Working with Existing Selections 229 Selecting Rows and Features 233 Accessing a Subset of Records 237 Simple Statistics of Features 245 Some Important Points about Using Cursors 251 Displaying Subsets of Geospatial Data 254 Summary 255 CHAPTER 9: CONSTRUCTING AND USING THE GEOMETRY OF FEATURES 257 Object Model Diagram for the Geometry of Features and Graphics 258 Displaying Geometries on the Screen 260 Creating and Drawing Points 261 Creating and Drawing Multipoints 264 Creating and Drawing Polylines 268 Creating and Drawing Polygons 272 Creating a New Feature and Editing an Existing Feature’s Geometry 276 Working with Spatial Operators 281 Examining Spatial Relationships 281 Common Geoprocessing Operations 284 Determining the Nearest Points and Distance 287 Length, Area, Centroid, and Envelope of Geometries 292 Summary 293 CHAPTER 10: RENDERING GEOSPATIAL DATA AND USING HYPERLINKS AND MAPTIPS 295 Geospatial Data Display 296 Color and ColorRamp Classes 296 Symbols 298 Renderers for Vector and Raster Geospatial Data 300 Going beyond Simple Display 318 Simple and Advanced MapTips 319 Hyperlinks 321 Summary 324 CHAPTER 11: LABELING, EXPORTING ACTIVEVIEW, AND WORKING WITH ELEMENTS 327 Labeling 328 Labeling with the Default Labeling Engine 329 Labeling with the Maplex Labeling Engine 334 Exporting the ActiveView 336 Working with Elements 346 Adding GraphicElements 348 Adding FrameElements 352 Summary 361 CHAPTER 12: GEOPROCESSING WITH TOOLS AND MODELS 365 ArcObjects and the Geoprocessing Framework 365 Running Geoprocessing Tools 366 Running Custom Tools 375 Opening a Tool’s Dialog Box in Code 384 Geoprocessing in the Background 389 Bach Processing 397 Can I Manage the Execution of Geoprocessing Tools? 399 Summary 400 CHAPTER 13: FEATURE DATA MANAGEMENT 403 Use of GUID in ArcObjects 404 Working with the Geodatabase Model 406 Creating Geodatabases 407 Creating FeatureDatasets and FeatureClasses 408 Working with Features 418 Creating New Features 418 Modifying Existing Features 422 Summary 426 CHAPTER 14: ADVANCED TOPICS IN ARCOBJECTS PROGRAMMING AND DEPLOYMENT 429 Sharing State and Functionality between Components 430 Event Handling in ArcObjects 432 Application Extension 435 Add-In Deployment 450 Preparing for Release 450 Add-In File Structure 452 Distributing and Installing an Add-In 453 Custom Component Deployment 456 Creating an Installer for Custom Component 459 Summary 465 APPENDIX: ANSWERS TO CHAPTER EXERCISES 467 INDEX 479

    1 in stock

    £21.24

  • CSS3 Pushing the Limits

    John Wiley & Sons Inc CSS3 Pushing the Limits

    1 in stock

    Book SynopsisPush CSS3 and your design skills to the limit and beyond! Representing an evolutionary leap forward for CSS, CSS3 is chock-full of new capabilities that dramatically expand the boundaries of what a styling language can do.Table of ContentsIntroduction 1 Part I New Toys 7 Chapter 1 Advanced Selectors 9 Child and Sibling Selectors 9 Child Combinator 9 Adjacent Sibling Combinator 10 General Sibling Combinator 10 Attribute Selectors 11 Selecting Based on the Existence of an HTML Attribute 11 Selecting Based on the Exact Value of an HTML Attribute 11 Selecting Based on the Partial Contents of an HTML Attribute Value 12 Selecting Based on the Beginning of an HTML Attribute Value 12 Selecting Based on the End of an HTML Attribute Value 13 Selecting Based on Space-Separated HTML Attribute Values 13 Pseudo-Classes 13 Firsts and Lasts 14 Nth Child Selectors 15 Taking Nth Child to the Next Level with Expressions 16 Using Keywords with Nth Child 17 Using Negative Numbers with Nth Child 17 The Best of the Rest 19 Bringing It All Together 20 Summary 23 Further Reading 24 Chapter 2 New Tools for Text 25 Perfecting Your Type 25 Ligatures 25 Kerning 27 Borrowing from SVG 28 Maintaining Legibility with Aspect Values 30 More Control with More New Toys 33 Font Stretch 33 Synthetic Font Styling 33 By the Numbers 34 Hyphenation 35 Writing Modes 37 The Direction Property 38 The Writing Mode Property 38 The Text Orientation Property 38 SVG to the Rescue! 38 Looking Good Is Half the Battle 39 Text Decoration 39 Masking Background Images Over Text 40 Text Shadow 42 Creating 3D Text 42 Creating Outer Glow 44 Summary 45 Further Reading 46 Chapter 3 New Tools for Backgrounds and Borders 47 More Control with CSS3 Backgrounds 47 Background Clip and Background Origin 47 Background Size 50 Understanding the Background Shorthand 52 Handling Box Breaks 52 Into the Future with the Image Function 53 Multiple Backgrounds 55 The Syntax for Multiple Backgrounds 55 Layered Backgrounds 56 Animating Multiple Backgrounds 57 New Tools for Borders 58 Border Image 58 Into the Future with Border Corner Shape 62 Gradients 63 Linear Gradients 63 The Linear Gradient Syntax 63 Browser Support 65 Linear Gradients in Action 65 Radial Gradients 66 The Radial Gradients Syntax 66 Radial Gradients in Action 68 Browser Support 69 Pushing the Limits with Gradient Patterns 70 Summary 73 Further Reading 74 Chapter 4 Into the Browser with CSS3 Filters and Blending Modes 75 CSS3 Filters 75 How Do CSS Filters Work? 76 Grayscale 76 Brightness 77 Contrast 77 Saturate 78 Sepia 78 Hue-Rotate 79 Invert 79 Opacity 80 Drop Shadow 80 Blur 81 Combining Filters 82 Blending Modes 83 What Are Blending Modes? 84 The Blending Modes Syntax 85 Summary 85 Further Reading 86 Part II Transforms, Transitions, and Animation 87 Chapter 5 Introducing CSS3 2D Transforms 89 The Transform Property 89 Translate 90 Skew 93 Rotate 94 Scale 96 Transform Origin 99 Combining Transforms 100 Browser Support 102 Summary 102 Further Reading 102 Chapter 6 Bringing 2D Transforms to Life with Transitions 103 Introducing CSS Transitions 103 Controlling Your Transitions 104 Understanding the Shorthand Syntax 105 Understanding the Transition Property 106 Applying Separate On and Off Transitions 107 Understanding the Timing Function 108 The Bézier Curve 109 Ease 111 Linear 112 Ease-In 113 Ease-Out 113 Ease-In-Out 114 Stepping Functions 115 Browser Support for Transitions 117 Transitions in Action 117 Combining Transitions and 2D Transforms 120 Transitioning Rotate 120 Transitioning Translate 123 Transitioning Scale 127 Transitioning Skew 128 Creating a Scattered Image Gallery 129 Summary 133 Further Reading 134 Chapter 7 A New Dimension with 3D Transforms 135 What Are 3D Transforms? 135 It’s All About Perspective 136 The Perspective Property 137 Perspective Origin 141 Maintaining Perspective 142 Backface Visibility 145 Moving on to More Transform Properties 148 Rotating in a 3D Environment 149 Translating in a 3D Environment 151 Scaling in a 3D Environment 153 Creating a Cube Using 3D Transforms 154 Animating the Cube with Transitions 157 Examining Browser Support for 3D Transforms 159 Summary 160 Further Reading 160 Chapter 8 Getting Animated 161 Introducing CSS3 Animation 161 Defining Keyframes 161 Applying the Animation 163 Further Control 163 Looking at CSS3 Animations in Action 166 Adding Progressive Enhancement with Subtle Animation 170 Fade In Effects 171 Attention Seekers 173 Shake 173 Wobble 174 Combining Animations 175 Forming the Structure 176 Creating an Animated Slide Show 177 Creating a Swinging Animation 178 Introducing Content with Subtle Animation 180 Seeking Attention with Loud Animation 182 Examining Browser Support for CSS Animation 182 Summary 183 Further Reading 183 Part III Getting to Grips with New Layout Tools 185 Chapter 9 Creating a Multicolumn Layout 187 The Evolution of Layout Tools 187 What’s New in Layout Solutions? 188 Introducing Multi-column Layout 189 New Multicolumn Properties 189 Defining Your Columns 189 Handling Column Breaks 198 Limitations 201 Creating a Multicolumn Layout 202 Examining Browser Support for Multi-column Layout 206 Summary 207 Further Reading 208 Chapter 10 Flexible Box Layout 209 What Is Flexbox? 209 New Flexbox Properties 210 Establishing the Flex Formatting Context 210 Examining Direction, Flow, and Visual Ordering 212 Controlling Alignment 217 Defining Flex Factors 223 Creating a Flexible Box Layout 225 Examining Browser Support for Flexbox 230 Summary 231 Further Reading 231 Chapter 11 Grid Layout, Regions, and Exclusions 233 Introducing CSS Grid Layout 233 What Is Grid Layout? 234 Creating a Grid Element 234 Defining the Grid 235 Positioning Elements into the Grid 237 Making Your Grid Flexible and Adaptable 238 Introducing CSS Regions 241 What Are CSS Regions? 241 How Do Regions Work? 242 Introducing CSS Exclusions 243 What Are CSS Exclusions? 244 How Do Exclusions Work? 244 Playing with Shapes 247 A Caveat on Exclusions and Shapes 249 Summary 249 Further Reading 250 Chapter 12 Going Responsive with CSS3 Media Queries 251 What Is Responsive Web Design? 251 Using Media Queries to Design for Device Differences 252 Understanding Media Types and Media Features 253 Applying the Mobile-First Approach 253 Using the Viewport Meta Tag 256 Making a Multicolumn Layout Responsive 256 Making a Flexbox Layout Responsive 261 A Word on CSS Grid Layout 268 The Here and Now of RWD 269 Summary 269 Further Reading 270 Part IV Pushing the Limits 271 Chapter 13 Getting Creative with Pseudo-elements 273 Distinguishing Pseudo-elements and Pseudo-classes 273 What Is a Pseudo-class? 273 What Is a Pseudo-element? 274 Syntactical Differences 274 Exploring the Current Range of Pseudo-elements 275 Enhancing Your Typography with Pseudo-elements 275 Drawing Users into Your Copy 276 Getting Creative with Type-based Pseudo-elements 278 Using Pseudo-elements to Generate Content 282 Pushing Pseudo-elements to the Limit 285 A Contemporary Clearfix 287 Creating Scalable Icons and Shapes 288 Creating a Speech Bubble 288 Creating an OK Icon 289 Creating a Print Icon 290 Creating a Save Icon 291 Pushing the Limits Even Further and Knowing When to Stop 293 Summary 293 Further Reading 294 Chapter 14 Using Preprocessors to Push CSS3 to the Limit 295 What Is a CSS Preprocessor? 295 What Can CSS Preprocessors Do for You? 295 Choosing the Right Preprocessor for You 296 Declaring Variables 297 Doing Functions and Simple Math 298 Using Mixins 299 Selector Inheritance 300 Nested Selectors 301 Getting to Grips with the Dark Side of Preprocessors 302 Step 1: Installing Ruby 303 Step 2: Installing Sass 304 Step 3: Creating Your First Sass File 304 Step 4: Compiling Your Sass Code 305 Helpful Tools 306 Making CSS3 More Efficient with Mixins 307 Creating Proportional Layouts with Simple Math 309 Using Functions to Form a Dynamic Color Palette 310 A Word of Caution on Preprocessors 311 Summary 311 Further Reading 311 Chapter 15 Creating Practical Solutions Using Only CSS3 313 Creating Tabbed Content Using Only CSS3 313 The Markup 314 Applying Basic Styling to the Panels 316 Styling the Tabs 317 Making the Tabs Functional 318 Applying the Finishing Touches 320 Creating a Lightbox Feature Using Only CSS3 321 Laying the Foundations for the Markup 322 Styling the Thumbnail Gallery 324 Adding the Lightbox Markup 326 Making the Lightbox Functional 327 Applying the Polish to the Final Design 330 Creating a 3D Image Carousel Using Only CSS3 334 Marking Up the Carousel 334 Establishing a 3D Formatting Context 335 Positioning the Images in a 3D Environment 335 Making the Carousel Functional 339 Applying the Finishing Touches 340 Summary 342 Further Reading 343 Chapter 16 The Future of CSS 345 CSS Variables 346 CSS Selectors: Level 4 348 Browser Support Using CSS Conditional Rules 352 Pseudo-elements: Level 4 353 Have Your Say 354 Summary 354 Further Reading 355 Index 357

    1 in stock

    £23.99

  • Professional Java for Web Applications

    John Wiley & Sons Inc Professional Java for Web Applications

    Book SynopsisThe comprehensive Wrox guide for creating Java web applications for the enterprise This guide shows Java software developers and software engineers how to build complex web applications in an enterprise environment.Table of ContentsIntroduction xxiii Part I: Creating Enterprise Applications Chapter 1: Introducing Java Platform, Enterprise Edition 3 A Timeline of Java Platforms 3 Understanding the Basic Web Application Structure 13 Summary 18 Chapter 2: Using Web Containers 19 Choosing a Web Container 19 Installing Tomcat on Your Machine 23 Deploying and Undeploying Applications in Tomcat 27 Debugging Tomcat from Your IDE 30 Summary 39 Chapter 3: Writing Your First Servlet 41 Creating a Servlet Class 42 Configuring a Servlet for Deployment 46 Understanding doGet(), doPost(), and Other Methods 51 Using Parameters and Accepting Form Submissions 56 Configuring your Application Using Init Parameters 61 Uploading Files from a Form 64 Making Your Application Safe for Multithreading 69 Summary 71 Chapter 4: Using JSPs to Di splay Content 73 is Easier Than output.println(“”) 74 Creating Your First JSP 78 Using Java within a JSP (and Why You Shouldn’t!) 88 Combining Servlets and JSPs 94 A Note about JSP Documents (JSPX) 102 Summary 104 Chapter 5: Maintaining State Using Sessions 105 Understanding Why Sessions are Necessary 106 Using Session Cookies and URL Rewriting 107 Storing Data in a Session 116 Applying Sessions Usefully 129 Clustering an Application That Uses Sessions 139 Summary 142 Chapter 6: U sing the Expression Language in JSPs 143 Understanding Expression Language 144 Writing with the EL Syntax 147 Using Scoped Variables in EL Expressions 160 Accessing Collections with the Stream API 167 Replacing Java Code with Expression Language 172 Summary 175 Chapter 7: U sing the Java Standard Tag Library 177 Introducing JSP Tags and the JSTL 178 Using the Core Tag Library (C Namespace) 182 Using the Internationalization and Formatting Tag Library (FMT Namespace) 193 Using the Database Access Tag Library (SQL Namespace) 203 Using the XML Processing Tag Library (X Namespace) 205 Replacing Java Code with JSP Tags 205 Summary 208 Chapter 8: Writing Custom Tag and Function Libraries 209 Understanding TLDs, Tag Files, and Tag Handlers 210 Creating Your First Tag File to Serve as an HTML Template 219 Creating a More Useful Date Formatting Tag Handler 221 Creating an EL Function to Abbreviate Strings 226 Replacing Java Code with Custom JSP Tags 227 Summary 232 Chapter 9: Improving Your Application Using Filters 233 Understanding the Purpose of Filters 234 Creating, Declaring, and Mapping Filters 235 Ordering Your Filters Properly 239 Investigating Practical Uses for Filters 247 Simplifying Authentication with a Filter 254 Summary 255 Chapter 10: Making Your Application Interactive with WebSockets 257 Evolution: From Ajax to WebSockets 258 Understanding the WebSocket APIs 268 Creating Multiplayer Games with WebSockets 273 Using WebSockets to Communicate in a Cluster 284 Adding “Chat with Support” to the Customer Support Application 288 Summary 296 Chapter 11: Using Logging to Monitor Your Application 297 Understanding the Concepts of Logging 298 Using Logging Levels and Categories 303 Choosing a Logging Framework 305 Integrating Logging into Your Application 312 Summary 320 Part II: Adding Spring Framework Into the Mix Chapter 12: Introducing Spring Framework 323 What is Spring Framework? 324 Why Spring Framework? 326 Understanding Application Contexts 327 Bootstrapping Spring Framework 329 Configuring Spring Framework 336 Utilizing Bean Definition Profiles 349 Summary 353 Chapter 13: Replacing Your Servlets with Controllers 355 Understanding @RequestMapping 356 Using Spring Framework’s Model and View Pattern 370 Making Your Life Easier with Form Objects 380 Updating the Customer Support Application 384 Summary 387 Chapter 14: Using Services and Repositories to Support Your Controllers 389 Understanding Model-View-Controller Plus Controller-Service-Repository 390 Using the Root Application Context Instead of a Web Application Context 394 Improving Services with Asynchronous and Scheduled Execution 404 Applying Logic Layer Separation to WebSockets 409 Summary 416 Chapter 15: Internationalizing Your Application with Spring Framework i18n 417 Why Do You Need Spring Framework i18n? 418 Using the Basic Internationalization and Localization APIs 419 Configuring Internationalization in Spring Framework 424 Internationalizing Your Code 430 Summary 440 Chapter 16: Using JSR 349, Spring Framework, and Hibernate Validator for Bean Validation 441 What is Bean Validation? 442 Configuring Validation in the Spring Framework Container 445 Adding Constraint Validation Annotations to Your Beans 450 Configuring Spring Beans for Method Validation 458 Writing Your Own Validation Constraints 466 Integrating Validation in the Customer Support Application 470 Summary 472 Chapter 17: Creating RESTful and SOAP Web Services 473 Understanding Web Services 474 Configuring RESTful Web Services with Spring MVC 484 Testing Your Web Service Endpoints 496 Using Spring Web Services for SOAP 500 Summary 508 Chapter 18: Using Messaging and Clustering for Flexibility and Reliability 509 Recognizing When You Need Messaging and Clustering 510 Adding Messaging Support to your Application 520 Making your Messaging Distributable Across a Cluster 525 Distributing Events with AMQP 534 Summary 540 Part III: Persisting Data with JPA and Hibernate ORM Chapter 19: Introducing Java Persistence API and Hibernate ORM 543 What is Data Persistence? 543 What is an Object-Relational Mapper? 547 A Brief Look at Hibernate ORM 552 Preparing a Relational Database 559 A Note About Maven Dependencies 564 Summary 564 Chapter 20: Mapping Entities to Tables with JPA Annotations 565 Getting Started with Simple Entities 566 Creating and Using a Persistence Unit 581 Mapping Complex Data Types 590 Summary 596 Chapter 21: Using JPA in Spring Framework Repositories 597 Using Spring Repositories and Transactions 598 Configuring Persistence in Spring Framework 602 Creating and Using JPA Repositories 610 Converting Data with DTOs and Entities 624 Summary 632 Chapter 22: Eliminating Boilerplate Repositories with Spring Data JPA 633 Understanding Spring Data’s Unified Data Access 634 Configuring and Creating Spring Data JPA Repositories 646 Refactoring the Customer Support Application 656 Summary 661 Chapter 23: Searching for Data with JPA and Hibernate Search 663 An Introduction to Searching 664 Using Advanced Criteria to Locate Objects 666 Taking Advantage of Full-Text Indexes with JPA 676 Indexing Any Data with Apache Lucene and Hibernate Search 684 Summary 692 Chapter 24: Creating Advanced Mappings and Custom Data Types 693 What’s Left? 694 Converting Nonstandard Data Types 695 Embedding POJOs Within Entities 699 Defining Relationships Between Entities 703 Addressing Other Common Situations 709 Creating Programmatic Triggers 717 Refining the Customer Support Application 720 Summary 725 Part IV: Securing Your Application with Spring Security Chapter 25: Introducing Spring Security 729 What is Authentication? 729 Why Spring Security? 743 Summary 746 Chapter 26: Authenticating Users with Spring Security 747 Choosing and Configuring an Authentication Provider 748 Writing Your Own Authentication Provider 766 Summary 778 Chapter 27: Using Authorization Tags and Annotations 779 Authorizing by Declaration 780 Understanding Authorization Decisions 794 Creating Access Control Lists for Object Security 798 Adding Authorization to Customer Support 804 Summary 814 Chapter 28: Securing RESTful Web Services with OAuth 815 Understanding Web Service Security 816 Introducing OAuth 818 Using Spring Security OAuth 833 Finishing the Customer Support Application 840 Creating an OAuth Client Application 856 Summary 862 Index 865

    £45.12

  • Writing Computer Code

    John Wiley & Sons Inc Writing Computer Code

    3 in stock

    Book SynopsisA technology book for kids! Learning how to code can be like learning a foreign language. This book serves as an excellent guide to help you start writing in the odd-looking languages that make the web work. Follow simple steps as you work with real code to build your own web robots.Table of ContentsIntroduction 1 About This Book 1 About You 2 About The Icons 3 The First Step 4 Project 1: Becoming a Programmer 5 What Is Programming? 5 How can you talk to computers? 10 What languages will you learn? 14 Gathering Your Tools 18 Getting your browser ready 18 Working with JSFiddle 19 Sharing Your Fiddle 27 Summary 28 Project 2: Gathering the Parts to Build Your Robot 2 9 Saying What You Mean 30 Making a statement 31 Following the rules 33 Giving and Receiving Data 34 Knowing Your Operands and @Operators 39 Introducing the Super-Calculator 40 Forking the Super-Calculator 41 Using the Super-Calculator 42 Super-calculating with text 44 Summary 47 Project 3: Building Your Robot s Body 48 Writing HTML 48 Seeing what text looks like without HTML 49 Using HTML: It's all about the tags 50 Nesting HTML tags 52 Writing your first HTML document 54 Knowing your HTML elements 56 Introducing Douglas the Robot 58 Changing HTML Using JavaScript 4 Summary 66 Project 4: Giving Your Robot Style 67 Giving Douglas Style 68 Getting the Basics of CSS 69 CSS selectors 70 CSS declarations 74 CSS properties 76 Colorizing Douglas 78 Using CSS colors 78 Changing colors 81 Customizing Your Own Robot 84 Summary 85 Project 5: Animating Your Robot 87 Changing CSS with JavaScript 87 Modifying Douglas with JavaScript 89 Experimenting with Douglas 92 Making Douglas Dance 94 Creating Animations with JavaScript 97 Animating another element 100 Using a second animation function 100 Summary 104 Project 6: Creating a JavaScript Word Game 105 Creating a Variable Story 105 Creating the Word Replacement Game 106 Writing the HTML 108 Styling the Word Game 111 Writing the JavaScript Code 114 Finishing the Program 117

    3 in stock

    £8.54

  • Beginning Rust Programming

    John Wiley & Sons Inc Beginning Rust Programming

    7 in stock

    Book SynopsisQuickly learn the ropes with the Rust programming languageusing this practical, step-by-step guideInBeginning Rust Programming, accomplished programmer and author Ric Messier delivers a highly practical, real-world guide to coding with Rust.Avoiding dry, theoretical content and Hello, world-type tutorials of questionable utility, the book dives immediately intofunctional Rust programming that takes advantage of the language's blazing speed and memory efficiency. Designed from the ground up togive you a running start to using the multiparadigm system programming language, this book will teach you to: Solve real-world computer science problemsof practical importanceUse Rust's rich type system and ownership model to guarantee memory-safetyand thread-safetyIntegrate Rust with other programming languages and use it for embedded devices Perfect for programmers with some experience in other languages, like C or C++,Beginning Rust Programmingis also a great pick for students new to programming and seeking a user-friendly and robust language with which to start their codingcareer.Table of ContentsIntroduction xix Chapter 1: Game of Life: The Basics 1 Game of Life: The Program 2 Starting with Cargo 4 Putting the Pieces Together 5 Bringing In External Functionality 5 Namespaces 6 Generating the Game Grid 7 Dissecting Main 8 Defining Functions 8 Defining Variables 9 Datatypes 11 Arrays 12 Control Structures 14 Looking at More Function Functions 16 Returning Values 16 Passing Parameters 18 Scope 21 Compiling Programs 22 Summary 24 Exercises 25 Additional Resources 25 Chapter 2: Extended Life 27 Understanding Ownership 28 Extending Life 30 Adding Modules 32 Working with Command-Line Arguments 34 Option Types 36 Reading from Files 39 Extracting Values 41 Populating from the Vector 42 Outputting to the Terminal 43 Using Colors 44 Printing Generations 44 Summary 46 Exercises 48 Additional Resources 48 Chapter 3: Building A Library 49 References 50 First Pass 53 Traits and Implementations 56 Self-Identification 60 The Rest 60 Second Pass 62 The Driver 65 Summary 67 Exercises 69 Additional Resources 69 Chapter 4: Hangman 71 Our Data 74 The Traits 77 Implementations 79 Using the Option Enum 82 Finishing Up the Implementation 83 Reading Files and Selecting Words 84 Handling Errors Concisely 85 Generics and Bounds 87 A Vector of Lines 88 The Rest of the Story 90 Initialization 91 Playing the Game 92 Summary 94 Exercises 95 Additional Resources 95 Chapter 5: In Concurrence 97 The Dining Philosophers 98 Mutexes and Semaphores 101 Interprocess Communications 103 The Main Event 106 Unix Sockets 107 File and Directory Handling 109 Closures 112 Threading in the Main 114 Creating Streams 115 Cryptographic Hashing 116 Creating Threads 117 Summary 118 Exercises 119 Additional Resources 119 Chapter 6: Clients and Servers 121 Planning 123 Network Programming 125 Programming Sockets 128 Rust TCP Server 131 Handling Requests 134 Operating System Calls 137 Summary 139 Exercises 140 Additional Resources 140 Chapter 7: Client-Side Applications 141 Encryption 142 Encryption Algorithms 144 Going Hybrid 145 Encryption Algorithms 147 Transport Layer Security (TLS) 147 TLS Server 151 Remote Access Client 154 Creating the Connection 156 Validating Input 157 Regular Expressions 157 The Final Function 159 Summary 163 Exercises 164 Additional Resources 164 Chapter 8: Going Relational 165 Application Architectures 166 n-Tier Applications 167 Microservices 169 Model-View-Controller 171 Databases 172 Structured Query Language 172 Server or Embedded 175 Accessing Databases 176 Writing a Database Program 177 Main and Modules 178 Database Functions 183 Adding Records 184 Listing Records 186 Summary 189 Exercises 190 Additional Resources 190 Chapter 9: NO(SQL) Going 191 Assertions 192 Design by Contract 195 NoSQL 198 Working with MongoDB 202 Inserting Data 202 Reading in Data from a File 206 Populating the Database 207 Retrieving Values 209 Summary 213 Exercises 214 Additional Resources 214 Chapter 10: Web Communications 215 Style Guides 216 Hypertext Transfer Protocol 219 Programmatic Communication 222 Web Communication Over TLS 227 Client Communication 229 Jumping Ahead 232 Jumping Back 237 Summary 238 Exercises 239 Additional Resources 240 Chapter 11: Web Server 241 Offensive vs. Defensive Programming 242 Web Application Communications 245 Web Application Parameters 245 Asynchronous JavaScript and XML 248 Representational State Transfer 249 APIs in Node.js and Python 250 API Server in Rust 252 Rust Rocket 255 Summary 262 Exercises 262 Additional Resources 263 Chapter 12: Getting to the System 265 Extending Functionality 266 Windows Registry 272 Programmatic Access to the Registry 275 Using Rust to Access the Registry 277 System Information with Rust 282 Persistence (for Fun) 287 Summary 289 Exercises 290 Additional Resources 290 Chapter 13: Device Programming 291 Logging 292 Using syslog 292 Using Windows Event Logs 299 Working with Raspberry Pi 305 Lighting Lights 310 Reading GPIO 315 Summary 318 Exercises 319 Additional Resources 319 Chapter 14: Collecting Stuff 321 Arrays and Vectors 322 Linked Lists 329 Stacks 333 Queues 336 Sorting 337 Search Trees 340 Summary 345 Exercises 346 Additional Resources 346 Chapter 15: Odds and Sods 347 Unit Testing 348 Testing Types 350 Test Plans 351 Unit Tests 353 Recursion 360 Machine Learning 364 Chatbots 366 Neural Networks 369 Summary 371 Exercises 373 Additional Resources 373 Index 375

    7 in stock

    £30.39

  • Oracle Database Programming with Visual Basic.Net

    John Wiley & Sons Inc Oracle Database Programming with Visual Basic.Net

    Book SynopsisOracle Database Programming with Visual Basic.NET Discover a detailed treatment of the practical considerations and applications of Oracle database programming with Visual Basic 2019 Oracle Database Programming with Visual Basic.NET: Concepts, Designs, and Implementations delivers a comprehensive exploration of the foundations of Oracle database programming using Visual Basic.NET. Using Visual Basic.NET 2019, Visual Studio.NET 2019, and Oracle 18c XE, the book introduces the Oracle database development system, Oracle SQL Developer and Modeler, and teaches readers how to implement a sample database solution. The distinguished author also demonstrates the use of dotConnect for Oracle to show readers how to create an effective connection to an Oracle 18c XE database. The current versions of the .NET framework, ASP.NET, and ASP.NET 4.7 are also explored and used to offer readers the most up to date web database programming techniques available today. The book provides practical example p

    £62.06

  • Job Ready Go

    John Wiley & Sons Inc Job Ready Go

    3 in stock

    Book SynopsisTackle GoLang with practical and employment-focused instruction In Job Ready Go, software education guru Dr. Haythem Balti delivers an essential and hands-on guide to Go, an open-source programming language developed by Google engineers to combine the most sought-after capabilities of other programming languages, including Java, C#, and C++. In the book, the author walks you through all the most critical skills necessary for successful, on-the-job Go programming. You'll discover: How to get started with Go, including how to run, build, and test your own go programsUnderstand control flow and data structures in Go including arrays, slices, maps, and pointerssHow to leverage structs, interfaces, and methods to organize and reuse codeHow to leverage go to process data, access different types of files and develop APIsLeverage concurrency and gRPCs to create complex and interconnected systems. Job Ready Go offers readers straightforward and elegant instruction based on the renowned mthree GTable of ContentsAbout the Authors v About the Technical Writer vi About the Technical Editor vii Acknowledgments viii Introduction xxi Part I: The Basics of the Go Programming Language 1 Lesson 1: Getting Started with Go 3 Lesson 2: Understanding Go Basics 21 Lesson 3: Storing with Variables 39 Lesson 4: Performing Operations 69 Lesson 5: Controlling Program Flow with Conditional Statements 99 Lesson 6: Controlling Program Flow with Loops 123 Lesson 7: Pulling It All Together: Income Tax Calculator 145 Part II: Organizing Code and Data in Go 173 Lesson 8: Using Functions 175 Lesson 9: Accessing Arrays 195 Lesson 10: Working with Pointers 215 Lesson 11: Organizing with Structs 237 Lesson 12: Accessing Slices 263 Lesson 13: Manipulating Maps 287 Lesson 14: Creating Methods 305 Lesson 15: Adding Interfaces 325 Lesson 16: Pulling It All Together: Building a Burger Shop 343 Part III: Creating Job Ready Solutions in Go 377 Lesson 17: Handling Errors 379 Lesson 18: Concurrency 395 Lesson 19: Sorting and Data Processing 421 Lesson 20: File I/O and OS Operations 453 Lesson 21: Pulling It All Together: Word Analysis in Go 485 Part IV: Advanced Topics for Go Development 525 Lesson 22: Testing 527 Lesson 23: API Development Tutorial 561 Lesson 24: Working with gRPC 591 Lesson 25: Pulling It All Together: Using Smart Data 607 Lesson 26: Using Modules 645 Appendix: File Permissions and Access Rights 651 Index 655

    3 in stock

    £29.74

  • De Gruyter Quantum Computing and Artificial Intelligence:

    15 in stock

    Book SynopsisThis book is to explore and explain the strategically sound capabilities at the synchronization between quantum computing and artificial intelligence (AI). The reader will be presented with an introduction and a deeper review of the technological trends and transitions being unearthed in the quantum computing and AI domains.

    15 in stock

    £123.50

  • De Gruyter Quantum-Safe Cryptography Algorithms and

    15 in stock

    Book SynopsisQuantum computers have demonstrated that they have the inherent potential to outperform classical computers in many areas. One of the major impacts is that the currently available cryptography algorithms are bound to no longer hold once quantum computers are able to compute at full speed. This book presents an overview of all the cross-disciplinary developments in cybersecurity that are being generated by the advancements in quantum computing.

    15 in stock

    £123.50

  • Data Structures and Algorithms in Java 6th Editio

    John Wiley & Sons Data Structures and Algorithms in Java 6th Editio

    10 in stock

    Book Synopsis

    10 in stock

    £154.85

© 2026 Book Curl

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

    Login

    Forgot your password?

    Don't have an account yet?
    Create account