Programming and scripting languages: general Books

881 products


  • 21st Century C

    O'Reilly Media 21st Century C

    2 in stock

    Book SynopsisThrow out your old ideas of C, and relearn a programming language that's substantially outgrown its origins. With this revised edition of 21st Century C, you'll discover up-to-date techniques missing from other C tutorials, whether you're new to the language or just getting reacquainted.

    2 in stock

    £29.99

  • Adaptive Code: Agile coding with design patterns

    Microsoft Press,U.S. Adaptive Code: Agile coding with design patterns

    15 in stock

    Book SynopsisWrite code that can adapt to changes. By applying this book’s principles, you can create code that accommodates new requirements and unforeseen scenarios without significant rewrites. Gary McLean Hall describes Agile best practices, principles, and patterns for designing and writing code that can evolve more quickly and easily, with fewer errors, because it doesn’t impede change. Now revised, updated, and expanded, Adaptive Code, Second Edition adds indispensable practical insights on Kanban, dependency inversion, and creating reusable abstractions. Drawing on over a decade of Agile consulting and development experience, McLean Hall has updated his best-seller with deeper coverage of unit testing, refactoring, pure dependency injection, and more. Master powerful new ways to: • Write code that enables and complements Scrum, Kanban, or any other Agile framework • Develop code that can survive major changes in requirements • Plan for adaptability by using dependencies, layering, interfaces, and design patterns • Perform unit testing and refactoring in tandem, gaining more value from both • Use the “golden master” technique to make legacy code adaptive • Build SOLID code with single-responsibility, open/closed, and Liskov substitution principles • Create smaller interfaces to support more-diverse client and architectural needs • Leverage dependency injection best practices to improve code adaptability • Apply dependency inversion with the Stairway pattern, and avoid related anti-patterns About You This book is for programmers of all skill levels seeking more-practical insight into design patterns, SOLID principles, unit testing, refactoring, and related topics. Most readers will have programmed in C#, Java, C++, or similar object-oriented languages, and will be familiar with core procedural programming techniques.Table of Contents Chapter 1 Introduction to Scrum Chapter 2 Introduction to Kanban Chapter 3 Dependencies and layering Chapter 4 Interfaces and design patterns Chapter 5 Testing Chapter 6 Refactoring Chapter 7 The single responsibility principle Chapter 8 The open/closed principle Chapter 9 The Liskov substitution principle Chapter 10 Interface segregation Chapter 11 Dependency inversion Chapter 12 Dependency injection Chapter 13 Coupling, cohesion, and connascence

    15 in stock

    £33.29

  • Think Bayes

    O'Reilly Media Think Bayes

    15 in stock

    Book SynopsisIf you know how to program, you're ready to tackle Bayesian statistics. With this book, you'll learn how to solve statistical problems with Python code instead of mathematical formulas, using discrete probability distributions rather than continuous mathematics.

    15 in stock

    £33.74

  • Practical C Programming 2e

    O'Reilly Media Practical C Programming 2e

    2 in stock

    Book SynopsisA complete introduction to C++ is provided for the beginning programmer in this guide. It is also suitable for C programmers migrating to C++, emphasising a practical approach including how to understand other people's code.Trade Review"When I picked up Practical C++ I was very skeptical, I've read numerous books aimed at beginner/intermediate readers and very few of them left any lasting impression on me. This book however, did! It's an excellent book, and it feels like it's written by a programmer and not an academic as most tend to. Not only are you going to learn about C++ in the easiest way possible, you're going to learn a lot of tips from someone who's been developing in C++ a long time. ... But I can't say enough good things about this book, it covers a lot more than C++, and it has a whole chapter on program design. This book is all you need to get started with C++. The title says Practical C++ and I'd say it's very practical. Highly recommended." - Peter Waller, news@UKTable of ContentsPreface Part I. The Basics 1. What Is C++? A Brief History of C++ C++ Organization How to Learn C++ 2. The Basics of Program Writing Programs from Conception to Execution Creating a Real Program Getting Help in Unix Getting Help in an IDE Programming Exercises 3. Style Comments C++ Code Naming Style Coding Religion Indentation and Code Format Clarity Simplicity Consistency and Organization Further Reading Summary 4. Basic Declarations and Expressions Basic Program Structure Simple Expressions The std::cout Output Object Variables and Storage Variable Declarations Assignment Statements Floating-Point Numbers Floating-Point Divide Versus Integer Divide Characters Wide Characters Boolean Type Programming Exercises Answers to Chapter Questions 5. Arrays, Qualifiers, and Reading Numbers Arrays Strings Reading Data Initializing Variables Multidimensional Arrays C-Style Strings Types of Integers Types of Floats Constant and Reference Declarations Qualifiers Hexadecimal and Octal Constants Operators for Performing Shortcuts Side Effects Programming Exercises Answers to Chapter Questions 6. Decision and Control Statements if Statement else Statement How Not to Use std::strcmp Looping Statements while Statement break Statement continue Statement The Assignment Anywhere Side Effect Programming Exercises Answers to Chapter Questions 7. The Programming Process Setting Up Your Work Area The Specification Code Design The Prototype The Makefile Testing Debugging Maintenance Revisions Electronic Archaeology Mark Up the Program Use the Debugger Use the Text Editor as a Browser Add Comments Programming Exercises Part II. Simple Programming 8. More Control Statements for Statement switch Statement switch, break, and continue Programming Exercises Answers to Chapter Questions 9. Variable Scope and Functions Scope and Storage Class Namespaces Functions Summary of Parameter Types Recursion Structured Programming Basics Real-World Programming Programming Exercises Answers to Chapter Questions 10. The C++ Preprocessor define Statement Conditional Compilation include Files Parameterized Macros Advanced Features Summary Programming Exercises Answers to Chapter Questions 11. Bit Operations Bit Operators The AND Operator (&) Bitwise OR (|) The Bitwise Exclusive OR (^) The Ones Complement Operator (NOT) (~) The Left and Right Shift Operators (<<, >>) Setting, Clearing, and Testing Bits Bitmapped Graphics Programming Exercises Answers to Chapter Questions Part III. Advanced Types and Classes 12. Advanced Types Structures Unions typedef enum Type Bit Members or Packed Structures Arrays of Structures Programming Exercises Answers to Chapter Questions 13. Simple Classes Stacks Improved Stack Using a Class Introduction to Constructors and Destructors Automatically Generated Member Functions Shortcuts Style Structures Versus Classes Programming Exercises 14. More on Classes Friends Constant Functions Constant Members Static Member Variables Static Member Functions The Meaning of static Programming Exercises 15. Simple Pointers const Pointers Pointers and Printing Pointers and Arrays The reinterpret_cast Pointers and Structures Command-Line Arguments Programming Exercises Answers to Chapter Questions Part IV. Advanced Programming Concepts 16. File Input/Output C++ File I/O Conversion Routines Binary and ASCII Files The End-of-Line Puzzle Binary I/O Buffering Problems Unbuffered I/O Designing File Formats C-Style I/O Routines C-Style Conversion Routines C-Style Binary I/O C- Versus C++- Style I/O Programming Exercises Answers to Chapter Questions 17. Debugging and Optimization Code Reviews Serial Debugging Going Through the Output Interactive Debuggers Debugging a Binary Search Interactive Debugging Tips and Tricks Runtime Errors Optimization How to Optimize Case Study: Inline Functions Versus Normal Functions Case Study: Optimizing a Color-Rendering Algorithm Programming Exercises Answers to Chapter Questions 18. Operator Overloading Creating a Simple Fixed-Point Class Operator Functions Operator Member Functions Warts Full Definition of the Fixed-Point Class Programming Exercises Answers to Chapter Questions 19. Floating Point Floating-Point Format Floating Addition/Subtraction Multiplication and Division Overflow and Underflow Roundoff Error Accuracy Minimizing Roundoff Error Determining Accuracy Precision and Speed Power Series Programming Exercises 20. Advanced Pointers Pointers, Structures, and Classes delete Operator Linked Lists Ordered Linked Lists Doubly Linked Lists Trees Printing a Tree The Rest of the Program Data Structures for a Chess Program Programming Exercises Answers to Chapter Questions 21. Advanced Classes Derived Classes Virtual Functions Virtual Classes Function Hiding in Derived Classes Constructors and Destructors in Derived Classes The dynamic_cast Operator Summary Programming Exercises Answers to Chapter Questions Part V. Other Language Features 22. Exceptions Adding Exceptions to the Stack Class Exceptions Versus assert Programming Exercises 23. Modular Programming Modules Public and Private The extern Storage Class Headers The Body of the Module A Program to Use Infinite Arrays The Makefile for Multiple Files Using the Infinite Array Dividing a Task into Modules Module Design Guidelines Programming Exercises 24. Templates What Is a Template? Templates: The Hard Way Templates: The C++ Way Function Specialization Class Templates Class Specialization Implementation Details Advanced Features Summary Programming Exercises 25. Standard Template Library STL Basics Class List-A Set of Students Creating a Waiting List with the STL List Storing Grades in a STL Map Putting It All Together Practical Considerations When Using the STL Getting More Information Exercises 26. Program Design Design Goals Design Factors Design Principles Coding Objects Real-World Design echniques Conclusion 27. Putting It All Together Requirements Code Design Coding Functional Description Testing Revisions A Final Warning Program Files Programming Exercises 28. From C to C++ K&R-Style Functions struct malloc and free Turning Structures into Classes setjmp and longjmp Mixing C and C++ Code Summary Programming Exercise 29. C++'s Dustier Corners do/while goto The ? : Construct The Comma Operator Overloading the ( ) Operator Pointers to Members The asm Statement The mutable Qualifier Run Time Type Identification Trigraphs Answers to Chapter Questions 30. Programming Adages General Design Declarations switch Statement Preprocessor Style Compiling The Ten Commandments for C++ Programmers Final Note Answers to Chapter Questions Part VI. Appendixes A. ASCII Table B. Ranges C. Operator Precedence Rules D. Computing Sine Using a Power Series E. Resources Index

    2 in stock

    £31.99

  • Core Java Volume I

    Pearson Education Core Java Volume I

    3 in stock

    Book SynopsisCay S. Horstmann is the author of Modern JavaScript for the Impatient (2020), Core Java for the Impatient, Third Edition (2022), Scala for the Impatient, Second Edition (2016), and Java SE 8 for the Really Impatient (2014), all from Addison-Wesley. He has written more than a dozen other books for professional programmers and computer science students. He is an emeritus professor of computer science at San Jose State University and a Java Champion.

    3 in stock

    £43.19

  • Programming

    Pearson Education (US) Programming

    Out of stock

    Book SynopsisBjarne Stroustrup is the designer and original implementer of C++, as well as the author of The C++ Programming Language, Fourth Edition (Addison-Wesley, 2013), and A Tour of C++ (Addison-Wesley, 2014) and many popular and academic publications. Dr. Stroustrup is a managing director at Morgan Stanley in New York City, as well as a visiting professor at Columbia University and a Research distinguished professor at Texas A&M University. He is a member of the U.S. National Academy of Engineering, an IEEE Fellow, and an ACM fellow. His research interests include distributed systems, design, programming techniques, software development tools, and programming languages. He is actively involved in the ISO standardization of C++.Table of Contents Chapter 0: Notes to the Reader Chapter 1: Computers, People, and Programming Chapter 2: Hello, World! Chapter 3: Objects, Types, and Values Chapter 4: Computation Chapter 5: Errors Chapter 6: Writing a Program Chapter 7: Completing a Program Chapter 8: Technicalities: Functions, etc. Chapter 9: Technicalities: Classes, etc Chapter 10: Input and Output Streams Chapter 11: Customizing Input and Output Chapter 12: A Display Model Chapter 13: Graphics Classes Chapter 14: Graphics Class Design Chapter 15: Graphing Functions and Data Chapter 16: Graphical User Interfaces Chapter 17: Vector and Free Store Chapter 18: Vectors and Arrays Chapter 19: Vector, Templates, and Exceptions Chapter 20: Containers and Iterators Chapter 21: Algorithms and Maps Chapter 22: Ideals and History Chapter 23: Text Manipulation Chapter 24: Numerics Chapter 25: Embedded Systems Programming Chapter 26: Testing Chapter 27: The C Programming Language

    Out of stock

    £52.72

  • C Primer Plus

    Pearson Education (US) C Primer Plus

    Out of stock

    Book SynopsisStephen Prata , now retired, taught astronomy, physics, and programming at the College of Marin in Kentfield, California. He received his B.S. from the California Institute of Technology and his Ph.D. from the University of California, Berkeley. His association with computers began with the computer modeling of star clusters. Stephen as authored or coauthored over a dozen books, including C++ Primer Plus and Unix Primer Plus.Table of ContentsPreface xxvii 1 Getting Ready 1 Whence C? 1 Why C? 2 Design Features 2 Efficiency 3 Portability 3 Power and Flexibility 3 Programmer Oriented 3 Shortcomings 4 Whither C? 4 What Computers Do 5 High-level Computer Languages and Compilers 6 Language Standards 7 The First ANSI/ISO C Standard 8 The C99 Standard 8 The C11 Standard 9 Using C: Seven Steps 9 Step 1: Define the Program Objectives 10 Step 2: Design the Program 10 Step 3: Write the Code 11 Step 4: Compile 11 Step 5: Run the Program 12 Step 6: Test and Debug the Program 12 Step 7: Maintain and Modify the Program 13 Commentary 13 Programming Mechanics 13 Object Code Files, Executable Files, and Libraries 14 Unix System 16 The GNU Compiler Collection and the LLVM Project 18 Linux Systems 18 Command-Line Compilers for the PC 19 Integrated Development Environments (Windows) 19 The Windows/Linux Option 21 C on the Macintosh 21 How This Book Is Organized 22 Conventions Used in This Book 22 Typeface 22 Program Output 23 Special Elements 24 Summary 24 Review Questions 25 Programming Exercise 25 2 Introducing C 27 A Simple Example of C 27 The Example Explained 28 Pass 1: Quick Synopsis 30 Pass 2: Program Details 31 The Structure of a Simple Program 40 Tips on Making Your Programs Readable 41 Taking Another Step in Using C 42 Documentation 43 Multiple Declarations 43 Multiplication 43 Printing Multiple Values 43 While You're at It–Multiple Functions 44 Introducing Debugging 46 Syntax Errors 46 Semantic Errors 47 Program State 49 Keywords and Reserved Identifiers 49 Key Concepts 50 Summary 51 Review Questions 51 Programming Exercises 53 3 Data and C 55 A Sample Program 55 What's New in This Program? 57 Data Variables and Constants 59 Data: Data-Type Keywords 59 Integer Versus Floating-Point Types 60 The Integer 61 The Floating-Point Number 61 Basic C Data Types 62 The int Type 62 Other Integer Types 66 Using Characters: Type char 71 The _Bool Type 77 Portable Types: stdint.h and inttypes.h 77 Types float, double, and long double 79 Complex and Imaginary Types 85 Beyond the Basic Types 85 Type Sizes 87 Using Data Types 88 Arguments and Pitfalls 89 One More Example: Escape Sequences 91 What Happens When the Program Runs 91 Flushing the Output 92 Key Concepts 93 Summary 93 Review Questions 94 Programming Exercises 97 4 Character Strings and Formatted Input/Output 99 Introductory Program 99 Character Strings: An Introduction 101 Type char Arrays and the Null Character 101 Using Strings 102 The strlen() Function 103 Constants and the C Preprocessor 106 The const Modifier 109 Manifest Constants on the Job 109 Exploring and Exploiting printf() and scanf() 112 The printf() Function 112 Using printf() 113 Conversion Specification Modifiers for printf() 115 What Does a Conversion Specification Convert? 122 Using scanf() 128 The * Modifier with printf() and scanf() 133 Usage Tips for printf() 135 Key Concepts 136 Summary 137 Review Questions 138 Programming Exercises 140 5 Operators, Expressions, and Statements 143 Introducing Loops 144 Fundamental Operators 146 Assignment Operator: = 146 Addition Operator: + 149 Subtraction Operator: — 149 Sign Operators: — and + 150 Multiplication Operator: * 151 Division Operator: / 153 Operator Precedence 154 Precedence and the Order of Evaluation 156 Some Additional Operators 157 The sizeof Operator and the size_t Type 158 Modulus Operator: % 159 Increment and Decrement Operators: ++ and -- 160 Decrementing: -- 164 Precedence 165 Don't Be Too Clever 166 Expressions and Statements 167 Expressions 167 Statements 168 Compound Statements (Blocks) 171 Type Conversions 174 The Cast Operator 176 Function with Arguments 177 A Sample Program 180 Key Concepts 182 Summary 182 Review Questions 183 Programming Exercises 187 6 C Control Statements: Looping 189 Revisiting the while Loop 190 Program Comments 191 C-Style Reading Loop 192 The while Statement 193 Terminating a while Loop 194 When a Loop Terminates 194 while: An Entry-Condition Loop 195 Syntax Points 195 Which Is Bigger: Using Relational Operators and Expressions 197 What Is Truth? 199 What Else Is True? 200 Troubles with Truth 201 The New _Bool Type 203 Precedence of Relational Operators 205 Indefinite Loops and Counting Loops 207 The for Loop 208 Using for for Flexibility 210 More Assignment Operators: +=, -=, *=, /=, %= 215 The Comma Operator 215 Zeno Meets the for Loop 218 An Exit-Condition Loop: do while 220 Which Loop? 223 Nested Loops 224 Program Discussion 225 A Nested Variation 225 Introducing Arrays 226 Using a for Loop with an Array 228 A Loop Example Using a Function Return Value 230 Program Discussion 232 Using Functions with Return Values 233 Key Concepts 234 Summary 235 Review Questions 236 Programming Exercises 241 7 C Control Statements: Branching and Jumps 245 The if Statement 246 Adding else to the if Statement 248 Another Example: Introducing getchar() and putchar() 250 The ctype.h Family of Character Functions 252 Multiple Choice else if 254 Pairing else with if 257 More Nested ifs 259 Let's Get Logical 263 Alternate Spellings: The iso646.h Header File 265 Precedence 265 Order of Evaluation 266 Ranges 267 A Word-Count Program 268 The Conditional Operator: ?: 271 Loop Aids: continue and break 274 The continue Statement 274 The break Statement 277 Multiple Choice: switch and break 280 Using the switch Statement 281 Reading Only the First Character of a Line 283 Multiple Labels 284 switch and if else 286 The goto Statement 287 Avoiding goto 287 Key Concepts 291 Summary 291 Review Questions 292 Programming Exercises 296 8 Character Input/Output and Input Validation 299 Single-Character I/O: getchar() and putchar() 300 Buffers 301 Terminating Keyboard Input 302 Files, Streams, and Keyboard Input 303 The End of File 304 Redirection and Files 307 Unix, Linux, and Windows Command Prompt Redirection 307 Creating a Friendlier User Interface 312 Working with Buffered Input 312 Mixing Numeric and Character Input 314 Input Validation 317 Analyzing the Program 322 The Input Stream and Numbers 323 Menu Browsing 324 Tasks 324 Toward a Smoother Execution 325 Mixing Character and Numeric Input 327 Key Concepts 330 Summary 331 Review Questions 331 Programming Exercises 332 9 Functions 335 Reviewing Functions 335 Creating and Using a Simple Function 337 Analyzing the Program 338 Function Arguments 340 Defining a Function with an Argument: Formal Parameters 342 Prototyping a Function with Arguments 343 Calling a Function with an Argument: Actual Arguments 343 The Black-Box Viewpoint 345 Returning a Value from a Function with return 345 Function Types 348 ANSI C Function Prototyping 349 The Problem 350 The ANSI C Solution 351 No Arguments and Unspecified Arguments 352 Hooray for Prototypes 353 Recursion 353 Recursion Revealed 354 Recursion Fundamentals 355 Tail Recursion 356 Recursion and Reversal 358 Recursion Pros and Cons 360 Compiling Programs with Two or More Source Code Files 361 Unix 362 Linux 362 DOS Command-Line Compilers 362 Windows and Apple IDE Compilers 362 Using Header Files 363 Finding Addresses: The & Operator 367 Altering Variables in the Calling Function 369 Pointers: A First Look 371 The Indirection Operator: * 371 Declaring Pointers 372 Using Pointers to Communicate Between Functions 373 Key Concepts 378 Summary 378 Review Questions 379 Programming Exercises 380 10 Arrays and Pointers 383 Arrays 383 Initialization 384 Designated Initializers (C99) 388 Assigning Array Values 390 Array Bounds 390 Specifying an Array Size 392 Multidimensional Arrays 393 Initializing a Two-Dimensional Array 397 More Dimensions 398 Pointers and Arrays 398 Functions, Arrays, and Pointers 401 Using Pointer Parameters 404 Comment: Pointers and Arrays 407 Pointer Operations 407 Protecting Array Contents 412 Using const with Formal Parameters 413 More About const 415 Pointers and Multidimensional Arrays 417 Pointers to Multidimensional Arrays 420 Pointer Compatibility 421 Functions and Multidimensional Arrays 423 Variable-Length Arrays (VLAs) 427 Compound Literals 431 Key Concepts 434 Summary 435 Review Questions 436 Programming Exercises 439 11 Character Strings and String Functions 441 Representing Strings and String I/O 441 Defining Strings Within a Program 442 Pointers and Strings 451 String Input 453 Creating Space 453 The Unfortunate gets() Function 453 The Alternatives to gets() 455 The scanf() Function 462 String Output 464 The puts() Function 464 The fputs() Function 465 The printf() Function 466 The Do-It-Yourself Option 466 String Functions 469 The strlen() Function 469 The strcat() Function 471 The strncat() Function 473 The strcmp() Function 475 The strcpy() and strncpy() Functions 482 The sprintf() Function 487 Other String Functions 489 A String Example: Sorting Strings 491 Sorting Pointers Instead of Strings 493 The Selection Sort Algorithm 494 The ctype.h Character Functions and Strings 495 Command-Line Arguments 497 Command-Line Arguments in Integrated Environments 500 Command-Line Arguments with the Macintosh 500 String-to-Number Conversions 500 Key Concepts 504 Summary 504 Review Questions 505 Programming Exercises 508 12 Storage Classes, Linkage, and Memory Management 511 Storage Classes 511 Scope 513 Linkage 515 Storage Duration 516 Automatic Variables 518 Register Variables 522 Static Variables with Block Scope 522 Static Variables with External Linkage 524 Static Variables with Internal Linkage 529 Multiple Files 530 Storage-Class Specifier Roundup 530 Storage Classes and Functions 533 Which Storage Class? 534 A Random-Number Function and a Static Variable 534 Roll 'Em 538 Allocated Memory: malloc() and free() 543 The Importance of free() 547 The calloc() Function 548 Dynamic Memory Allocation and Variable-Length Arrays 548 Storage Classes and Dynamic Memory Allocation 549 ANSI C Type Qualifiers 551 The const Type Qualifier 552 The volatile Type Qualifier 554 The restrict Type Qualifier 555 The _Atomic Type Qualifier (C11) 556 New Places for Old Keywords 557 Key Concepts 558 Summary 558 Review Questions 559 Programming Exercises 561 13 File Input/Output 565 Communicating with Files 565 What Is a File? 566 The Text Mode and the Binary Mode 566 Levels of I/O 568 Standard Files 568 Standard I/O 568 Checking for Command-Line Arguments 569 The fopen() Function 570 The getc() and putc() Functions 572 End-of-File 572 The fclose() Function 57

    Out of stock

    £62.01

  • Types and Programming Languages

    MIT Press Types and Programming Languages

    1 in stock

    Book SynopsisA comprehensive introduction to type systems and programming languages.A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems—and of programming languages from a type-theoretic perspective—has important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

    1 in stock

    £76.50

  • Practical ObjectOriented Design

    Pearson Education (US) Practical ObjectOriented Design

    4 in stock

    Book SynopsisTrade ReviewPraise for the first edition of Practical Object-Oriented Design in Ruby “Meticulously pragmatic and exquisitely articulate, Practical Object Oriented Design in Ruby makes otherwise elusive knowledge available to an audience which desperately needs it. The prescriptions are appropriate both as rules for novices and as guidelines for experienced professionals.” —Katrina Owen, Creator, Exercism “I do believe this will be the most important Ruby book of 2012. Not only is the book 100% on-point, Sandi has an easy writing style with lots of great analogies that drive every point home.” —Avdi Grimm, author of Exceptional Ruby and Objects on Rails “While Ruby is an object-oriented language, little time is spent in the documentation on what OO truly means or how it should direct the way we build programs. Here Metz brings it to the fore, covering most of the key principles of OO development and design in an engaging, easy-to-understand manner. This is a must for any respectable Ruby bookshelf.” —Peter Cooper, editor, Ruby Weekly “So good, I couldn’t put it down! This is a must-read for anyone wanting to do object-oriented programming in any language, not to mention it has completely changed the way I approach testing.” —Charles Max Wood, Ruby Rogues Podcast co-host and CEO of Devchat.tv “Distilling scary OO design practices with clear-cut examples and explanations makes this a book for novices and experts alike. It is well worth the study by anyone interested in OO design being done right and ‘light.’ I thoroughly enjoyed this book.” —Manuel Pais, DevOps and Continuous Delivery Consultant, Independent “If you call yourself a Ruby programmer, you should read this book. It’s jam-packed with great nuggets of practical advice and coding techniques that you can start applying immediately in your projects.” —Ylan Segal, San Diego Ruby User Group “This is the best OO book I’ve ever read. It’s short, sweet, but potent. It slowly moves from simple techniques to more advanced, each example improving on the last. The ideas it presents are useful not just in Ruby but in static languages like C# too. Highly recommended!” —Kevin Berridge, software engineering manager, Pointe Blank Solutions, and organizer, Burning River Developers Meetup “This is the best programming book I’ve read in ages. Sandi talks about basic principles, but these are things we’re probably still doing wrong and she shows us why and how. The book has the perfect mix of code, diagrams, and words. I can’t recommend it enough and if you’re serious about being a better programmer, you’ll read it and agree. —Derick Hitchcock, software engineer, Cisco “Metz’s take on the subject is rooted strongly in theory, but the explanation always stays grounded in real world concerns, which helped me to internalize it. The book is clear and concise, yet achieves a tone that is more friendly than terse.” —Alex Strasheim, network administrator, Ensemble Travel Group “Whether you’re just getting started in your software development career, or you’ve been coding for years (like I have), it’s likely that you’ll learn a lot from Ms. Metz’s book. She does a fantastic job of explaining the whys of well-designed software along with the hows.” —Gabe Hollombe, software craftsman, avantbard.comTable of ContentsIntroduction xv Acknowledgments xix About the Author xxi Chapter 1: Object-Oriented Design 1 1.1 In Praise of Design 2 1.2 The Tools of Design 4 1.3 The Act of Design 6 1.4 A Brief Introduction to Object-Oriented Programming 10 1.5 Summary 13 Chapter 2: Designing Classes with a Single Responsibility 15 2.1 Deciding What Belongs in a Class 16 2.2 Creating Classes That Have a Single Responsibility 17 2.3 Writing Code That Embraces Change 24 2.4 Finally, the Real Wheel 33 2.5 Summary 35 Chapter 3: Managing Dependencies 37 3.1 Understanding Dependencies 38 3.2 Writing Loosely Coupled Code 41 3.3 Managing Dependency Direction 53 3.4 Summary 59 Chapter 4: Creating Flexible Interfaces 61 4.1 Understanding Interfaces 61 4.2 Defining Interfaces 63 4.3 Finding the Public Interface 65 4.4 Writing Code That Puts Its Best (Inter)Face Forward 77 4.5 The Law of Demeter 80 4.6 Summary 84 Chapter 5: Reducing Costs with Duck Typing 85 5.1 Understanding Duck Typing 85 5.2 Writing Code That Relies on Ducks 95 5.3 Conquering a Fear of Duck Typing 100 5.4 Summary 103 Chapter 6: Acquiring Behavior through Inheritance 105 6.1 Understanding Classical Inheritance 105 6.2 Recognizing Where to Use Inheritance 106 6.3 Misapplying Inheritance 114 6.4 Finding the Abstraction 116 6.5 Managing Coupling between Superclasses and Subclasses 129 6.6 Summary 139 Chapter 7: Sharing Role Behavior with Modules 141 7.1 Understanding Roles 142 7.2 Writing Inheritable Code 158 7.3 Summary 161 Chapter 8: Combining Objects with Composition 163 8.1 Composing a Bicycle of Parts 163 8.2 Composing the Parts Object 168 8.3 Manufacturing Parts 176 8.4 The Composed Bicycle 181 8.5 Deciding between Inheritance and Composition 185 8.6 Summary 191 Chapter 9: Designing Cost-Effective Tests 193 9.1 Intentional Testing 194 9.2 Testing Incoming Messages 202 9.3 Testing Private Methods 215 9.4 Testing Outgoing Messages 217 9.5 Testing Duck Types 221 9.6 Testing Inherited Code 233 9.7 Summary 244 Afterword 245 Index 247

    4 in stock

    £32.39

  • Elixir in Action

    Manning Publications Elixir in Action

    15 in stock

    Book SynopsisThe Elixir language blends the battle-tested power and stability of the Erlang virtual machine with an approachable and expressive syntax. Elixir in Action, Second Edition teaches you how to use the Elixir programming language to solve the practical problems of scalability, fault tolerance, and high availability. This new edition is fully updated to cover Elixir 1.6 with new and improved code examples. Key Features · Fully updated · Practical introduction to Elixir · Functional and concurrent programming idioms · Mastering the OTP framework Audience Requires no previous experience with Elixir, Erlang, or OTP. Written for readers who are familiar with another programming language like Ruby, JavaScript, or C#. Author Bio Saša Jurić is a developer with extensive experience using Elixir and Erlang in complex server-side systems.

    15 in stock

    £35.99

  • Python Programming on WIN32

    O'Reilly Media Python Programming on WIN32

    Out of stock

    Book SynopsisPython is growing in popularity; based on download statistics, there are now over 450,000 people using Python, and more than 150,000 people using Python on Windows. Use of the language has been growing at about 40% per year since 1995, and there is every reason to believe that growth will continue. Despite Python's increasing popularity on Windows, Python Programming on Win32 is the first book to demonstrate how to use it as a serious Windows development and administration tool. Unlike scripting on Unix, Windows scripting involves integrating a number of components, such as COM or the various mail and database APIs, with the Win32 programming interface. While experienced Windows C++ programmers can find their way through the various objects, most people need some guidance, and this book is it. It addresses all the basic technologies for common integration tasks on Windows, explaining both the Windows issues and the Python code you need to glue things together. Topics include: * The Python language and the PythonWin extensions * Building a GUI with COM * Adding a Macro language * Distributing the application * Client-side COM for output and data access * Integration with mail and other internet protocols * Managing users and drives This is a vital and unique book. Python Programming on Win32 is an excellent presentation of Windows application development and a solid illustration of how to use Python in the Windows environment.Table of ContentsPreface. I. Introduction to Python. 1. What Is Python? Language Features Python as an Integration Tool Case Studies of Python Deployment The Python Community Installation and Setup Conclusion. 2. Python Language Review A Crash Course Conclusion References. 3. Python on Windows The Python Core on Windows The Python for Windows Extensions The Python Imaging Library (PIL) PyOpenGL Web Publishing Tools The mx Extensions Scientific Tools XML Conclusion. 4. Integrated Development Environments for Python The PythonWin IDE IDLE Conclusion. 5. Introduction to COM What It Is Using COM Objects from Python Implementing COM Objects with Python Globally Unique Identifiers Conclusion II. Building an Advanced Python Application. 6. A Financial Modeling Toolkit in Python Doubletalk A Crash Course in Accounting The Doubletalk Toolkit at Work Conclusion. 7. Building a GUI with COM Designing COM Servers A VB Client Writing a Delphi User Interface Conclusion. 8. Adding a Macro Language Dynamic Code Evaluation Making an Application Extensible Conclusion 9. Integration with Excel Client-Side COM and the Excel Object Model Excel Concluded Putting It All Together: Importing Financial Data Server-Side COM Again: Excel as a GUI Conclusion References. 10. Printed Output Business Requirements Automating Word Direct Output to the Printer with Windows PIDDLE: A Python Graphics API PostScript Portable Document Format Putting It Together: A High-Volume Invoicing System Conclusion References. 11. Distributing Our Application DCOM Conclusion II. Python on Windows Cookbook. 12. Advanced Python and COM Advanced COM Python and COM Using Automation Objects from Python Using Other COM Interfaces Error Handling Implementing COM Objects in Python Python and DCOM Conclusion. 13. Databases DAO, ADO, ODBC, OLEDB, and Other GBFLAs Python's Database API Getting at Your Data A Note on Speed Gadfly, the Pure Python Relational Database Data Laundering with Python A Three-Tier Architecture with Business Objects Conclusion References. 14. Working with Email SMTP and POP3 Microsoft Exchange/Outlook Conclusion. 15. Using the Basic Internet Protocols HTTP and HTML FTP NNTP Conclusion. 16. Windows NT Administration Working with Users and Groups Server and Share Information Rebooting a Machine Conclusion References. 17. Processes and Files Portable File Manipulation Native File Manipulation: The win32file Module Pipes Processes Conclusion. 18. Windows NT Services Services in Brief Controlling Services with Python Reading the Event Log Windows NT Performance Monitor Data Writing Services in Python Sample Service Written in Python Writing to the Event Log Providing Performance Monitor Information A Final Service Conclusion. 19. Communications Serial Communications Remote Access Services Sockets Other Communications Tools Conclusion References. 20. GUI Development Tkinter PythonWin wxPython. 21. Active Scripting Registering the Python Active Script Support Python and Popular Microsoft Applications Active Debugging How Active Scripting Works Active Script Hosting in Python Conclusion. 22. Extending and Embedding with Visual C++ and Delphi Python and Visual C++ |Simplified Wrapper and Interface Generator Python and Delphi Dynamic DLL Access References Conclusion IV. Appendixes A. Key Python Modules and Functions B. Win32 Extensions Reference C. The Python Database API Version 2.0 D. Threads Index

    Out of stock

    £35.99

  • Snowflake  The Definitive Guide

    O'Reilly Media Snowflake The Definitive Guide

    15 in stock

    Book SynopsisSnowflake's ability to eliminate data silos and run workloads from a single platform creates opportunities to democratize data analytics, allowing users within an organization to make data-driven decisions. This clear, comprehensive guide will show you how to build integrated data applications and develop new revenue streams based on data.

    15 in stock

    £47.99

  • Introduction to Python Programming and Data

    Pearson Education Limited Introduction to Python Programming and Data

    15 in stock

    Book SynopsisY. Daniel Liang earned his Ph.D. in Computer Science from the University of Oklahoma, USA in 1991, and an MS and BS in Computer Science from Fudan University, China, in 1986 and 1983. Prior to joining Armstrong, he was Associate Professor of Computer Science at Purdue University in Fort Wayne, where he twice received the Excellence in Research Award. Dr. Liang was trained in theoretical computer science. He was active in graph algorithms from 1990 to 1995 and published more than ten papers in several established journals such as SIAM Journal on Computing, Discrete Applied Mathematics, Acta Informatics, and Information Processing Letters. Since 1996, he has devoted to writing texts and published more than thirty books with Prentice Hall. His popular computer science texts are widely adopted in the world. Dr. Liang was elected a Java Champion in 2005 by Sun Microsystems and has given lectures on Java internationally.Table of Contents Introduction to Computers, Programs, and Python Elementary Programming Selections Mathematical Functions, Strings, and Objects Loops Functions Lists Multidimensional Lists Objects and Classes Basic GUI Programming Using Tkinter Advanced GUI Programming Using Tkinter Inheritance and Polymorphism Files and Exception Handling Tuples, Sets, and Dictionaries Recursion Developing Efficient Algorithms Sorting Linked Lists, Stacks, Queues, and Priority Queues Binary Search Trees AVL Trees Hashing Graphs and Applications Weighted Graphs and Applications Appendix A. Python Keywords Appendix B. The ASCII Character Set Appendix C. Number Systems Appendix D. Command Line Arguments Appendix E. Regular Expressions Appendix F. Bitwise Operations Appendix G. The Big-O, Big-Omega, and Big-Theta Notations Appendix H. Operator Precedence Chart Symbol Index Supplemental Material Glossary

    15 in stock

    £63.64

  • SVG Text Layout

    O'Reilly Media SVG Text Layout

    1 in stock

    Book SynopsisThis book takes a deep dive into the use of text within SVG to explore the creative possibilities as well as the potential pitfalls. You'll start with SVG's text basics, and then learn methods for using SVG to generate complex layouts.

    1 in stock

    £15.99

  • Building Maintainable Software C Edition

    O'Reilly Media Building Maintainable Software C Edition

    1 in stock

    Book SynopsisWith this practical book, you'll learn 10 easy-to-follow guidelines for delivering C# software that's easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems.

    1 in stock

    £15.99

  • Problem Solving and Program Design in C Global

    Pearson Education Problem Solving and Program Design in C Global

    2 in stock

    Book SynopsisTable of Contents0. Computer Science as a Career Path 1. Overview of Computers and Programming 2. Overview of C 3. Top-Down Design with Functions 4. Selection Structures: if and switch Statements 5. Repetition and Loop Statements 6. Pointers and Modular Programming 7. Array Pointers 8. Strings 9. Recursion 10. Structure and Union Types 11. Text and Binary File Pointers 12. Programming in the Large 13. Pointers and Dynamic Data Structures 14. Multiprocessing Using Processes and Threads (Online at www.pearsonhighered.com/irc) 15. On to C++ (Online at www.pearsonhighered.com/irc ) Appendices A. More about Pointers B. ANSI C Standard Libraries C. C Operators D. Character Sets E. ANSI C Reserved Words

    2 in stock

    £74.99

  • R for Everyone

    Pearson Education (US) R for Everyone

    15 in stock

    Book SynopsisJared P. Lander is the owner of Lander Analytics, a statistical consulting firm based in New York City, the organizer of the New York Open Statistical Programming Meetup and an adjunct professor of statistics at Columbia University. He is also a tour guide for Scott's Pizza Tours and an advisor to Brewla Bars, a gourmet ice pop startup. With an M.A. from Columbia University in statistics and a B.A. from Muhlenberg College in mathematics, he has experience in both academic research and industry. His work for both large and small organizations spans politics, tech startups, fund raising, music, finance, healthcare, and humanitarian relief efforts. He specializes in data management, multilevel models, machine learning, generalized linear models, visualization, data management, and statistical computing.Table of Contents Foreword xv Preface xvii Acknowledgments xxi About the Author xxv Chapter 1: Getting R 1 1.1 Downloading R 1 1.2 R Version 2 1.3 32-bit vs. 64-bit 2 1.4 Installing 2 1.5 Microsoft R Open 14 1.6 Conclusion 14 Chapter 2: The R Environment 15 2.1 Command Line Interface 16 2.2 RStudio 17 2.3 Microsoft Visual Studio 31 2.4 Conclusion 31 Chapter 3: R Packages 33 3.1 Installing Packages 33 3.2 Loading Packages 36 3.3 Building a Package 37 3.4 Conclusion 37 Chapter 4: Basics of R 39 4.1 Basic Math 39 4.2 Variables 40 4.3 Data Types 42 4.4 Vectors 47 4.5 Calling Functions 52 4.6 Function Documentation 52 4.7 Missing Data 53 4.8 Pipes 54 4.9 Conclusion 55 Chapter 5: Advanced Data Structures 57 5.1 data.frames 57 5.2 Lists 64 5.3 Matrices 70 5.4 Arrays 73 5.5 Conclusion 74 Chapter 6: Reading Data into R 75 6.1 Reading CSVs 75 6.2 Excel Data 79 6.3 Reading from Databases 81 6.4 Data from Other Statistical Tools 84 6.5 R Binary Files 85 6.6 Data Included with R 87 6.7 Extract Data from Web Sites 88 6.8 Reading JSON Data 90 6.9 Conclusion 92 Chapter 7: Statistical Graphics 93 7.1 Base Graphics 93 7.2 ggplot2 96 7.3 Conclusion 110 Chapter 8: Writing R functions 111 8.1 Hello, World! 111 8.2 Function Arguments 112 8.3 Return Values 114 8.4 do.call 115 8.5 Conclusion 116 Chapter 9: Control Statements 117 9.1 if and else 117 9.2 switch 120 9.3 ifelse 121 9.4 Compound Tests 123 9.5 Conclusion 123 Chapter 10: Loops, the Un-R Way to Iterate 125 10.1 for Loops 125 10.2 while Loops 127 10.3 Controlling Loops 127 10.4 Conclusion 128 Chapter 11: Group Manipulation 129 11.1 Apply Family 129 11.2 aggregate 132 11.3 plyr 136 11.4 data.table 140 11.5 Conclusion 150 Chapter 12: Faster Group Manipulation with dplyr 151 12.1 Pipes 151 12.2 tbl 152 12.3 select 153 12.4 filter 161 12.5 slice 167 12.6 mutate 168 12.7 summarize 171 12.8 group_by 172 12.9 arrange 173 12.10 do 174 12.11 dplyr with Databases 176 12.12 Conclusion 178 Chapter 13: Iterating with purrr 179 13.1 map 179 13.2 map with Specified Types 181 13.3 Iterating over a data.frame 186 13.4 map with Multiple Inputs 187 13.5 Conclusion 188 Chapter 14: Data Reshaping 189 14.1 cbind and rbind 189 14.2 Joins 190 14.3 reshape2 197 14.4 Conclusion 200 Chapter 15: Reshaping Data in the Tidyverse 201 15.1 Binding Rows and Columns 201 15.2 Joins with dplyr 202 15.3 Converting Data Formats 207 15.4 Conclusion 210 Chapter 16: Manipulating Strings 211 16.1 paste 211 16.2 sprintf 212 16.3 Extracting Text 213 16.4 Regular Expressions 217 16.5 Conclusion 224 Chapter 17: Probability Distributions 225 17.1 Normal Distribution 225 17.2 Binomial Distribution 230 17.3 Poisson Distribution 235 17.4 Other Distributions 238 17.5 Conclusion 240 Chapter 18: Basic Statistics 241 18.1 Summary Statistics 241 18.2 Correlation and Covariance 244 18.3 T-Tests 252 18.4 ANOVA 260 18.5 Conclusion 263 Chapter 19: Linear Models 265 19.1 Simple Linear Regression 265 19.2 Multiple Regression 270 19.3 Conclusion 287 Chapter 20: Generalized Linear Models 289 20.1 Logistic Regression 289 20.2 Poisson Regression 293 20.3 Other Generalized Linear Models 297 20.4 Survival Analysis 297 20.5 Conclusion 302 Chapter 21: Model Diagnostics 303 21.1 Residuals 303 21.2 Comparing Models 309 21.3 Cross-Validation 313 21.4 Bootstrap 318 21.5 Stepwise Variable Selection 321 21.6 Conclusion 324 Chapter 22: Regularization and Shrinkage 325 22.1 Elastic Net 325 22.2 Bayesian Shrinkage 342 22.3 Conclusion 346 Chapter 23: Nonlinear Models 347 23.1 Nonlinear Least Squares 347 23.2 Splines 350 23.3 Generalized Additive Models 353 23.4 Decision Trees 359 23.5 Boosted Trees 361 23.6 Random Forests 364 23.7 Conclusion 366 Chapter 24: Time Series and Autocorrelation 367 24.1 Autoregressive Moving Average 367 24.2 VAR 374 24.3 GARCH 379 24.4 Conclusion 388 Chapter 25: Clustering 389 25.1 K-means 389 25.2 PAM 397 25.3 Hierarchical Clustering 403 25.4 Conclusion 407 Chapter 26: Model Fitting with Caret 409 26.1 Caret Basics 409 26.2 Caret Options 409 26.3 Tuning a Boosted Tree 411 26.4 Conclusion 415 Chapter 27: Reproducibility and Reports with knitr 417 27.1 Installing a LaTeX Program 417 27.2 LaTeX Primer 418 27.3 Using knitr with LaTeX 420 27.4 Conclusion 426 Chapter 28: Rich Documents with RMarkdown 427 28.1 Document Compilation 427 28.2 Document Header 427 28.3 Markdown Primer 429 28.4 Markdown Code Chunks 430 28.5 htmlwidgets 432 28.6 RMarkdown Slideshows 444 28.7 Conclusion 446 Chapter 29: Interactive Dashboards with Shiny 447 29.1 Shiny in RMarkdown 447 29.2 Reactive Expressions in Shiny 452 29.3 Server and UI 454 29.4 Conclusion 463 Chapter 30: Building R Packages 465 30.1 Folder Structure 465 30.2 Package Files 465 30.3 Package Documentation 472 30.4 Tests 475 30.5 Checking, Building and Installing 477 30.6 Submitting to CRAN 479 30.7 C++ Code 479 30.8 Conclusion 484 Appendix A: Real-Life Resources 485 A.1 Meetups 485 A.2 Stack Overflow 486 A.3 Twitter 487 A.4 Conferences 487 A.5 Web Sites 488 A.6 Documents 488 A.7 Books 488 A.8 Conclusion 489 Appendix B: Glossary 491 List of Figures 507 List of Tables 513 General Index 515 Index of Functions 521 Index of Packages 527 Index of People 529 Data Index 531

    15 in stock

    £33.29

  • Windows PowerShell in Action, 3E

    Manning Publications Windows PowerShell in Action, 3E

    Out of stock

    Book SynopsisWindows PowerShell transformed the way administrators and developers interact with Windows. PowerShell, an elegant dynamic language from Microsoft, lets its users script administrative tasks and control Windows from the command line. Because it's a full-featured, first-class Windows programming language, programmers and powerusers can now do things in a shell that previously required VB, VBScript, or C#. Windows PowerShell in Action, Third Edition is a completely revised edition of the bestselling book on PowerShell. It keeps the same crystal-clear introduction to PowerShell as the last edition and adds extensive coverage of v3, v4, and v5 features such as PowerShell Workflows, Desired State Configuration, PowerShell classes and the PowerShell APIs, new error handling and debugging features. It includes full chapters on these topics and also covers new language elements and operators, PowerShell remoting, CIM, events, working with data such as XML and flat files, The Second Edition's coverage of batch scripting and string processing, COM, WMI, and .NET have all been significantly revised and expanded. The book includes many popular usage scenarios and is rich in interesting examples that will spark the reader’s imagination. Key Features• Crystal-clear introduction to PowerShell • Extensive coverage of v3, v4, and v5 features • Includes many popular usage scenarios • Rich in interesting examples that spark the imagination • The definitive book on PowerShell AUDIENCE Written for developers and administrators with intermediate level scripting knowledge. No prior experience with PowerShell is required. ABOUT THE TECHNOLOGY Windows PowerShell is an elegant, dynamic language from Microsoft, that lets developers and administrators script administrative tasks and control Windows from the command line.

    Out of stock

    £55.91

  • Modern C Design

    Pearson Education (US) Modern C Design

    1 in stock

    Book SynopsisAndrei Alexandrescu is the author of the award-winning book Modern C++ Design (Addison-Wesley, 2001) and is a columnist for C/C++ Users Journal. Table of Contents Foreword by Scott Meyers. Foreword by John Vlissides. Preface. Acknowledgments. I. TECHNIQUES. 1. Policy-Based Class Design. The Multiplicity of Software Design. The Failure of the Do-It-All Interface. Multiple Inheritance to the Rescue? Templates Bring Hope. Policies and Policy Classes. Enriched Policies. Destructors of Policy Classes. Optional Functionality Through Incomplete Instantiation. Combining Policy Classes. Customizing Structure with Policy Classes. Compatible and Noncompatible Policies. Decomposing a Class in Policies. Summary. 2. Techniques. Compile-Time Assertions. Partial Template Specialization. Local Classes 28 2.4 Mapping Integral Constants to Types. Type-to-Type Mapping. Type Selection. Detecting Convertibility and Inheritance at Compile Time. A Wrapper Around type_info. NullType and EmptyType. Type Traits. Summary. 3. Typelists. The Need for Typelists. Defining Typelists. Linearizing Typelist Creation. Calculating Length. Intermezzo. Indexed Access. Searching Typelists. Appending to Typelists. Erasing a Type from a Typelist. Erasing Duplicates. Replacing an Element in a Typelist. Partially Ordering Typelists. Class Generation with Typelists. Summary. Typelist Quick Facts. 4. Small-Object Allocation. The Default Free Store Allocator. The Workings of a Memory Allocator. A Small-Object Allocator. Chunks. The Fixed-Size Allocator. The SmallObjAllocator Class. A Hat Trick. Simple, Complicated, Yet Simple in the End. Administrivia. Summary. Small-Object Allocator Quick Facts. II. COMPONENTS. 5. Generalized Functors. The Command Design Pattern. Command in the Real World. C11 Callable Entities. The Functor Class Template Skeleton. Implementing the Forwarding Functor::operator(). Handling Functors. Build One, Get One Free. Argument and Return Type Conversions. Handling Pointers to Member Functions. Binding. Chaining Requests. Real-World Issues I: The Cost of Forwarding Functions. Real-World Issues II: Heap Allocation. Implementing Undo and Redo with Functor. Summary. Functor Quick Facts. 6. Implementing Singletons. Static Data + Static Functions != Singleton. The Basic C11 Idioms Supporting Singleton. Enforcing the Singleton's Uniqueness. Destroying the Singleton. The Dead Reference Problem. Addressing the Dead Reference Problem (I):. Addressing the Dead Reference Problem (II):. Implementing Singletons with Longevity. Living in a Multithreaded World. Putting It All Together. Working With SingletonHolder. Summary. SingletonHolder Class Template Quick Facts. 7. Smart Pointers. Smart Pointers 101. The Deal. Smart Pointers' Storage. Smart Pointer Member Functions. Ownership-Handling Strategies. The Address-of Operator. Implicit Conversion to Raw Pointer Type. Equality and Inequality. Ordering Comparisons. Checking and Error Reporting. Smart Pointers to const and const Smart Pointers. Arrays. Smart Pointers and Multithreading. Putting It All Together. Summary. SmartPtr Quick Facts. 8. Object Factories. The Need for Object Factories. Object Factories in C11: Classes and Objects. Implementing an Object Factory. Type Identifiers. Generalization. Minutiae. Clone Factories. Using Object Factories with Other Generic Components. Summary. Factory Class Template Quick Facts. CloneFactory Class Template Quick Facts. 9. Abstract Factory. The Architectural Role of Abstract Factory. A Generic Abstract Factory Interface. Implementing AbstractFactory. A Prototype-Based Abstract Factory Implementation. Summary. AbstractFactory and ConcreteFactory Quick Facts. 10. Visitor. Visitor Basics. Overloading: The Catch-All Function. An Implementation Refinement: The Acyclic Visitor. A Generic Implementation of Visitor. Back to the “Cyclic” Visitor. Hooking Variations. Summary. Visitor Generic Component Quick Facts. 11. Multimethods. What Are Multimethods? When Are Multimethods Needed? Double Switch-on-Type: Brute Force. The Brute-Force Approach Automated. Symmetry with the Brute-Force Dispatcher. The Logarithmic Double Dispatcher. FnDispatcher and Symmetry. Double Dispatch to Functors. Converting Arguments: static_cast or dynamic_cast? Constant-Time Multimethods: Raw Speed. BasicDispatcher and BasicFastDispatcher as Policies. Looking Forward. Summary. Double Dispatcher Quick Facts. Appendix A. Minimalist Multithreading Library. A Critique of Multithreading. Loki's Approach. Atomic Operations on Integral Types. Mutexes. Locking Semantics in Object-Oriented Programming. Optional volatile Modifier. Semaphores, Events, and Other Good Things. Summary. Bibliography. Index. 0201704315T04062001

    1 in stock

    £43.19

  • The Stuff of Thought

    Penguin Putnam Inc The Stuff of Thought

    Out of stock

    Book Synopsis

    Out of stock

    £17.00

  • Data Structures and Algorithm Analysis in C

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

    Out of stock

    Book SynopsisMark Allen Weiss is Professor and Associate Director for the School of Computing and Information Sciences at Florida International University. He is also currently serving as both Director of Undergraduate Studies and Director of Graduate Studies. He received his Bachelor's Degree in Electrical Engineering from the Cooper Union in 1983, and his Ph.D. in Computer Science from Princeton University in 1987, working under Bob Sedgewick. He has been at FIU since 1987 and was promoted to Professor in 1996. His interests include data structures, algorithms, and education. He is most well-known for his highly-acclaimed Data Structures textbooks, which have been used for a generation by roughly a million students. Professor Weiss is the author of numerous publications in top-rated journals and was recipient of the University's Excellence in Research Award in 1994. In 1996 at FIU he was the first in the world to teach Data Structures using the Java programming language, which is now thTable of ContentsChapter 1 Programming: A General Overview 1 1.1 What’s This Book About? 1 1.2 Mathematics Review 2 1.2.1 Exponents 3 1.2.2 Logarithms 3 1.2.3 Series 4 1.2.4 Modular Arithmetic 5 1.2.5 The P Word 6 1.3 A Brief Introduction to Recursion 8 1.4 C++ Classes 12 1.4.1 Basic class Syntax 12 1.4.2 Extra Constructor Syntax and Accessors 13 1.4.3 Separation of Interface and Implementation 16 1.4.4 vector and string 19 1.5 C++ Details 21 1.5.1 Pointers 21 1.5.2 Lvalues, Rvalues, and References 23 1.5.3 Parameter Passing 25 1.5.4 Return Passing 27 1.5.5 std::swap and std::move 29 1.5.6 The Big-Five: Destructor, Copy Constructor, Move Constructor, Copy Assignment operator=, Move Assignment operator= 30 1.5.7 C-style Arrays and Strings 35 1.6 Templates 36 1.6.1 Function Templates 37 1.6.2 Class Templates 38 1.6.3 Object, Comparable, and an Example 39 1.6.4 Function Objects 41 1.6.5 Separate Compilation of Class Templates 44 1.7 Using Matrices 44 1.7.1 The Data Members, Constructor, and Basic Accessors 44 1.7.2 operator[] 45 1.7.3 Big-Five 46 Summary 46 Exercises 46 References 48 Chapter 2 Algorithm Analysis 51 2.1 Mathematical Background 51 2.2 Model 54 2.3 What to Analyze 54 2.4 Running-Time Calculations 57 2.4.1 A Simple Example 58 2.4.2 General Rules 58 2.4.3 Solutions for the Maximum Subsequence Sum Problem 60 2.4.4 Logarithms in the Running Time 66 2.4.5 Limitations of Worst Case Analysis 70 Summary 70 Exercises 71 References 76 Chapter 3 Lists, Stacks, and Queues 77 3.1 Abstract Data Types (ADTs) 77 3.2 The List ADT 78 3.2.1 Simple Array Implementation of Lists 78 3.2.2 Simple Linked Lists 79 3.3 vector and list in the STL 80 3.3.1 Iterators 82 3.3.2 Example: Using erase on a List 83 3.3.3 const_iterators 84 3.4 Implementation of vector 86 3.5 Implementation of list 91 3.6 The Stack ADT 103 3.6.1 Stack Model 103 3.6.2 Implementation of Stacks 104 3.6.3 Applications 104 3.7 The Queue ADT 112 3.7.1 Queue Model 113 3.7.2 Array Implementation of Queues 113 3.7.3 Applications of Queues 115 Summary 116 Exercises 116 Chapter 4 Trees 121 4.1 Preliminaries 121 4.1.1 Implementation of Trees 122 4.1.2 Tree Traversals with an Application 123 4.2 Binary Trees 126 4.2.1 Implementation 128 4.2.2 An Example: Expression Trees 128 4.3 The Search Tree ADT–Binary Search Trees 132 4.3.1 contains 134 4.3.2 findMin and findMax 135 4.3.3 insert 136 4.3.4 remove 139 4.3.5 Destructor and Copy Constructor 141 4.3.6 Average-Case Analysis 141 4.4 AVL Trees 144 4.4.1 Single Rotation 147 4.4.2 Double Rotation 149 4.5 Splay Trees 158 4.5.1 A Simple Idea (That Does Not Work) 158 4.5.2 Splaying 160 4.6 Tree Traversals (Revisited) 166 4.7 B-Trees 168 4.8 Sets and Maps in the Standard Library 173 4.8.1 Sets 173 4.8.2 Maps 174 4.8.3 Implementation of set and map 175 4.8.4 An Example That Uses Several Maps 176 Summary 181 Exercises 182 References 189 Chapter 5 Hashing 193 5.1 General Idea 193 5.2 Hash Function 194 5.3 Separate Chaining 196 5.4 Hash Tables without Linked Lists 201 5.4.1 Linear Probing 201 5.4.2 Quadratic Probing 202 5.4.3 Double Hashing 207 5.5 Rehashing 208 5.6 Hash Tables in the Standard Library 210 5.7 Hash Tables with Worst-Case O(1) Access 212 5.7.1 Perfect Hashing 213 5.7.2 Cuckoo Hashing 215 5.7.3 Hopscotch Hashing 224 5.8 Universal Hashing 230 5.9 Extendible Hashing 233 Summary 236 Exercises 238 References 242 Chapter 6 Priority Queues (Heaps) 245 6.1 Model 245 6.2 Simple Implementations 246 6.3 Binary Heap 247 6.3.1 Structure Property 247 6.3.2 Heap-Order Property 248 6.3.3 Basic Heap Operations 249 6.3.4 Other Heap Operations 252 6.4 Applications of Priority Queues 257 6.4.1 The Selection Problem 258 6.4.2 Event Simulation 259 6.5 d-Heaps 260 6.6 Leftist Heaps 261 6.6.1 Leftist Heap Property 261 6.6.2 Leftist Heap Operations 262 6.7 Skew Heaps 269 6.8 Binomial Queues 271 6.8.1 Binomial Queue Structure 271 6.8.2 Binomial Queue Operations 271 6.8.3 Implementation of Binomial Queues 276 6.9 Priority Queues in the Standard Library 283 Summary 283 Exercises 283 References 288 Chapter 7 Sorting 291 7.1 Preliminaries 291 7.2 Insertion Sort 292 7.2.1 The Algorithm 292 7.2.2 STL Implementation of Insertion Sort 293 7.2.3 Analysis of Insertion Sort 294 7.3 A Lower Bound for Simple Sorting Algorithms 295 7.4 Shellsort 296 7.4.1 Worst-Case Analysis of Shellsort 297 7.5 Heapsort 300 7.5.1 Analysis of Heapsort 301 7.6 Mergesort 304 7.6.1 Analysis of Mergesort 306 7.7 Quicksort 309 7.7.1 Picking the Pivot 311 7.7.2 Partitioning Strategy 313 7.7.3 Small Arrays 315 7.7.4 Actual Quicksort Routines 315 7.7.5 Analysis of Quicksort 318 7.7.6 A Linear-Expected-Time Algorithm for Selection 321 7.8 A General Lower Bound for Sorting 323 7.8.1 Decision Trees 323 7.9 Decision-Tree Lower Bounds for Selection Problems 325 7.10 Adversary Lower Bounds 328 7.11 Linear-Time Sorts: Bucket Sort and Radix Sort 331 7.12 External Sorting 336 7.12.1 Why We Need New Algorithms 336 7.12.2 Model for External Sorting 336 7.12.3 The Simple Algorithm 337 7.12.4 Multiway Merge 338 7.12.5 Polyphase Merge 339 7.12.6 Replacement Selection 340 Summary 341 Exercises 341 References 347 Chapter 8 The Disjoint Sets Class 351 8.1 Equivalence Relations 351 8.2 The Dynamic Equivalence Problem 352 8.3 Basic Data Structure 353 8.4 Smart Union Algorithms 357 8.5 Path Compression 360 8.6 Worst Case for Union-by-Rank and Path Compression 361 8.6.1 Slowly Growing Functions 362 8.6.2 An Analysis by Recursive Decomposition 362 8.6.3 An O( M log *N ) Bound 369 8.6.4 An O( M α(M, N) ) Bound 370 8.7 An Application 372 Summary 374 Exercises 375 References 376 Chapter 9 Graph Algorithms 379 9.1 Definitions 379 9.1.1 Representation of Graphs 380 9.2 Topological Sort 382 9.3 Shortest-Path Algorithms 386 9.3.1 Unweighted Shortest Paths 387 9.3.2 Dijkstra’s Algorithm 391 9.3.3 Graphs with Negative Edge Costs 400 9.3.4 Acyclic Graphs 400 9.3.5 All-Pairs Shortest Path 404 9.3.6 Shortest Path Example 404 9.4 Network Flow Problems 406 9.4.1 A Simple Maximum-Flow Algorithm 408 9.5 Minimum Spanning Tree 413 9.5.1 Prim’s Algorithm 414 9.5.2 Kruskal’s Algorithm 417 9.6 Applications of Depth-First Search 419 9.6.1 Undirected Graphs 420 9.6.2 Biconnectivity 421 9.6.3 Euler Circuits 425 9.6.4 Directed Graphs 429 9.6.5 Finding Strong Components 431 9.7 Introduction to NP-Completeness 432 9.7.1 Easy vs. Hard 433 9.7.2 The Class NP 434 9.7.3 NP-Complete Problems 434 Summary 437 Exercises 437 References 445 Chapter 10 Algorithm Design Techniques 449 10.1 Greedy Algorithms 449 10.1.1 A Simple Scheduling Problem 450 10.1.2 Huffman Codes 453 10.1.3 Approximate Bin Packing 459 10.2 Divide and Conquer 467 10.2.1 Running Time of Divide-and-Conquer Algorithms 468 10.2.2 Closest-Points Problem 470 10.2.3 The Selection Problem 475 10.2.4 Theoretical Improvements for Arithmetic Problems 478 10.3 Dynamic Programming 482 10.3.1 Using a Table Instead of Recursion 483 10.3.2 Ordering Matrix Multiplications 485 10.3.3 Optimal Binary Search Tree 487 10.3.4 All-Pairs Shortest Path 491 10.4 Randomized Algorithms 494 10.4.1 Random-Number Generators 495 10.4.2 Skip Lists 500 10.4.3 Primality Testing 503 10.5 Backtracking Algorithms 506 10.5.1 The Turnpike Reconstruction Problem 506 10.5.2 Games 511 Summary 518 Exercises 518 References 527 Chapter 11 Amortized Analysis 533 11.1 An Unrelated Puzzle 534 11.2 Binomial Queues 534 11.3 Skew Heaps 539 11.4 Fibonacci Heaps 541 11.4.1 Cutting Nodes in Leftist Heaps 542 11.4.2 Lazy Merging for Binomial Queues 544 11.4.3 The Fibonacci Heap Operations 548 11.4.4 Proof of the Time Bound 549 11.5 Splay Trees 551 Summary 555 Exercises 556 References 557 Chapter 12 Advanced Data Structures and Implementation 559 12.1 Top-Down Splay Trees 559 12.2 Red-Black Trees 566 12.2.1 Bottom-Up Insertion 567 12.2.2 Top-Down Red-Black Trees 568 12.2.3 Top-Down Deletion 570 12.3 Treaps 576 12.4 Suffix Arrays and Suffix Trees 579 12.4.1 Suffix Arrays 580 12.4.2 Suffix Trees 583 12.4.3 Linear-Time Construction of Suffix Arrays and Suffix Trees 586 12.5 k-d Trees 596 12.6 Pairing Heaps 602 Summary 606 Exercises 608 References 612 Appendix A Separate Compilation of Class Templates 615 A.1 Everything in the Header 616 A.2 Explicit Instantiation 616 Index 619

    Out of stock

    £150.11

  • Cardiac Surgery in the Adult Fifth Edition

    McGraw-Hill Education - Europe Cardiac Surgery in the Adult Fifth Edition

    15 in stock

    Book SynopsisThe most comprehensive and current full-color cardiac surgery resource â updated by leading surgeonsA Doodyâs Core Title for 2024 & 2022!  In Cardiac Surgery in the Adult, Fifth Edition, the worldâs foremost cardiovascular surgeons deliver thorough, up-to-date coverage of operative strategy, decision making, technique, and pre- and post-operative management for treating the adult cardiac patient. Unmatched in both scope and clinical rigor, this classic text contains 63 chapters that highlight every important topic in cardiovascular surgery. Presented in full color, Cardiac Surgery in the Adult takes readers through the optimal treatment of congenital, acquired, infectious, and traumatic diseases of the heart and great vessels. The book opens with a history of cardiac surgery and basic cardiac science, then moves into all types of cardiac sTable of ContentsI Fundamentals1. History of Cardiac Surgery2. Surgical Anatomy of the Heart3. Cardiac Surgical Physiology4. Cardiac Surgical Pharmacology5. Cardiovascular Pathology6. Computed Tomography of the Adult Cardiac Surgery Patient: Principles and Applications7. Risk Assessment and Performance Improvement in Cardiac Surgery8. Simulation in Cardiac Surgery9. The Integrated Cardiovascular CenterII Perioperative/Intraoperative Care10. Preoperative Evaluation for Cardiac Surgery11. Cardiac Anesthesia12. Echocardiography in Cardiac Surgery13. Extracorporeal Circulation14. Transfusion Therapy and Blood Conservation15. Deep Hypothermic Circulatory Arrest16. Myocardial Protection17. Postoperative Care of Cardiac Surgery Patients18. Temporary Mechanical Circulatory SupportIII Ischemic Heart Disease19. Myocardial Revascularization with Percutaneous Devices20. Myocardial Revascularization with Cardiopulmonary Bypass21. Myocardial Revascularization Without Cardiopulmonary Bypass22. Myocardial Revascularization after Acute Myocardial Infarction23. Minimally Invasive Myocardial Revascularization24. Coronary Artery Reoperations25. Surgical Treatment of Complications of Myocardial Infarction, Ventricular Septal Defect, Myocardial Rupture, and Left Ventricular AneurysmIV Aortic Valve Disease26. Pathophysiology of Aortic Valve Disease27. Aortic Valve Replacement with a Mechanical Cardiac Valve Prosthesis28. Stented Bioprosthetic Aortic Valve Replacement29. Stentless Aortic Valve and Root Replacement30. Aortic Valve Repair and Aortic Valve-Sparing Operations31. Surgical Treatment of Aortic Valve Endocarditis32. Minimally Invasive Aortic Valve Surgery33. Percutaneous Treatment of Aortic Valve DiseaseV Mitral Valve Disease34. Pathophysiology of Mitral Valve Disease35. Mitral Valve Repair36. Mitral Valve Repair: Rheumatic37. Surgery for Functional Mitral Regurgitation38. Surgical Treatment of Mitral Valve Endocarditis39. Mitral Valve Repair for Congenital Mitral Valve Disease in the Adult40. Minimally Invasive and Robotic Mitral and Tricuspid Valve Surgery41. Percutaneous Catheter-based Mitral Valve Repair42. Mitral Valve ReplacementVI Valvular Heart Disease (Other)43. Tricuspid Valve Disease44. Multiple Valve Disease45. Valvular and Ischemic Heart Disease46. Reoperative Valve SurgeryVII Surgery of the Great Vessels47. Aortic Dissection48. Ascending and Arch Aortic Aneurysms49. Descending and Thoracoabdominal Aortic Aneurysms50. Endovascular Therapy for the Treatment of Thoracic Aortic Disease51. Trauma to the Great Vessels52. Pulmonary Embolism and Pulmonary ThromboendarterectomyVIII Surgery For Cardiac Arrhythmias53. Interventional Therapy for Atrial and Ventricular Arrhythmias54. Surgery for Atrial Fibrillation55. Surgical Implantation of Pacemakers and Automatic DefibrillatorsIX Other Cardiac Operations56. Surgery for Adult Congenital Heart Disease57. Pericardial Disease58. Cardiac NeoplasmsX Transplant and Mechanical Circulatory Support59. Immunobiology of Heart and Lung Transplantation60. Heart Transplantation61. Lung Transplantation and Heart-lung Transplantation62. Long-term Mechanical Circulatory Support and the Total Artificial Heart63. Tissue Engineering for Cardiac Valve SurgeryIndex

    15 in stock

    £252.89

  • Quick Python Book, The

    Manning Publications Quick Python Book, The

    1 in stock

    Book SynopsisThis revision of Manning's popular The Quick Python Book offers a clear, crisp introduction to the elegant Python programming language and its famously easy-to-read syntax. After exploring Python's syntax, control flow, and basic data structures, the book shows how to create, test, and deploy full applications and larger code libraries. It addresses established Python features as well as the advanced object-oriented options available in Python 3. This edition covers 5 years’ worth of minor updates to the language, and the last 5 chapters have been reworked to be data based project work. Key features: · Clear introduction · Completely up-to-date · Hands-on experience The book is aimed at readers who know programming but for whom the Python language is new. About the Technology: Python is a true cross-platform language. It can be used to develop small applications and rapid prototypes, but scales well to permit development of large programs. It comes with a powerful and easy-to-use graphical user interface (GUI) toolkit, web programming libraries and more. And it’s free!

    1 in stock

    £28.49

  • Computer Coding Python Projects for Kids

    Dorling Kindersley Ltd Computer Coding Python Projects for Kids

    3 in stock

    Book SynopsisTable of Contents 1: Starting with Python 2: What is coding? 3: Meet Python 4: Installing Python 5: Using IDLE 1: First Steps 2: Your first program 3: Variables 4: Making decisions 5: Loopy loops 6: Animal Quiz 7: Functions 8: Fixing bugs 9: Password Picker 10: Modules 11: Nine Lives 3: Turtle Graphics 1: Robot Builder 2: Kaleido-spiral 3: Starry Night 4: Mutant Rainbow 4: Playful Apps 1: Countdown Calendar 2: Ask the Expert 3: Secret Messages 4: Screen Pet 5: Games in Python 1: Caterpillar 2: Snap 3: Matchmaker 4: Egg Catcher 6: Reference 1: Project reference 2: Glossary 3: Index 4: Acknowledgments

    3 in stock

    £14.24

  • Practical Programming, 3e: An Introduction to

    Pragmatic Bookshelf Practical Programming, 3e: An Introduction to

    4 in stock

    Book SynopsisClassroom-tested by tens of thousands of students, this new edition of the bestselling intro to programming book is for anyone who wants to understand computer science. Learn about design, algorithms, testing, and debugging. Discover the fundamentals of programming with Python 3.6--a language that's used in millions of devices. Write programs to solve real-world problems, and come away with everything you need to produce quality code. This edition has been updated to use the new language features in Python 3.6. No programming experience required! Incremental examples show you the steps and missteps that happen while developing programs, so you know what to expect when you tackle a problem on your own. Inspired by "How to Design Programs" (HtDP), discover a five-step recipe for designing functions, which helps you learn the concepts--and becomes an integral part of writing programs. In this detailed introduction to Python and to computer programming, find out exactly what happens when your programs are executed. Work with numbers, text, big data sets, and files using real-world examples. Create and use your own data types. Make your programs reliable, work with databases, download data from the web automatically, and build user interfaces. As you use the fundamental programming tools in this book, you'll see how to document and organize your code so that you and other programmers can more easily read and understand it. This new edition takes advantage of Python 3.6's new features, including type annotations on parameters, return types and variable declarations, and changes to string formatting. Most importantly, you'll learn how to think like a professional programmer. What You Need: You'll need to download Python 3.6, available from https://python.org. With that download comes IDLE, the editor we use for writing and running Python programs. (If you use Linux, you may need to install Python 3.6 and IDLE separately.)

    4 in stock

    £37.99

  • Murach's Java Programming (6th Edition)

    Mike Murach & Associates Inc. Murach's Java Programming (6th Edition)

    7 in stock

    Book Synopsis

    7 in stock

    £45.74

  • Fast Python for Data Science

    Manning Publications Fast Python for Data Science

    15 in stock

    Book SynopsisFast Python for Data Science is a hands-on guide to writing Python code that can process more data, faster, and with less resources. It takes a holistic approach to Python performance, showing you how your code, libraries, and computing architecture interact and can be optimized together. Written for experienced practitioners, Fast Python for Data Science dives right into practical solutions for improving computation and storage efficiency. You'll experiment with fun and interesting examples such as rewriting games in lower-level Cython and implementing a MapReduce framework from scratch. Finally, you'll go deep into Python GPU computing and learn how modern hardware has rehabilitated some former antipatterns and made counterintuitive ideas the most efficient way of working. About the technologyFast, accurate systems are vital for handling the huge datasets and complex analytical algorithms that are common in modern data science. Python programmers need to boost performance by writing faster pure-Python programs, optimizing the use of libraries, and utilizing modern multi-processor hardware; Fast Python for Data Science shows you how. Trade Review"If you want to go beyond scripting in Python, you need this book." Brian S. Cole. "If you need to improve the performance of your Python code, you need to read this book!" Lorenzo DeLeon "I really like how the book walks you through interesting projects and code. I think that does a great job of demonstrating the concepts and giving you something to play with." Dana Robinson "Explains the essential concepts required for using high performance Python." Biswanath Chowdhury "A must have to speed up your Python code." Abhilash Babu Jyotheendra Babu

    15 in stock

    £41.39

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

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

    2 in stock

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

    2 in stock

    £40.49

  • Undocumented DOS Through C

    BPB Publications Undocumented DOS Through C

    Out of stock

    Book Synopsis

    Out of stock

    £8.49

  • JVM Performance Engineering

    Pearson Education JVM Performance Engineering

    15 in stock

    Book SynopsisMonica Beckwith (Austin, TX Area) is a Java Champion and JavaOne Rock Star who has made significant performance contributions to the Java HotSpot VM. Prior to joining Microsoft as Senior Performance Engineer, she served as JVM Performance Architect at Arm, and led Oracle's Garbage First Garbage Collector performance team. She is co-author of Java Performance Companion.

    15 in stock

    £34.19

  • D3.js in Action, 2E

    Manning Publications D3.js in Action, 2E

    1 in stock

    Book SynopsisD3 allows developers to create scalable graphs for any modern browser. They start with a structure, dataset, or algorithm and programmatically generate static, interactive, or animated images that responsively scale to any screen. D3.js in Action, Second Edition is completely revised and updated for D3 v4 and ES6. It's a practical tutorial for creating interactive graphics and data-driven applications using D3. Readers will start with in-depth explanations of D3's out-of-the-box layouts, along with dozens of realworld use cases that align with different types of visualizations. By the end, readers will be ready to integrate D3.js into their web development process and add data visualization to transform any site or internal application. Key Features: · Completely revised and updated · Practical tutorial · In-depth explanations Readers need basic HTML, CSS, and JavaScript skills. No experience with D3 or SVG is required. About the Technology: D3.js is a JavaScript library that allows data to be represented graphically.

    1 in stock

    £34.19

  • OCA Java SE 8 Programmer I Certification Guide

    Manning Publications OCA Java SE 8 Programmer I Certification Guide

    15 in stock

    Book Synopsis   DESCRIPTION To earn the OCA Java SE 8 Programmer I Certification, readers need to know Java inside and out, and to pass the exam it's good to understand the test itself. This book cracks open the questions, exercises, and expectations readers will face on the OCA exam so they’ll be ready and confident on test day. OCA Java SE 8 Programmer I Certification Guide prepares readers for the 1Z0-808 with complete coverage of all exam topics. The book explores important Java topics and systematically teaches what's required. Each chapter starts with a list of exam objectives mapped to section numbers, followed by sample questions and exercises designed to reinforce key concepts. It provides multiple ways to digest important techniques and concepts, including memorable analogies, diagrams, and flowcharts as well as lots of well-commented code. Along the way readers will also get the scoop on common mistakes and ways to avoid traps and pitfalls. KEY FEATURES  100% coverage of exam topics  Hands-on coding examples and exercises  Helps readers avoid exam traps and pitfalls  Hundreds of sample questions  Crib Sheets AUDIENCE Written for developers with a working knowledge of Java who want to earn the OCA Java SE 8 Programmer I Certification. ABOUT THE TECHNOLOGY The Oracle Certified Associate (OCA) Java SE 8 measures day-to-day programming and the ability to handle typical situations found in a variety of projects.

    15 in stock

    £43.19

  • Get Programming with Haskell

    Manning Publications Get Programming with Haskell

    3 in stock

    Book SynopsisUnlike any other programming language, Haskell is purely functionalwith a strong type system and lazy evaluation. It is arguable the mostinteresting language but also has the reputation of being one of themost challenging to learn. Learning Haskell doesn't have to bedifficult, and this book can help! Get Programming with Haskell introduces you to the Haskell languagewithout drowning you in academic jargon and heavy functionalprogramming theory. By working through 43 easy-to-follow lessons,you'll learn Haskell by doing Haskell. This book starts with firstconcepts, building your knowledge with concrete examples andexercises. You'll learn to think the Haskell way, as you start tounderstand the language and how to use it effectively. And you'll reallyappreciate the crystal-clear illustrations, quick-checks, and open-endedtasks that make sure you're solid on each new concept before you movealong! KEY FEATURES• Full of interesting examples• Easy approach to functional programming basics• Write safe, predictable code with fewer bugs• Lots of illustrations and exercises Readers should have some experience with JavaScript, Python orRuby. No functional programming or math skills required. ABOUT THE TECHNOLOGYHaskell is a purely functional programming language. It treats programs asmuch like math as you can, requires you to think more than you type, andcan express the idea of infinite lists in code! These are just the more obviousfeatures that make Haskell unlike any other programming language AUTHOR BIOWill Kurt currently works as a Data Scientist at Quick Sprout. With aformal background in both Computer Science (MS) and English Literature(BA) he is fascinated with explaining complex technical topics as clearlyand generally as possible. He has taught a course section on Haskell at theUniversity of Nevada, Reno and given workshops on FunctionalProgramming. He also blogs about probability at CountBayesie.com.

    3 in stock

    £32.39

  • SQL for Data Scientists

    John Wiley & Sons Inc SQL for Data Scientists

    15 in stock

    Book SynopsisJump-start your career as a data scientistlearn to develop datasets for exploration, analysis, and machine learning SQL for Data Scientists: A Beginner's Guide for Building Datasets for Analysis is a resource that's dedicated to the Structured Query Language (SQL) and dataset design skills that data scientists use most. Aspiring data scientists will learn how to how to construct datasets for exploration, analysis, and machine learning. You can also discover how to approach query design and develop SQL code to extract data insights while avoiding common pitfalls. You may be one of many people who are entering the field of Data Science from a range of professions and educational backgrounds, such as business analytics, social science, physics, economics, and computer science. Like many of them, you may have conducted analyses using spreadsheets as data sources, but never retrieved and engineered datasets from a relational database using SQL, which is a programming language designed for managing databases and extracting data. This guide for data scientists differs from other instructional guides on the subject. It doesn't cover SQL broadly. Instead, you'll learn the subset of SQL skills that data analysts and data scientists use frequently. You'll also gain practical advice and direction on how to think about constructing your dataset. Gain an understanding of relational database structure, query design, and SQL syntaxDevelop queries to construct datasets for use in applications like interactive reports and machine learning algorithmsReview strategies and approaches so you can design analytical datasetsPractice your techniques with the provided database and SQL code In this book, author Renee Teate shares knowledge gained during a 15-year career working with data, in roles ranging from database developer to data analyst to data scientist. She guides you through SQL code and dataset design concepts from an industry practitioner's perspective, moving your data scientist career forward! Table of ContentsIntroduction xix Chapter 1 Data Sources 1 Data Sources 1 Tools for Connecting to Data Sources and Editing SQL 2 Relational Databases 3 Dimensional Data Warehouses 7 Asking Questions About the Data Source 9 Introduction to the Farmer’s Market Database 11 A Note on Machine Learning Dataset Terminology 12 Exercises 13 Chapter 2 The SELECT Statement 15 The SELECT Statement 15 The Fundamental Syntax Structure of a SELECT Query 16 Selecting Columns and Limiting the Number of Rows Returned 16 The ORDER BY Clause: Sorting Results 18 Introduction to Simple Inline Calculations 20 More Inline Calculation Examples: Rounding 22 More Inline Calculation Examples: Concatenating Strings 24 Evaluating Query Output 26 SELECT Statement Summary 29 Exercises Using the Included Database 30 Chapter 3 The WHERE Clause 31 The WHERE Clause 31 Filtering SELECT Statement Results 32 Filtering on Multiple Conditions 34 Multi-Column Conditional Filtering 40 More Ways to Filter 41 BETWEEN 41 IN 42 LIKE 43 IS NULL 44 A Warning About Null Comparisons 44 Filtering Using Subqueries 46 Exercises Using the Included Database 47 Chapter 4 CASE Statements 49 CASE Statement Syntax 50 Creating Binary Flags Using CASE 52 Grouping or Binning Continuous Values Using CASE 53 Categorical Encoding Using CASE 56 CASE Statement Summary 59 Exercises Using the Included Database 60 Chapter 5 SQL JOINs 61 Database Relationships and SQL JOINs 61 A Common Pitfall when Filtering Joined Data 71 JOINs with More than Two Tables 74 Exercises Using the Included Database 76 Chapter 6 Aggregating Results for Analysis 79 GROUP BY Syntax 79 Displaying Group Summaries 80 Performing Calculations Inside Aggregate Functions 84 MIN and MAX 88 COUNT and COUNT DISTINCT 90 Average 91 Filtering with HAVING 93 CASE Statements Inside Aggregate Functions 94 Exercises Using the Included Database 96 Chapter 7 Window Functions and Subqueries 97 ROW NUMBER 98 RANK and DENSE RANK 101 NTILE 102 Aggregate Window Functions 103 LAG and LEAD 108 Exercises Using the Included Database 111 Chapter 8 Date and Time Functions 113 Setting datetime Field Values 114 EXTRACT and DATE_PART 115 DATE_ADD and DATE_SUB 116 DATEDIFF 118 TIMESTAMPDIFF 119 Date Functions in Aggregate Summaries and Window Functions 119 Exercises 126 Chapter 9 Exploratory Data Analysis with SQL 127 Demonstrating Exploratory Data Analysis with SQL 128 Exploring the Products Table 128 Exploring Possible Column Values 131 Exploring Changes Over Time 134 Exploring Multiple Tables Simultaneously 135 Exploring Inventory vs. Sales 138 Exercises 142 Chapter 10 Building SQL Datasets for Analytical Reporting 143 Thinking Through Analytical Dataset Requirements 144 Using Custom Analytical Datasets in SQL: CTEs and Views 149 Taking SQL Reporting Further 153 Exercises 157 Chapter 11 More Advanced Query Structures 159 UNIONs 159 Self-Join to Determine To-Date Maximum 163 Counting New vs. Returning Customers by Week 167 Summary 171 Exercises 171 Chapter 12 Creating Machine Learning Datasets Using SQL 173 Datasets for Time Series Models 174 Datasets for Binary Classification 176 Creating the Dataset 178 Expanding the Feature Set 181 Feature Engineering 185 Taking Things to the Next Level 189 Exercises 189 Chapter 13 Analytical Dataset Development Examples 191 What Factors Correlate with Fresh Produce Sales? 191 How Do Sales Vary by Customer Zip Code, Market Distance, and Demographic Data? 211 How Does Product Price Distribution Affect Market Sales? 217 Chapter 14 Storing and Modifying Data 229 Storing SQL Datasets as Tables and Views 229 Adding a Timestamp Column 232 Inserting Rows and Updating Values in Database Tables 233 Using SQL Inside Scripts 236 In Closing 237 Exercises 238 Appendix Answers to Exercises 239 Index 255

    15 in stock

    £28.49

  • Beginning PyQt A Handson Approach to GUI

    Apress Beginning PyQt A Handson Approach to GUI

    Out of stock

    Book SynopsisBeginning PyQtChapter 1 - Charting the Course Chapter 2 - Getting Started Chapter 3 - Adding Functions Through Buttons Chapter 4 - Learning about Layout Chapter 5 - Menus, Toolbars,and More Chapter 6 - Styling Your GUIsChapter 7 - Creating GUIs with Qt DesignerChapter 8 - Working with the ClipboardChapter 9 - Graphics and Animation in PyQt Chapter 10 - Intro to Handling Databases Chapter 11 - Asynchronous Programming Chapter 12 - Extra ProjectsAppendix A - Reference Guide for PyQt Appendix B - Python Refresher

    Out of stock

    £28.04

  • Advanced Python Scripting for ArcGIS Pro

    ESRI Press Advanced Python Scripting for ArcGIS Pro

    Out of stock

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

    Out of stock

    £56.99

  • MultiAgent Oriented Programming Programming

    MIT Press Ltd MultiAgent Oriented Programming Programming

    10 in stock

    Book SynopsisThe main concepts and techniques of multi-agent oriented programming, which supports the multi-agent systems paradigm at the programming level.A multi-agent system is an organized ensemble of autonomous, intelligent, goal-oriented entities called agents, communicating with each other and interacting within an environment. This book introduces the main concepts and techniques of multi-agent oriented programming, (MAOP) which supports the multi-agent systems paradigm at the programming level. MAOP provides a structured approach based on three integrated dimensions, which the book examines in detail: the agent dimension, used to design the individual (interacting) entities; the environment dimension, which allows the development of shared resources and connections to the real world; and the organization dimension, which structures the interactions among the autonomous agents and the shared environment. The book puts the approach into practice using the JaCaMo programming

    10 in stock

    £45.60

  • Rust Brain Teasers

    The Pragmatic Programmers Rust Brain Teasers

    Out of stock

    Book SynopsisThe Rust programming language is consistent and does its best to avoid surprising the programmer. Like all languages, though, Rust still has its quirks. But these quirks present a teaching opportunity. In this book, you'll work through a series of brain teasers that will challenge your understanding of Rust. By understanding the gaps in your knowledge, you can become better at what you do and avoid mistakes. Many of the teasers in this book come from the author's own experience creating software. Others derive from commonly asked questions in the Rust community. Regardless of their origin, these brain teasers are fun, and let's face it: who doesn't love a good puzzle, right? What better way to exercise your brain and increase your Rust programming knowledge than with a collection of dynamic brain teasers? As you read through each of these puzzles and try to work out the answers, you'll not only learn about Rust's unique quirks and peculiarities, you'll also have loads of fun along the way. Dive right in and get started with example code and sample problems that cover numbers and text, shadowing and memory, and everything in between. Try to figure out why a particular program won't compile, why it produces unexpected output, or why it panics and terminates with an error message. Once you've run the code and read the answer, it's time to get to the heart of the matter with a detailed explanation. Learn why a program produced the result it did, and discover how similar issues might affect the code you write in your own programs, even in production. Sourced from engaging discussions within the Rust community, real-world problems, and even reader feedback, these challenges will certainly surprise, enlighten, and entertain you. Are you ready to experience Rust like never before? Then sharpen your brain and get ready for a challenge! What You Need: This book assumes you have some knowledge of the Rust programming language. To work through the brain teasers in this book, you'll need a working Rust environment on any platform. You can install Rust by visiting https: //rustup.rs/. You'll also need a text editor or Rust-friendly IDE.

    Out of stock

    £13.49

  • From Objects to Functions: Build Your Software

    The Pragmatic Programmers From Objects to Functions: Build Your Software

    1 in stock

    Book SynopsisBuild applications quicker and with less effort using functional programming and Kotlin. Learn by building a complete application, from gathering requirements to delivering a microservice architecture following functional programming principles. Learn how to implement CQRS and EventSourcing in a functional way to map the domain into code better and to keep the cost of change low for the whole application life cycle. If you're curious about functional programming or you are struggling with how to put it into practice, this guide will help you increase your productivity composing small functions together instead of creating fat objects. Switching to the functional paradigm isn't easy when you're used to object-oriented programming. You need more than just lambdas and mapping over collections to get a declarative style and disentangle the state from the computations. Use transformations and compositions to help you write less code with better results. Boost your productivity and harness the power of functional programming by creating real-world applications rather than focusing on theoretical concepts. Work through a series of short exercises to find and compose pure functions, and create data structures that work like algebra. Get rid of mutable state in your software to eliminate the main source of bugs. Apply CQRS and EventSourcing patterns to translate stakeholder requirements into functional design and then into code. See how Kotlin's easy-to-learn syntax and functional-friendly approach make it a great option for a pragmatic language that integrates well with existing Java code and libraries. Leverage functional programming to build and deliver robust applications in less time and with fewer defects. What You Need: The code in this book is designed to allow you to build your application from scratch on Windows, Mac and Linux. You will need a recent IDE, we recommend IntelliJ Community Edition, and Kotlin 1.3.x or later.

    1 in stock

    £36.57

  • Programming Massively Parallel Processors

    Elsevier Science & Technology Programming Massively Parallel Processors

    15 in stock

    Book Synopsis

    15 in stock

    £62.06

  • Pro C 10 with .NET 6

    APress Pro C 10 with .NET 6

    15 in stock

    Book SynopsisWelcome to the most comprehensive foundational guide available on the topic of C# coding and .NET. This book goes beyond do this, to achieve this to drill down into the core stuff that makes a good developer, great. This expanded 11th edition delivers loads of new content on Entity Framework, Razor Pages, Web APIs and more. You will find the latest C# 10 and .NET 6 features served up with plenty of behind the curtain discussion designed to expand developers' critical thinking skills when it comes to their craft. Coverage of ASP.NET Core, Entity Framework Core, and more sits alongside the latest updates to the new unified .NET platform, from performance improvements to Windows Desktop apps on .NET 6, updates in XAML tooling, and expanded coverage of data files and data handling. Going beyond the latest features in C# 10, all code samples are rewritten for this latest release.Dive in and discover why this essential classic is a favorite of C# developers worldwide. Gain a solid fouTable of ContentsPart 1: Introducing C# and .NET 61 Introducing C# and .NET (Core) 62 Building C# ApplicationsPart 2: Core C# Programming3 Core C# Programming Constructs, Part 14 Core C# Programming Constructs, Part 2Part 3: Object Oriented Programming with C#5 Understanding Encapsulation6 Understanding Inheritance and Polymorphism7 Understanding Structured Exception Handling8 Working with Interfaces9 Understanding Object LifetimePart 4: Advanced C# Programming10 Collections and Generics11 Advanced C# Language Features12 Delegates, Events, and Lambda Expressions13 LINQ To Objects14 Processes, AppDomains, and Load Contexts15 Multithreaded, Parallel, and Async ProgrammingPart 5: Programming with .NET Core Assemblies16 Building and Configuring Class Libraries17 Type Reflection, Late Binding, Attributes, and Dynamic Types18 Understanding CIL and the Role of Dynamic AssembliesPart 6: File Handling, Object Serialization, and Data Access19 File I/O and Object Serialization20 Data Access with ADO.NETPart 7: Entity Framework Core21 Introducing Entity Framework Core22 Exploring EF Core 23 Build a Data Access Layer with Entity Framework Core24 Test Driving the Autolot Data Access LayerPart 8: Windows Client Development25 Introducing Windows Presentation Foundation and XAML26 WPF Controls, Layouts, Events, and Data Binding27 WPF Graphics Rendering Services28 WPF Resources, Animations, Styles, and Templates29 WPF Notifications, Validations, Commands, and MVVMPart 9: ASP.NET Core30 Introducing ASP.NET Core31 Diving into ASP.NET Core32 RESTful Services with ASP.NET Core33 Web Applications using MVC34 Web Applications using Razor Pages

    15 in stock

    £46.74

  • C# Programming in easy steps: Modern coding with

    In Easy Steps Limited C# Programming in easy steps: Modern coding with

    Out of stock

    Book Synopsis

    Out of stock

    £14.42

  • Real World OCaml

    Cambridge University Press Real World OCaml

    1 in stock

    Book SynopsisThis fast-moving tutorial introduces you to OCaml, an industrial-strength programming language designed for expressiveness, safety, and speed. Through the book''s many examples, you''ll quickly learn how OCaml stands out as a tool for writing fast, succinct, and readable systems code using functional programming. Real World OCaml takes you through the concepts of the language at a brisk pace, and then helps you explore the tools and techniques that make OCaml an effective and practical tool. You''ll also delve deep into the details of the compiler toolchain and OCaml''s simple and efficient runtime system. This second edition brings the book up to date with almost a decade of improvements in the OCaml language and ecosystem, with new chapters covering testing, GADTs, and platform tooling. This title is also available as open access on Cambridge Core, thanks to the support of Tarides. Their generous contribution will bring more people to OCaml.Trade Review'An invaluable guide to effective OCaml programming! With extended and updated coverage of key libraries and tools, it covers the language concepts and will teach you not only how to program in OCaml, but also how to develop efficient systems applications in this language.' Xavier Leroy, Collège de France and INRIA'OCaml is widely known as an elegant language based on cutting-edge ideas. But this book focuses on use of OCaml as a powerful tool for the software industry. Using a series of hands-on examples, it shows the reader how to use advanced features from the OCaml ecosystem (types, modules, testing frameworks, libraries, package management, build tools, etc.) to solve practical problems. Real World OCaml is my go-to reference for learning how to develop real-world software systems in OCaml.' Nate Foster, Cornell UniversityTable of Contents1. Prologue; Part I. Language Concepts: 2. A guided tour; 3. Variables and functions; 4. Lists and patterns; 5. Files, modules, and programs; 6. Records; 7. Variants; 8. Error handling; 9. Imperative programming; 10. GADTs; 11. Functors; 12. First-class Modules; 13. Objects; 14. Classes; Part II. Tools and Techniques: 15. Maps and hash tables; 16. Command-line parsing; 17. Concurrent programming with Async; 18. Testing; 19. Handling JSON data; 20. Parsing with Ocamllex and Menhir; 21. Data serialization with S-expressions; 22. The OCaml platform; Part III. The Compiler and Runtime System: 23. Foreign function interface; 24. Memory representation of values; 25. Understanding the garbage collector; 26. The compiler frontend: parsing and type checking; 27. The compiler backend: bytecode and native code; References; Index.

    1 in stock

    £33.24

  • Learning Primary Programming with Scratch (Home

    Legend Press Ltd Learning Primary Programming with Scratch (Home

    15 in stock

    Book SynopsisThis book, written by Phil Bagge and published in conjunction with Hampshire Inspection and Advisory Service (HIAS), has been devised for children of KS2 (Year 3 and 4) age to learn programming outside of school.It contains a series of programming projects that gradually introduce children to algorithm design, evaluation and generalisation. Children will learn how to use sequence and repetition through becoming creators of a wide variety of programming projects. Maths, literacy, humanities, gaming and music are all put to the test. Read the short introduction to find out more.The Scratch programming language, widely recognised in schools, is freely accessible online or as a download and is the ideal place to begin programming.

    15 in stock

    £7.59

  • R for Data Analysis in easy steps

    In Easy Steps Limited R for Data Analysis in easy steps

    1 in stock

    Book SynopsisThe R language is widely used by statisticians for data analysis, and the popularity of R programming has therefore increased substantially in recent years. The emerging Internet of Things (IoT) gathers increasing amounts of data that can be analyzed to gain useful insights into trends.R for Data Analysis in easy steps, 2nd edition has an easy-to-follow style that will appeal to anyone who wants to produce graphic visualizations to gain insights from gathered data. The book begins by explaining core programming principles of the R programming language, which stores data in vectors from which simple graphs can be plotted. Next, it describes how to create matrices to store and manipulate data from which graphs can be plotted to provide better insights. This book then demonstrates how to create data frames from imported data sets, and how to employ the Grammar of Graphics to produce advanced visualizations that can best illustrate useful insights from your data.R for Data Analysis in easy steps, 2nd edition contains separate chapters on the major features of the R programming language. There are complete example programs that demonstrate how to create Line graphs, Bar charts, Histograms, Scatter graphs, Box plots, and more. The code for each R script is listed, together with screenshots that illustrate the actual output when that script has been executed. The free, downloadable example R code is provided for clearer understanding. By the end of this book you will have gained a sound understanding of R programming, and be able to write your own scripts that can be executed to produce graphic visualizations for data analysis. You need have no previous knowledge of any programming language, so it''s ideal for the newcomer to computer programming.Updated for the latest version of R.

    1 in stock

    £12.34

  • FastAPI

    O'Reilly Media FastAPI

    15 in stock

    Book SynopsisWith this practical book, developers familiar with Python will learn how FastAPI lets you accomplish more in less time with less code. Author Bill Lubanovic covers the nuts and bolts of FastAPI development with how-to guides on various topics such as forms, database access, graphics, maps, and more that will take you beyond the basics.

    15 in stock

    £33.74

  • Quick Start Guide to Large Language Models

    Pearson Education (US) Quick Start Guide to Large Language Models

    3 in stock

    Book SynopsisSinan Ozdemir is currently the founder and CTO of Shiba Technologies. Sinan is a former lecturer of Data Science at Johns Hopkins University and the author of multiple textbooks on data science and machine learning. Additionally, he is the founder of the recently acquired Kylie.ai, an enterprise-grade conversational AI platform with RPA capabilities. He holds a master's degree in Pure Mathematics from Johns Hopkins University and is based in San Francisco, CA.Trade Review"Ozdemir's book cuts through the noise to help readers understand where the LLM revolution has come from--and where it is going. Ozdemir breaks down complex topics into practical explanations and easy to follow code examples."--Shelia Gulati, former GM at Microsoft and current Managing Director of Tola Capital "When it comes to building Large Language Models (LLMs), it can be a daunting task to find comprehensive resources that cover all the essential aspects. However, my search for such a resource recently came to an end when I discovered this book. "One of the stand-out features of Sinan is his ability to present complex concepts in a straightforward manner. The author has done an outstanding job of breaking down intricate ideas and algorithms, ensuring that readers can grasp them without feeling overwhelmed. Each topic is carefully explained, building upon examples that serve as steppingstones for better understanding. This approach greatly enhances the learning experience, making even the most intricate aspects of LLM development accessible to readers of varying skill levels. "Another strength of this book is the abundance of code resources. The inclusion of practical examples and code snippets is a game-changer for anyone who wants to experiment and apply the concepts they learn. These code resources provide readers with hands-on experience, allowing them to test and refine their understanding. This is an invaluable asset, as it fosters a deeper comprehension of the material and enables readers to truly engage with the content. "In conclusion, this book is a rare find for anyone interested in building LLMs. Its exceptional quality of explanation, clear and concise writing style, abundant code resources, and comprehensive coverage of all essential aspects make it an indispensable resource. Whether you are a beginner or an experienced practitioner, this book will undoubtedly elevate your understanding and practical skills in LLM development. I highly recommend Quick Start Guide to Large Language Models to anyone looking to embark on the exciting journey of building LLM applications."--Pedro Marcelino, Machine Learning Engineer, Co-Founder and CEO @overfit.studyTable of ContentsForeword xvPreface xviiAcknowledgments xxiAbout the Author xxiii Part I: Introduction to Large Language Models 1 Chapter 1: Overview of Large Language Models 3What Are Large Language Models? 4Popular Modern LLMs 20Domain-Specific LLMs 22Applications of LLMs 23Summary 29 Chapter 2: Semantic Search with LLMs 31Introduction 31The Task 32Solution Overview 34The Components 35Putting It All Together 51The Cost of Closed-Source Components 54Summary 55 Chapter 3: First Steps with Prompt Engineering 57Introduction 57Prompt Engineering 57Working with Prompts Across Models 65Building a Q/A Bot with ChatGPT 69Summary 74 Part II: Getting the Most Out of LLMs 75 Chapter 4: Optimizing LLMs with Customized Fine-Tuning 77Introduction 77Transfer Learning and Fine-Tuning: A Primer 78A Look at the OpenAI Fine-Tuning API 82Preparing Custom Examples with the OpenAI CLI 84Setting Up the OpenAI CLI 87Our First Fine-Tuned LLM 88Case Study: Amazon Review Category Classification 93Summary 95 Chapter 5: Advanced Prompt Engineering 97Introduction 97Prompt Injection Attacks 97Input/Output Validation 99Batch Prompting 103Prompt Chaining 104Chain-of-Thought Prompting 111Revisiting Few-Shot Learning 113Testing and Iterative Prompt Development 123Summary 124 Chapter 6: Customizing Embeddings and Model Architectures 125Introduction 125Case Study: Building a Recommendation System 126Summary 144 Part III: Advanced LLM Usage 145 Chapter 7: Moving Beyond Foundation Models 147Introduction 147Case Study: Visual Q/A 147Case Study: Reinforcement Learning from Feedback 163Summary 173 Chapter 8: Advanced Open-Source LLM Fine-Tuning 175Introduction 175Example: Anime Genre Multilabel Classification with BERT 176Example: LaTeX Generation with GPT2 189Sinan's Attempt at Wise Yet Engaging Responses: SAWYER 193The Ever-Changing World of Fine-Tuning 206Summary 207 Chapter 9: Moving LLMs into Production 209Introduction 209Deploying Closed-Source LLMs to Production 209Deploying Open-Source LLMs to Production 210Summary 225 Part IV: Appendices 227 Appendix A: LLM FAQs 229Appendix B: LLM Glossary 233Appendix C: LLM Application Archetypes 239 Index 243

    3 in stock

    £34.19

  • ASP.NET Core in Action, Third Edition

    Manning Publications ASP.NET Core in Action, Third Edition

    1 in stock

    Book SynopsisBuild professional-grade full-stack web applications using C# and ASP.NET Core. ASP.NET Core in Action, 3rd edition by Microsoft MVP Andrew Lock, is a fully updated edition, ideal for intermediate C# developers, and teaches you how to use your C# and .NET skills to build amazing cross-platform web applications. This revised bestseller reveals the latest .NET patterns, including minimal APIs and minimal hosting. Even if you have never worked with ASP.NET, you will soon start creating productive cross-platform web apps. Features include: Build minimal APIs for serving JSON to client-side applications Create dynamic, server-side rendered applications using Razor Pages User authentication and authorisation Store data using Entity Framework Core Unit and integration tests for ASP.NET Core applications Write custom middleware and components About the technology Developers love ASP.NET Core for its libraries and pre-built components that maximize productivity. This awesome web framework empowers you to build web applications using HTTP APIs, server-side rendered HTML, and long-running server processes - all by using the same familiar structure and components. Version 7.0 takes full advantage of new C# features, easy-to-build minimal APIs, and big performance upgrades.

    1 in stock

    £35.09

© 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