Programming and scripting languages: general Books

2194 products


  • CS For All: An Introduction to Computer Science

    Franklin, Beedle & Associates Inc CS For All: An Introduction to Computer Science

    1 in stock

    Book SynopsisA unique approach to “Intro CS.” In a nutshell, the authors of this book's objective is to provide an introduction to computer science as an intellectually rich and vibrant field rather than focusing exclusively on computer programming. While programming is certainly an important and pervasive element of their approach, they emphasize concepts and problem-solving over syntax and programming language features.This book is a companion to the course “CS for All” developed at Harvey Mudd College and subsequently adopted at a variety of colleges and universities. At Mudd, this course is taken by almost every first-year student - irrespective of the student’s ultimate major - as part of the college’s core curriculum. The offering is also taken by many students at the Claremont Colleges, including students majoring in the humanities, social sciences, and the arts. Thus, it serves as a first computing course for students regardless of their major.This book is intended to be used with the substantial resources that we have developed for the course. These resources include complete lecture slides, a rich collection of weekly assignments, some accompanying software, documentation, and papers that have been published about the course. The authors have deliberately kept this book relatively short and have endeavored to make it fun and readable.The content of this book is an accurate reflection of the content of the course rather than an intimidating encyclopedic tome that can’t possibly be covered in a single semester. The book has been written in the belief that a student can read all of it comfortably as the course proceeds.

    1 in stock

    £36.71

  • Foundational Python for Data Science

    Pearson Education (US) Foundational Python for Data Science

    20 in stock

    Book Synopsis Kennedy Behrman is a veteran software and data engineer. He first used Python writing asset management systems in the Visual Effects industry. He then moved into the startup world, using Python at startups using machine learning to characterize videos and predict the social media power of athletes. Table of ContentsPreface xiii I: Learning Python in a Notebook Environment 1 1 Introduction to Notebooks 3 2 Fundamentals of Python 13 3 Sequences 25 4 Other Data Structures 37 5 Execution Control 55 6 Functions 67 II: Data Science Libraries 83 7 NumPy 85 8 SciPy 103 9 Pandas 113 10 Visualization Libraries 135 11 Machine Learning Libraries 153 12 Natural Language Toolkit 159 III: Intermediate Python 171 13 Functional Programming 173 14 Object-Oriented Programming 187 15 Other Topics 201 A Answers to End-of-Chapter Questions 215 Index 221

    20 in stock

    £42.74

  • Pearson Education Python in Excel

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

    £40.84

  • ASP.NET Core in Action, Third Edition

    Manning Publications ASP.NET Core in Action, Third Edition

    15 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.

    15 in stock

    £38.99

  • No Starch Press,US The Book of PF 4th Edition

    7 in stock

    7 in stock

    £40.49

  • React in Action

    Manning Publications React in Action

    15 in stock

    Book SynopsisReact is a highly-performant tool that implements a one-way data flow model. Reasoning about an interface or application written with React ends up being much easier because it decreases overall complexity for developers working with it. React in Action introduces front-end developers to the React framework and related tools. Readers will work their way from “raw” React towards JSX, and from basic static components to ones that are dynamic and interactive. Key Features: · Clearly written · Example-rich · Hands-on Written for developers familiar with HTML, CSS, and JavaScript who want to create more robust front-end applications. About the Technology: React is an open source JavaScript framework that lets developers quickly create user interfaces for web applications.

    15 in stock

    £30.59

  • C++ Concurrency in Action,2E

    Manning Publications C++ Concurrency in Action,2E

    7 in stock

    Book SynopsisC++ 11 delivered strong support for multithreaded applications, andthe subsequent C++14 and 17 updates have built on this baseline. C++has better options for concurrency than ever before, which means it'san incredibly powerful option for multicore and parallel applications. This bestseller has been updated and revised to cover all the latestchanges to C++ 14 and 17! C++ Concurrency in Action, SecondEdition teaches readers everything they need to write robust andelegant multithreaded applications in C++17. Along the way, they’lllearn how to navigate the trickier bits of programming for concurrencywhile avoiding the common pitfalls. KEY FEATURES• Completely updated• Hands-on learning• In depth guide Written for C++ programmers who are new to concurrency and otherswho may have written multithreaded code using other languages, APIs,or platforms. ABOUT THE TECHNOLOGYConcurrency in terms of computers is a single system performingmultiple independent activities in parallel, rather than sequentially, orone after the other. AUTHOR BIOAnthony Williams is a UK-based developer and consultant with manyyears' experience in C++. He has been an active member of the BSI C++Standards Panel since 2001, and is the author or co-author of many of theC++ Standards Committee papers that led up to the inclusion of the threadlibrary in the C++11 Standard. He was the maintainer of the Boost Threadlibrary, and is the developer of the just::thread Pro extensions to the C++11thread library from Just Software Solutions Ltd.

    7 in stock

    £53.19

  • £62.99

  • Effective Shell

    No Starch Press,US Effective Shell

    2 in stock

    Book Synopsis

    2 in stock

    £33.74

  • Barcharts, Inc Python Programming with Generative AI

    7 in stock

    7 in stock

    £10.63

  • Barcharts, Inc Java with Generative AI

    7 in stock

    7 in stock

    £10.63

  • Effective Python

    Pearson Education Effective Python

    7 in stock

    Book SynopsisBrett Slatkin is a Principal Software Engineer at Google in the Office of the CTO, focusing on emerging technologies. He co-founded Google Surveys, launched Google Cloud's first product (App Engine), and co-created the PubSubHubbub protocolall using Python. Brett has been writing Python code professionally for the past 19 years and has made numerous contributions to open-source projects.

    7 in stock

    £39.59

  • Think Python

    O'Reilly Media Think Python

    Book Synopsis

    £29.24

  • Barcharts, Inc Python Programming Advanced

    7 in stock

    7 in stock

    £10.63

  • Automate The Boring Stuff With Python, 2nd

    No Starch Press,US Automate The Boring Stuff With Python, 2nd

    3 in stock

    Book SynopsisIn this second edition of Automate the Boring Stuff with Python, you'll learn the basics of programming in Python, the fastest growing programming language today, before moving on to create Python programs that effortlessly perform useful and impressive feats of automation. This updated edition is full of step-by-step instructions that walk through each programme. Practice projects at the end of each chapter challenge you to improve those programmes and use your newfound skills to automate similar tasks.Trade Review"With lessons on how to use Python to program Excel spreadsheets, crawl websites, parse PDFs and Word documents, send emails, and other productivity-boosting task automation, it's a stellar resource for office workers, academics, and administrators."—Mashable"I think many educational resources jump levels way too quickly. One of the best I ever used was Automate the Boring Stuff with Python - that book stayed at the right level the whole way!"—Oscar Baruffa, @OscarBaruffaPraise for the first edition of Automate the Boring Stuff with Python:"The best part of programming is the triumph of seeing the machine do something useful. Automate the Boring Stuff with Python frames all of programming as these small triumphs; it makes the boring fun.”—Hilary Mason, Founder of Fast Forward Labs and Data Scientist in Residence at Accel “Do you need Automate the Boring Stuff with Python? Yes, if you want to enhance your workflow by using automation, this is an excellent place to start. Highly recommended.” —Network World “Valuable to have on your shelf...an extremely useful book.” —Kids, Code, and Computer Science Magazine "Automate the Boring Stuff with Python is perfect for anyone who has menial tasks they don't want to spend hours doing." —GeekMom "Whether you prefer working through a book, or learning by watching, or both together, Automate the Boring Stuff will have you productive in Python in no time." —Serdar Yegulalp, InfoWorld"If you seriously want to know how much Python helps with automation, my favorite place is the Automate Boring Stuff with Python book, a simply awesome book." —Javin Paul, Hacker Noon"This is certainly a much more engaging way to learn Python . . . it gets you all excited by the prospect of making cool little programs that will save you time."—Andrew Lau, AndrewLauActuary.com"I've found both the book and Udemy course of Automate the Boring Stuff with Python by Al Sweigart to be really helpful."—Mark S, @Awful_Curious"Best Python book you can buy today."—Rodrigo Ribeiro, @mcapablancaTable of ContentsAcknowledgmentsIntroductionPart I: Python Programming BasicsChapter 1: Python BasicsChapter 2: Flow ControlChapter 3: FunctionsChapter 4: ListsChapter 5: Dictionaries and Structuring DataChapter 6: Manipulating StringsPart II: Automating TasksChapter 7: Pattern Matching with Regular ExpressionsChapter 8: Input ValidationChapter 9: Reading and Writing FilesChapter 10: Organizing FilesChapter 11: DebuggingChapter 12: Web ScrapingChapter 13: Working with Excel SpreadsheetsChapter 14: Working with Google SheetsChapter 15: Working with PDF and Word DocumentsChapter 16: Working with CSV Files and JSON DataChapter 17: Keeping Time, Scheduling Tasks, and Launching ProgramsChapter 18: Sending Email and Text MessagesChapter 19: Manipulating ImagesChapter 20: Controlling the Keyboard and Mouse with GUI AutomationAppendix A: Installing Third-Party ModulesAppendix B: Running ProgramsAppendix C: Answers to the Practice Questions

    3 in stock

    £34.19

  • HandsOn MySQL Administration

    O'Reilly Media HandsOn MySQL Administration

    Book Synopsis

    £47.99

  • Java How to Program Late Objects Global Edition

    Pearson Education Limited Java How to Program Late Objects Global Edition

    4 in stock

    Book SynopsisTable of Contents1. Introduction to Computers, the Internet and Java 2. Introduction to Java Applications; Input/Output and Operators 3. Control Statements: Part 1; Assignment, ++ and -- Operators 4. Control Statements: Part 2; Logical Operators 5. Methods 6. Arrays and ArrayLists 7. Introduction to Classes and Objects 8. Classes and Objects: A Deeper Look 9. Object-Oriented Programming: Inheritance 10. Object-Oriented Programming: Polymorphism and Interfaces 11. Exception Handling: A Deeper Look 12. JavaFX Graphical User Interfaces: Part 1 13. JavaFX GUI: Part 2 14. Strings, Characters, and Regular Expressions 15. Files, Input/Output Streams, NIO and XML Serialization 16. Generic Collections 17. Lambdas and Streams 18. Recursion 19. Searching, Sorting and Big O 20. Generic Classes and Methods: A Deeper Look 21. Custom Generic Data Structures 22. JavaFX Graphics and Multimedia 23. Concurrency 24. Accessing Databases with JDBC 25. Introduction to JShell: Java 9’s REPL Chapters on the Web A. Operator Precedence Chart B. ASCII Character Set C. Keywords and Reserved Words D. Primitive Types E. Using the Debugger Appendices on the Web Index Online Chapters and Appendices 26. Swing GUI Components: Part 1 27. Graphics and Java 2D 28. Networking 29. Java Persistence API (JPA) 30. JavaServer™ Faces Web Apps: Part 1 31. JavaServer™ Faces Web Apps: Part 2 32. REST-Based Web Services 33. (Optional) ATM Case Study, Part 1: Object-Oriented Design with the UML 34. (Optional) ATM Case Study, Part 2: Implementing an Object-Oriented Design 35. Swing GUI Components: Part 2 36. Java Module System and Other Java 9 Features F. Using the Java API Documentation G. Creating Documentation with javadoc H. Unicode® I. Formatted Output J. Number Systems K. Bit Manipulation L. Labeled break and continue Statements M. UML 2: Additional Diagram Types N. Design Patterns

    4 in stock

    £62.69

  • £58.65

  • Programming Rust

    O'Reilly Media Programming Rust

    Book SynopsisJim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust's features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency.

    £47.99

  • Oracle Press Core Java Vol. I Fundamentals

    5 in stock

    5 in stock

    £65.54

  • C Programming Language

    Pearson Education (US) C Programming Language

    7 in stock

    Book SynopsisBrian W. Kernighan received his BASc from the University of Toronto in 1964 and a PhD in electrical engineering from Princeton in 1969. He was a member of the Computing Science Research center at Bell Labs until 2000, and is now a professor in the Computer Science Department at Princeton. He was a co-creator of several programming languages, including AWK, AMPL, and a number of tools for document preparation. He is the co-author of 10 books and some technical papers, and holds 4 patents. He was elected to the National Academy of Engineering in 2002. His research areas include programming languages, tools and interfaces that make computers easier to use, often for non-specialist users. He is also interested in technology education for non-technical audiences. Dennis Ritchie was a computer scientist notable for his influence on ALTRAN, Table of Contents1. A Tutorial Introduction. 2. Types, Operators, and Expressions. 3. Control Flow. 4. Functions and Program Structure. 5. Pointers and Arrays. 6. Structures. 7. Input and Output. 8. The UNIX System Interface. Appendix A. Appendix B. Appendix C. Index.

    7 in stock

    £42.99

  • Computer Coding Python Projects for Kids

    Dorling Kindersley Ltd Computer Coding Python Projects for Kids

    15 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

    15 in stock

    £14.24

  • Effective Go Recipes

    O'Reilly Effective Go Recipes

    5 in stock

    Book SynopsisThere's an art to using Go effectively. Squeeze out the full use of advanced networking and multi-core power for which Go was designed. Save precious coding hours with recipes that help you manage objects, collect garbage, and safely use memory. Tackle Unicode, concurrency, and serialization with ease.

    5 in stock

    £40.84

  • Code Complete

    Microsoft Press,U.S. Code Complete

    7 in stock

    Book SynopsisSteve McConnell is recognized as one of the premier authors and voices in the development community. He is Chief Software Engineer of Construx Software and was the lead developer of Construx Estimate and of SPC Estimate Professional, winner of Software Development magazine's Productivity Award. He is the author of several books, including Code Complete and Rapid Development, both honored with Software Development magazine's Jolt Award.Table of ContentsWelcome to software construction Metaphors for a richer understanding of software development Measure twice, cut once: Upstream prerequisites Key construction decisions Design in construction Working classes High-Quality routines Defensive programming The Pseudocode programming process General issues in using variables The power of variable names Fundamental data types Unusual data types Organizing straight-line code Using conditionals Controlling loops Unusual control structures Table driven methods General control issues The software-quality landscape Collaborative construction Developer testing Debugging refactoring Code tuning strategies How program size affects construction Integration Programming tools Layout & style Self documenting code Personal character Themes in software craftsmanship

    7 in stock

    £34.42

  • Captain Code

    Pearson Education (US) Captain Code

    Book Synopsis Ben Forta is, first and foremost, an educator who has been teaching in some capacity since he was a teenager (many centuries ago). He is Adobe's Senior Director of Education Initiatives, and has more than three decades of experience in the technology sector in product development, support, training, and product marketing. Ben is the award-winning author of more than 40 books, some of which have been translated into 16 languages, and many of which have become college textbooks. Through his books, lectures, lessons, and videos, Ben has taught coding skills to over a million people. Ben lives in Oak Park, MI, with his wife Marcy and their children. He welcomes your emails at ben@forta.com and invites you to visit him online at http://forta.com/. Shmuel Forta is an engineer, coder, maker, tinkerer, and teacher. He is a software developer at General Motors and has years of programming experience, including both writingTrade Review" This is the book I needed that I did not know I needed. Having taught myself Python and having taught students, there are still some gaps in my knowledge that Captain Code quickly filled. The overall design of the book is wonderful and easy to read. All of the questions I have normally had when it comes to Python are answered on the pages. The code is cleanly written and the ability to scan a QR code so you can copy the code digitally is a major time-saver. What is most evident about this book is that it has been written by people that have worked with students. Too often books are written for students by people who have never taught and it never translates well on the pages. Captain Code is accessible for students and teachers and I think it is a must have for any classroom that is exploring Python. I know I will keep one at home for me and a few more in the classroom." ---Nicholas Provenzano, TheNerdyTeacher, MACUL OutstandingTechnology Using Teacher of the Year, and ISTE Outstanding Teacher of the YearTable of ContentsIntroduction xv PART I: IT'S ALL FUN AND GAMES 1 Chapter 1 Getting Started 3 Understanding Computer Programming 4 What is a computer? 4 How do we talk to computers? 5 What is Python? 8 Setting Things Up 9 Installing Python 9 Installing and Configuring Visual Studio Code 10 Creating a Work Folder 13 Writing Your First Python Program 15 Selecting Your Work Folder 16 It's Coding Time! 17 Summary 19 Chapter 2 Mad Libs 21 Understanding Functions 22 Using Variables 23 Creating a Variable 24 Using a Variable 24 Some Important Variable Rules 25 Variables, More Variables, and Even More Variables 26 Getting User Input 28 Playing Mad Libs 30 Write Your Story 30 Add Variables 30 Get User Input 32 Summary 33 Chapter 3 Roll the Dice 35 Using Libraries 36 The random Library 36 Generating Random Numbers 37 Choosing a Random Item 38 “3” Is Not 3 41 Commenting Your Code 43 One Die, Two Dice 45 Summary 49 Chapter 4 Calculate the Day 51 Working with Dates 52 The datetime Library 52 Using the datetime Class 55 Making Decisions 56 The if Statement 56 What else? 58 if Revisited 59 Testing for Other Options 61 Using in 62 Beating the Mathematician 63 Handling Numeric Inputs 63 Putting It All Together 64 An Alternate Solution 67 Summary 67 Chapter 5 Rock Paper Scissors 69 More Strings 70 Game Time 72 Handling User Input 72 The Game Code 74 One Last Tweak 76 Summary 77 Chapter 6 Secret Codes 79 Lists 80 Creating Lists 80 Accessing List Items 82 Changing List Items 83 Adding and Removing Items 84 Finding Items 85 Sorting 86 Loop-de-Loop 89 Looping Through Items 90 Looping Through Numbers 92 Nested Loops 93 Cracking the Code 95 Encrypting Characters 96 Modulus Math 97 Encryption Code 98 Decryption Code 102 Summary 104 Chapter 7 Guess the Number 105 Conditional Loops 106 Game Time 111 The Basic Game 111 Putting It All Together 116 Summary 120 Chapter 8 Becoming a Coder 121 How Coders Code 122 Have a Plan 122 Think Small 123 Game Components 124 Restricting User Input 125 Storing User Guesses 128 Displaying Lists 129 Masking Characters 131 Summary 136 Chapter 9 Hangman 137 Game Time 138 So How Does It Work? 141 Summary 148 Chapter 10 Keep Going 149 Birthday Countdown 150 Program Requirements 150 Program Flow 150 Some Tips 151 Tip Calculator 152 Program Requirements 152 Program Flow 153 Some Tips (Pun Intended) 153 Password Generator 154 Program Requirements 154 Program Flow 155 Some Tips 155 Summary 159 PART II: ON AN ADVENTURE 161 Chapter 11 Getting Func-ky 163 Functions Revisited 164 Creating a Function 165 Passing Arguments 167 Returning Values 171 Summary 175 Chapter 12 Exploring 177 Game Concept 178 Game Structure 179 Prompting for Options 181 Processing Options 182 Create a Work Folder 183 Game Time 184 Test It 189 Summary 191 Chapter 13 Cleanup Time 193 Optimizing Your Code 194 String Externalization 196 Creating the Strings File 196 Using Externalized Strings 200 Summary 201 Chapter 14 Reduce, Reuse, Recycle, Refactor 203 Understanding Refactoring 204 Identifying Refactoring Opportunities 205 Creating a User Choice Component 207 Designing a Reusable Component 208 Creating the User Options Function 213 Updating Your Code 218 Summary 221 Chapter 15 Carrying (and Using) Stuff 223 Planning the Inventory System 224 Creating a Dictionary 225 Working with Dictionaries 226 Lists of Dictionaries 228 The Inventory System 229 Creating an Inventory 230 Plugging In the Inventory System 232 Using the Inventory System 233 Displaying the Inventory 238 Summary 239 Chapter 16 Keeping It Classy 241 The Player System 242 Creating a Player Class 243 Creating the Class 243 Defining Properties 244 Creating Methods 247 Initializing the Class 250 Using Our New Class 251 Summary 255 Chapter 17 Color Your World 257 Installing Third-Party Libraries 258 Using Colorama 259 Importing and Initializing the Library 259 Coloring Your Output 260 Summary 264 Chapter 18 Keep Going 265 Health and Lives 266 Shopping for Items 271 Random Events 275 Battling Enemies 277 Saving and Restoring 280 Summary 282 PART III: RACING AROUND 283 Chapter 19 Crazy Driver 285 Introducing Pygame 286 Prepping the Game 286 Game Concept 286 Installing Pygame 288 Creating Work Folders 288 Obtaining Images 289 Getting Started 289 Initializing Pygame 290 Displaying Stuff 294 The Game Loop 295 Summary 300 Chapter 20 Image-ine the Possibilities 301 Files and Folders 302 Setting the Background 305 Placing the Cars 310 Summary 317 Chapter 21 We Like to Move It 319 Moving the Enemy 320 Moving the Player 323 Summary 327 Chapter 22 Crash, Bang, Boom 329 You Crashed, Game Over 330 Tracking Score 332 Increasing Difficulty 334 Summary 336 Chapter 23 Finishing Touches 337 Game Over Revisited 338 Pause 341 Varying Enemies 343 Ice Cubes 348 Summary 351 Chapter 24 Keep Going 353 Splash Screen 354 Scores and High Scores 354 Oil Slick 356 Multiple Enemies 357 And Then 358 Summary 359 What Next? 361 There's a Lot More to Python 362 Web Development 362 Mobile App Development 364 Game Development 364 And Then 365 Index 367 Bonus Online Chapter 25 Tinkering, Testing, and Debugging Revisited (Online Only)

    £18.04

  • Robust Python

    O'Reilly Media Robust Python

    15 in stock

    Book SynopsisIn this practical book, author Patrick Viafore shows you how to use Python's type system to the max. You'll look at user-defined types, such as classes and enums, and Python's type hinting system. You'll also learn how to make Python extensible and how to use a comprehensive testing strategy as a safety net.

    15 in stock

    £33.74

  • Beautiful C

    Pearson Education (US) Beautiful C

    2 in stock

    Book SynopsisJ. Guy Davidson, head of engineering practice at Creative Assembly, works on its Total War game franchise, curates its catalogue, and improves programming standards across its engineering team. He serves on the ISO C++ committee, moderates the #include discord server, speaks at C++ events, and offers C++ mentoring support through Prospela and BAME in Games. Kate Gregory has 40+ years of development experience in multiple languages. She has keynoted on five continents, and volunteers in many C++ activities, especially #include , which is making the industry more welcoming and inclusive. Since 1986 she and her husband have run Gregory Consulting, helping clients worldwide become more effective.Table of ContentsList of Selected C++ Core Guidelines xiiiForeword xvPreface xviiAcknowledgments xxiAbout the Authors xxiii Section 1: Bikeshedding is bad 1 Chapter 1.1: P.2: Write in ISO Standard C++ 3 Chapter 1.2: F.51: Where there is a choice, prefer default arguments over overloading 13 Chapter 1.3: C.45: Don't define a default constructor that only initializes data members; use in-class member initializers instead 23 Chapter 1.4: C.131: Avoid trivial getters and setters 31 Chapter 1.5: ES.10: Declare one name (only) per declaration 41 Chapter 1.6: NR.2: Don't insist to have only a single return-statement in a function 49 Section 2: Don't hurt yourself 59 Chapter 2.1: P.11: Encapsulate messy constructs, rather than spreading through the code 61 Chapter 2.2: I.23: Keep the number of function arguments low 71 Chapter 2.3: I.26: If you want a cross-compiler ABI, use a C-style subset 79 Chapter 2.4: C.47: Define and initialize member variables in the order of member declaration 87 Chapter 2.5: CP.3: Minimize explicit sharing of writable data 97 Chapter 2.6: T.120: Use template metaprogramming only when you really need to 107 Section 3: Stop using that 119 Chapter 3.1: I.11: Never transfer ownership by a raw pointer (T*) or reference (T&) 121 Chapter 3.2: I.3: Avoid singletons 129 Chapter 3.3: C.90: Rely on constructors and assignment operators, not memset and memcpy 139 Chapter 3.4: ES.50: Don't cast away const 149 Chapter 3.5: E.28: Avoid error handling based on global state (e.g. errno)159 Chapter 3.6: SF.7: Don't write using namespace at global scope in a header file 169 Section 4: Use this new thing properly 179 Chapter 4.1: F.21: To return multiple "out" values, prefer returning a struct or tuple 181 Chapter 4.2: Enum.3: Prefer class enums over "plain" enums 193 Chapter 4.3: ES.5: Keep scopes small 201 Chapter 4.4: Con.5: Use constexpr for values that can be computed at compile time 213 Chapter 4.5: T.1: Use templates to raise the level of abstraction of code 225 Chapter 4.6: T.10: Specify concepts for all template arguments 235 Section 5: Write code well by default 45 Chapter 5.1: P.4: Ideally, a program should be statically type safe 247 Chapter 5.2: P.10: Prefer immutable data to mutable data 259 Chapter 5.3: I.30: Encapsulate rule violations 267 Chapter 5.4: ES.22: Don't declare a variable until you have a value to initialize it with 275 Chapter 5.5: Per.7: Design to enable optimization 285 Chapter 5.6: E.6: Use RAII to prevent leaks 293 Envoi 305 Afterword 307 Index 309

    2 in stock

    £30.59

  • Beginning Programming with Python For Dummies

    John Wiley & Sons Inc Beginning Programming with Python For Dummies

    1 in stock

    Book SynopsisTable of ContentsIntroduction 1 Part 1: Getting Started with Python 7 Chapter 1: Talking to Your Computer 9 Chapter 2: Working with Google Colab 23 Chapter 3: Interacting with Python 41 Chapter 4: Writing Your First Application 57 Chapter 5: Performing Magic 79 Part 2: Talking the Talk 93 Chapter 6: Storing and Modifying Information 95 Chapter 7: Managing Information 107 Chapter 8: Making Decisions 127 Chapter 9: Performing Repetitive Tasks 143 Chapter 10: Dealing with Errors 157 Part 3: Performing Common Tasks 187 Chapter 11: Interacting with Packages 189 Chapter 12: Working with Strings 215 Chapter 13: Managing Lists 239 Chapter 14: Collecting All Sorts of Data 257 Chapter 15: Creating and Using Classes 279 Part 4: Performing Advanced Tasks 301 Chapter 16: Storing Data in Files 303 Chapter 17: Sending an Email 321 Part 5: The Part of Tens 337 Chapter 18: Ten Amazing Programming Resources 339 Chapter 19: Ten Ways to Make a Living with Python 349 Chapter 20: Ten Tools That Enhance Your Python Experience 357 Chapter 21: Ten (Plus) Libraries You Need to Know About 369 Index 379

    1 in stock

    £21.59

  • C How to Program With Case Studies in

    Pearson Education Limited C How to Program With Case Studies in

    2 in stock

    Book SynopsisTable of ContentsPART 1: (Introductory) Programming Fundamentals Quickstart Introduction to Computers and C: Test-Driving Microsoft Visual Studio, Apple Xcode, GNU gcc, and GNU gcc in a Docker container Intro to C Programming: Input, Output, Types, Arithmetic, Decision Making Structured Program Development: Algorithmic Development, Problem Solving, if, if/else, while Program Control: for, do/while, switch, break, continue, Logical Operators Functions: Custom Functions, Simulation, Random-Number Generation, Enumerations, Function Call and Return Mechanism, Recursion, Recursive Factorial, Recursive Fibonacci PART 2: (Intermediate) Arrays, Pointers, and Strings Arrays: One- and Two-Dimensional Arrays, Passing Arrays to Functions, Searching, Sorting Pointers: Pointers operators & and •, Pass-By-Value vs. Pass-By-Reference, Array and Pointer Relationship Characters and Strings: C Standard Library String- and Character-Processing Functions PART 3: (Intermediate) Formatted Input/Output, Structures, and File Processing Formatted Input/Output: scanf and printf formatting Structures, Unions, Bit Manipulation and Enumerations: Creating Custom Types with structs and unions, Bitwise Operators, Named Constants File Processing: Streams, Text and Binary Files, CSV Files, Sequential and Random-Access Files PART 4: (Advanced) Algorithms and Data Structures Data Structures: Dynamic Memory Allocation and Deallocation, Lists, Stacks, Queues, Binary Trees Computer-Science Thinking: Sorting Algorithms and Big O Insertion Sort, Selection Sort, Merge Sort, Additional Algorithms including Quicksort in the Exercises PART 5: (Advanced) Preprocessor and Other Topics Preprocessor: #include, Conditional Compilation, Macros with Arguments, Assertions Other Topics: Variable-Length Argument Lists, Command-line Arguments, Multiple-Source-Pile Programs, extern, exit/atexit, calloc/realloc, goto, Numeric Literal Suffixes, Signal Handling Appendices Operator Precedence Chart ASCII Character Set Numerical Integration Number Systems Multithreading/Multicore and other C18/C11/C99 Topics Intro to Object-Oriented Programming Concepts Online Appendices F-H. Using the Visual Studio Debugger, Using the GNU gdb Debugger, and Using the Xcode Debugger Case Studies System Programming Case Studies Systems Software: Building Your Own Computer Systems Software: Building Your Own Compiler Embedded Systems Programming: Robotics with the Webots Simulator Performance with Multithreading and Multicore Systems Applications Programming Case Studies Random-Number Simulation: Building a Casino Game Random-Number Simulation: Card Shuffling and Dealing Random-Number Simulation: The Tortoise and the Hare Race Intro to Data Science: Survey Data Analysis Direct-Access File Processing: Transaction-Processing System Visualizing a Sorting Algorithm: Merge Sort Artificial Intelligence/Data Science: NLP: Who Wrote Shakespeare's Works? Artificial Intelligence/Data Science: Machine Learning with the GNU Scientific Library Game Programming: SpotOn Game with the raylib Library Game Programming: Cannon Game with the raylib Library Security and Cryptography: Implementing a Vigenère Cipher Visualization with gnuplot: Law of Large Numbers Animation Web Services and the Cloud: libcurl and OpenWeatherMap

    2 in stock

    £66.49

  • TSQL Fundamentals

    Pearson Education (US) TSQL Fundamentals

    10 in stock

    Book SynopsisItzik Ben-Gan is a mentor with and co-founder of SolidQ. A Microsoft Data Platform MVP since 1999, Itzik has taught numerous training events around the world focused on T-SQL querying, query tuning, and programming. Itzik is the author of several books about T-SQL. He has written many articles for SQL Server Pro as well as articles and white papers for MSDN and The SolidQ Journal. Itzik's speaking engagements include Tech-Ed, SQL PASS, SQL Server Connections, presentations to various SQL Server user groups, and SolidQ events. Itzik is a subject-matter expert within SolidQ for its T-SQL related activities. He authored SolidQ's Advanced T-SQL and T-SQL Fundamentals courses and delivers them regularly worldwide. You can learn more about Itzik at http://tsql.solidq.com/.Table of ContentsCHAPTER 1: Background to T-SQL querying and programming CHAPTER 2: Single-table queries CHAPTER 3: Joins CHAPTER 4: Subqueries CHAPTER 5: Table expressions CHAPTER 6: Set operators CHAPTER 7: T-SQL for data analysis CHAPTER 8: Data modification CHAPTER 9: Temporal tables CHAPTER 10: Transactions and concurrency CHAPTER 11: SQL Graph CHAPTER 12: Programmable objects Appendix: Getting started

    10 in stock

    £32.29

  • Functional and Concurrent Programming

    Pearson Education (US) Functional and Concurrent Programming

    Book SynopsisMichel Charpentier is an associate professor with the Computer Science department at the University of New Hampshire (UNH). His interests over the years have ranged from distributed systems to formal verification and mobile sensor networks. He has been with UNH since 1999 and currently teaches courses in programming languages, concurrency, formal verification, and model-checking.Table of ContentsForeword by Cay Horstmann xxiii Preface xxv Acknowledgments xxxv About the Author xxxvii Part I. Functional Programming 1 Chapter 1: Concepts of Functional Programming 3 1.1 What Is Functional Programming? 3 1.2 Functions 4 1.3 From Functions to Functional Programming Concepts 6 1.4 Summary 7 Chapter 2: Functions in Programming Languages 9 2.1 Defining Functions 9 2.2 Composing Functions 10 2.3 Functions Defined as Methods 12 2.4 Operators Defined as Methods 12 2.5 Extension Methods 13 2.6 Local Functions 14 2.7 Repeated Arguments 15 2.8 Optional Arguments 16 2.9 Named Arguments 16 2.10 Type Parameters 17 2.11 Summary 19 Chapter 3: Immutability 21 3.1 Pure and Impure Functions 21 3.2 Actions 23 3.3 Expressions Versus Statements 25 3.4 Functional Variables 26 3.5 Immutable Objects 28 3.6 Implementation of Mutable State 29 3.7 Functional Lists 31 3.8 Hybrid Designs 32 3.9 Updating Collections of Mutable/Immutable Objects 35 3.10 Summary 36 Chapter 4: Case Study: Active–Passive Sets 39 4.1 Object-Oriented Design 39 4.2 Functional Values 41 4.3 Functional Objects 43 4.4 Summary 44 Chapter 5: Pattern Matching and Algebraic Data Types 47 5.1 Functional Switch 47 5.2 Tuples 48 5.3 Options 50 5.4 Revisiting Functional Lists 51 5.5 Trees 53 5.6 Illustration: List Zipper 56 5.7 Extractors 59 5.8 Summary 60 Chapter 6: Recursive Programming 63 6.1 The Need for Recursion 63 6.2 Recursive Algorithms 65 6.3 Key Principles of Recursive Algorithms 67 6.4 Recursive Structures 69 6.5 Tail Recursion 71 6.6 Examples of Tail Recursive Functions 73 6.7 Summary 77 Chapter 7: Recursion on Lists 79 7.1 Recursive Algorithms as Equalities 79 7.2 Traversing Lists 80 7.3 Returning Lists 82 7.4 Building Lists from the Execution Stack 84 7.5 Recursion on Multiple/Nested Lists 85 7.6 Recursion on Sublists Other Than the Tail 88 7.7 Building Lists in Reverse Order 90 7.8 Illustration: Sorting 92 7.9 Building Lists Efficiently 94 7.10 Summary 96 Chapter 8: Case Study: Binary Search Trees 99 8.1 Binary Search Trees 99 8.2 Sets of Integers as Binary Search Trees 100 8.3 Implementation Without Rebalancing 102 8.4 Self-Balancing Trees 107 8.5 Summary 113 Chapter 9: Higher-Order Functions 115 9.1 Functions as Values 115 9.2 Currying 118 9.3 Function Literals 120 9.4 Functions Versus Methods 123 9.5 Single-Abstract-Method Interfaces 124 9.6 Partial Application 125 9.7 Closures 130 9.8 Inversion of Control 133 9.9 Summary 133 Chapter 10: Standard Higher-Order Functions 137 10.1 Functions with Predicate Arguments 137 10.2 map and foreach 140 10.3 atMap 141 10.4 fold and reduce 146 10.5 iterate, tabulate, and unfold 148 10.6 sortWith, sortBy, maxBy, and minBy 149 10.7 groupBy and groupMap 150 10.8 Implementing Standard Higher-Order Functions 152 10.9 foreach, map, atMap, and for-Comprehensions 152 10.10 Summary 155 Chapter 11: Case Study: File Systems as Trees 157 11.1 Design Overview 157 11.2 A Node-Searching Helper Function 158 11.3 String Representation 158 11.4 Building Trees 160 11.5 Querying 164 11.6 Navigation 168 11.7 Tree Zipper 169 11.8 Summary 172 Chapter 12: Lazy Evaluation 173 12.1 Delayed Evaluation of Arguments 173 12.2 By-Name Arguments 174 12.3 Control Abstraction 176 12.4 Internal Domain-Specifc Languages 179 12.5 Streams as Lazily Evaluated Lists 180 12.6 Streams as Pipelines 182 12.7 Streams as Infinite Data Structures 184 12.8 Iterators 184 12.9 Lists, Streams, Iterators, and Views 187 12.10 Delayed Evaluation of Fields and Local Variables 190 12.11 Illustration: Subset-Sum 191 12.12 Summary 193 Chapter 13: Handling Failures 195 13.1 Exceptions and Special Values 195 13.2 Using Option 197 13.3 Using Try 198 13.4 Using Either 199 13.5 Higher-Order Functions and Pipelines 201 13.6 Summary 204 Chapter 14: Case Study: Trampolines 205 14.1 Tail-Call Optimization 205 14.2 Trampolines for Tail-Calls 206 14.3 Tail-Call Optimization in Java 207 14.4 Dealing with Non-Tail-Calls 209 14.5 Summary 213 A Brief Interlude 215 Chapter 15: Types (and Related Concepts) 217 15.1 Typing Strategies 217 15.2 Types as Sets 222 15.3 Types as Services 223 15.4 Abstract Data Types 224 15.5 Type Inference 225 15.6 Subtypes 229 15.7 Polymorphism 232 15.8 Type Variance 235 15.9 Type Bounds 241 15.10 Type Classes 245 15.11 Summary 250 Part II. Concurrent Programming 253 Chapter 16: Concepts of Concurrent Programming 255 16.1 Non-sequential Programs 255 16.2 Concurrent Programming Concepts 258 16.3 Summary 259 Chapter 17: Threads and Nondeterminism 261 17.1 Threads of Execution 261 17.2 Creating Threads Using Lambda Expressions 263 17.3 Nondeterministic Behavior of Multithreaded Programs 263 17.4 Thread Termination 264 17.5 Testing and Debugging Multithreaded Programs 266 17.6 Summary 268 Chapter 18: Atomicity and Locking 271 18.1 Atomicity 271 18.2 Non-atomic Operations 273 18.3 Atomic Operations and Non-atomic Composition 274 18.4 Locking 278 18.5 Intrinsic Locks 279 18.6 Choosing Locking Targets 281 18.7 Summary 283 Chapter 19: Thread-Safe Objects 285 19.1 Immutable Objects 285 19.2 Encapsulating Synchronization Policies 286 19.3 Avoiding Reference Escape 288 19.4 Public and Private Locks 289 19.5 Leveraging Immutable Types 290 19.6 Thread-Safety 293 19.7 Summary 295 Chapter 20: Case Study: Thread-Safe Queue 297 20.1 Queues as Pairs of Lists 297 20.2 Single Public Lock Implementation 298 20.3 Single Private Lock Implementation 301 20.4 Applying Lock Splitting 303 20.5 Summary 305 Chapter 21: Thread Pools 307 21.1 Fire-and-Forget Asynchronous Execution 307 21.2 Illustration: Parallel Server 309 21.3 Different Types of Thread Pools 312 21.4 Parallel Collections 314 21.5 Summary 318 Chapter 22: Synchronization 321 22.1 Illustration of the Need for Synchronization 321 22.2 Synchronizers 324 22.3 Deadlocks 325 22.4 Debugging Deadlocks with Thread Dumps 328 22.5 The Java Memory Model 330 22.6 Summary 335 Chapter 23: Common Synchronizers 337 23.1 Locks 337 23.2 Latches and Barriers 339 23.3 Semaphores 341 23.4 Conditions 343 23.5 Blocking Queues 349 23.6 Summary 353 Chapter 24: Case Study: Parallel Execution 355 24.1 Sequential Reference Implementation 355 24.2 One New Thread per Task 356 24.3 Bounded Number of Threads 357 24.4 Dedicated Thread Pool 359 24.5 Shared Thread Pool 360 24.6 Bounded Thread Pool 361 24.7 Parallel Collections 362 24.8 Asynchronous Task Submission Using Conditions 362 24.9 Two-Semaphore Implementation 367 24.10 Summary 368 Chapter 25: Futures and Promises 369 25.1 Functional Tasks 369 25.2 Futures as Synchronizers 371 25.3 Timeouts, Failures, and Cancellation 374 25.4 Future Variants 375 25.5 Promises 375 25.6 Illustration: Thread-Safe Caching 377 25.7 Summary 379 Chapter 26: Functional-Concurrent Programming 381 26.1 Correctness and Performance Issues with Blocking 381 26.2 Callbacks 384 26.3 Higher-Order Functions on Futures 385 26.4 Function atMap on Futures 388 26.5 Illustration: Parallel Server Revisited 390 26.6 Functional-Concurrent Programming Patterns 393 26.7 Summary 397 Chapter 27: Minimizing Thread Blocking 399 27.1 Atomic Operations 399 27.2 Lock-Free Data Structures 402 27.3 Fork/Join Pools 405 27.4 Asynchronous Programming 406 27.5 Actors 407 27.6 Reactive Streams 411 27.7 Non-blocking Synchronization 412 27.8 Summary 414 Chapter 28: Case Study: Parallel Strategies 417 28.1 Problem Definition 417 28.2 Sequential Implementation with Timeout 419 28.3 Parallel Implementation Using invokeAny 420 28.4 Parallel Implementation Using CompletionService 421 28.5 Asynchronous Implementation with Scala Futures 422 28.6 Asynchronous Implementation with CompletableFuture 426 28.7 Caching Results from Strategies 427 28.8 Summary 431 Appendix A. Features of Java and Kotlin 433 A.1 Functions in Java and Kotlin 433 A.2 Immutability 436 A.3 Pattern Matching and Algebraic Data Types 437 A.4 Recursive Programming 439 A.5 Higher-Order Functions 440 A.6 Lazy Evaluation 446 A.7 Handling Failures 449 A.8 Types 451 A.9 Threads 453 A.10 Atomicity and Locking 454 A.11 Thread-Safe Objects 455 A.12 Thread Pools 457 A.13 Synchronization 459 A.14 Futures and Functional-Concurrent Programming 460 A.15 Minimizing Thread Blocking 461 Glossary 463 Index 465

    £37.79

  • Practical ObjectOriented Design

    Pearson Education (US) Practical ObjectOriented Design

    2 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

    2 in stock

    £34.19

  • Beginning Programming AllinOne For Dummies

    John Wiley & Sons Inc Beginning Programming AllinOne For Dummies

    2 in stock

    Book SynopsisTable of ContentsIntroduction 1 About This Book 1 Foolish Assumptions 2 Icons Used in This Book 2 Beyond the Book 3 Where to Go from Here 3 Book 1: Getting Started with Programming 5 Chapter 1: Getting Started Programming a Computer 7 How Computer Programming Works 8 Identifying the problem 8 Defining the steps 9 The History of Computer Programming 10 Talking to a processor in machine language 11 Using assembly language as a shortcut to machine language 12 Hiding the details of a computer with a high-level language 15 Combining the best of both worlds with the C programming language 15 Weighing the pros and cons of programming languages 16 Figuring Out Programming 18 Desire beats technical training every time 19 Picking a computer and an operating system 19 Writing programs with an editor 21 Converting source code with an assembler or compiler 23 Translating source code with an interpreter 25 Combining a compiler with an interpreter to create p-code 25 Taking the time to understand 26 Chapter 2: Different Methods for Writing Programs 29 Spaghetti Programming 31 Structured Programming 34 The three parts of structured programming 34 Top-down programming 36 Event-Driven Programming 38 Designing a user interface 41 Writing event handlers 42 Writing your program 44 Object-Oriented Programming 44 Isolating data 46 Simplifying modifications 47 Using Protocol-Oriented Programming 49 Design Patterns 50 Chapter 3: Types of Programming Languages 53 Your First Language 54 BASICally disrespected 55 Visual programming with Scratch 56 Programming robots with LEGO Mindstorms 57 Learning object-oriented programming with Alice 57 Programming a killer robot 58 Curly-Bracket Languages 60 Learning programming with C 60 Adding object-oriented programming with C++ 62 Gaining true portability with Java 63 Programming more safely with C# 64 Choosing a curly-bracket language 66 Artificial Intelligence Languages 67 Scripting Languages 71 Automating a program 72 Customizing a program 73 Transferring data among multiple programs 74 Creating stand-alone programs 74 Database Programming Languages 75 Comparing Programming Languages 76 Chapter 4: Programming Tools 77 Choosing a Compiler 78 Defining your needs for a compiler 79 Evaluating the technical features of a compiler 80 Finding an Interpreter 84 Compiling to a Virtual Machine 86 Writing a Program with an Editor 88 Stand-alone editors 88 Integrated development environments 90 Fixing a Program with a Debugger 91 Stepping line-by-line 92 Watching variables 95 Saving Time with Third-Party Components 96 Optimizing a Program with a Profiler 97 Managing Source Code 97 Creating a Help File 99 Installing a Program 99 Dissecting Programs with a Disassembler 99 Book 2: Programming Basics 101 Chapter 1: How Programs Work 103 Using Keywords as Building Blocks 105 Organizing a Program 108 Dividing a Program into Subprograms 109 Dividing a Program into Objects 113 Creating a User Interface 115 Chapter 2: Variables, Data Types, and Constants 119 Declaring Variables 120 Variable naming conventions 121 Creating variables in a command 122 Declaring the data type of a variable 124 Using Different Data Types 126 Storing Data in a Variable 130 Retrieving Data from a Variable 132 Using Constant Values 133 Defining the Scope of a Variable 135 Handling global variables with care 136 Restricting scope to a module 137 Isolating variables in a subprogram 138 Passing data among subprograms 139 Chapter 3: Manipulating Data 141 Storing Data with the Assignment Operator 142 Using Math to Manipulate Numbers 143 Organizing equations with operator precedence 144 Using built-in math functions 146 Manipulating Strings 147 Finding Strings with Regular Expressions 148 Pattern-matching with the single character (.) wildcard 149 Pattern-matching for specific characters 149 Pattern-matching with the multiple-character (*) and plus (+) wildcards 150 Pattern-matching with ranges 151 Using Comparison Operators 153 Using Boolean Operators 156 Using the Not operator 156 Using the And operator 157 Using the Or operator 158 Using the Xor operator 159 Converting Data Types 160 Chapter 4: Making Decisions by Branching 163 Picking One Choice with the IF-THEN Statement 164 Picking Two Choices with the IF-THEN-ELSE Statement 166 Picking Three or More Choices with the IF-THEN-ELSEIF Statement 168 Checking a condition for each set of commands 168 Offering three or more choices 170 Playing with Multiple Boolean Operators 171 Making Multiple Choices with the SELECT CASE Statement 174 Matching multiple values in a SELECT CASE statement 177 Checking a range of values 178 Comparing values 179 Chapter 5: Repeating Commands by Looping 181 Looping a Fixed Number of Times with the FOR-NEXT Loop 182 Using a FOR-NEXT loop variable 183 Counting by a different range 185 Counting by different increments 186 Counting backward 187 Counting over arrays and other items 188 Looping Zero or More Times with the WHILE Loop 189 Looping at Least Once with the DO Loop 192 Playing with Nested Loops 193 Prematurely Exiting from a Loop 195 Checking Your Loops 195 Chapter 6: Breaking a Large Program into Subprograms 197 Creating and Using Subprograms 199 Creating a subprogram 200 “Calling” a subprogram 201 Passing Parameters 203 Passing parameters by reference 206 Storing values in a subprogram name 210 Repeating a Subprogram with Recursion 212 Chapter 7: Breaking a Large Program into Objects 215 How Object-Oriented Programming Works 216 Encapsulation Isolates Data and Subprograms 219 Shielding data inside an object 221 Grouping methods inside of an object 221 Protecting code from other programmers 222 Sharing Code with Inheritance 223 Polymorphism: Modifying Code without Changing Its Name 226 Design Patterns 228 Object-Oriented Languages 230 Hybrid languages 231 Pure languages 231 Disadvantages of object-oriented programming 232 Real-Life Programming Examples 233 Defining an object with a class 233 Creating an object from a class 236 Running methods stored in an object 236 Inheriting an object 238 Using method overloading to rewrite an inherited subprogram 239 Chapter 8: Reading and Saving Files 243 Storing Data in Text Files 243 Creating a text file 246 Reading a text file 247 Storing Fixed-Size Data in Random-Access Files 250 Writing data 251 Reading data 252 Storing Varying-Size Data in Untyped Files 253 Writing data 254 Reading data 255 Using Database Files 257 Looking at the structure of a database 257 Connecting to a database 259 Chapter 9: Documenting Your Program 263 Adding Comments to Source Code 264 Identifying the two types of comments 265 Describing code and algorithms 268 Documentation 270 Debugging 271 Writing Software Documentation 272 Documentation types 272 Documentation tools 274 Help files 275 Chapter 10: Principles of User Interface Design 277 The Evolution of User Interfaces 278 Command-line interface 278 Menus 278 Graphical user interface 280 Elements of a User Interface 281 Displaying commands to a user interface 281 Giving data to the user interface 284 Showing information back to the user 288 Organizing a user interface 290 Designing a User Interface 291 Know the user 291 Hide/disable unusable options 292 Tolerate mistakes 293 Be consistent 294 Give the user freedom to customize the user interface 295 Make navigation easy 295 Chapter 11: Debugging and Testing 297 Common Types of Programming Errors 297 Debugging with Comments and Print Statements 300 Breakpoints, Stepping, and Watching 302 Stepping through code 304 Watching variables 305 Testing Code 306 Unit tests 307 Integration tests 308 User interface testing 309 Book 3: Data Structures 311 Chapter 1: Structures and Arrays 313 Using Structures 314 Storing data 315 Retrieving data 315 Using an Array 316 Defining the size 317 Storing data 320 Retrieving data 321 Working with Resizable Arrays 321 BASIC 322 C# 323 Swift 323 Working with Multidimensional Arrays 323 Creating a multidimensional array 324 Storing and retrieving data 325 Using Structures with Arrays 325 Drawbacks of Arrays 327 Data types 328 Searching and sorting 328 Adding and deleting 329 Identifying the location of data in an array 330 Chapter 2: Sets and Linked Lists 333 Using Sets 334 Adding and deleting data in a set 335 Checking for membership 336 Avoiding duplicate data 337 Manipulating two sets 337 Using Linked Lists 342 Creating a linked list 343 Modifying a linked list 344 Creating a double linked list 345 Drawbacks of Sets and Linked Lists 346 Problems with pointers 347 Problems with accessing data 347 Chapter 3: Collections and Dictionaries 351 Using a Collection 352 Adding data to a collection 352 Deleting data from a collection 354 Identifying data with keys 355 Searching and retrieving data 356 Using Dictionaries 358 Adding data to a dictionary 358 Searching and retrieving data from a dictionary 359 Understanding Hash Tables 360 Converting keys with a hash function 360 Hash function collisions 362 Chapter 4: Stacks, Queues, and Deques 367 Using Stacks 368 Adding data to a stack 369 Removing data from a stack 370 Counting and searching a stack 371 Using Queues 372 Adding data to a queue 373 Removing data from a queue 374 Counting and searching a queue 375 Using Deques 376 Chapter 5: Graphs and Trees 381 Understanding Graphs 383 Types of graphs 384 Uses for graphs 385 Creating Trees 386 Ordered trees 387 Binary trees 388 B-trees 389 Taking Action on Trees 390 Traversing a tree to search for data 390 Adding new data 392 Deleting data 393 Pruning and grafting sub-trees 394 Book 4: Algorithms 397 Chapter 1: Sorting Algorithms 399 Using Bubble Sort 400 Using Selection Sort 402 Using Insertion Sort 403 Using Shell Sort 405 Using Heap Sort 406 Using Merge Sort 410 Using Quick Sort 411 Comparing Sorting Algorithms 412 Chapter 2: Searching Algorithms 415 Sequential Search 416 Backward or forward searching 417 Block searching 418 Binary searching 419 Interpolation searching 420 Using Indexes 422 Creating an index 422 Clustered and unclustered indexes 423 Problems with indexes 424 Adversarial Search 424 Depth versus time 426 Alpha-beta pruning 426 Looking up a library of good moves 427 Chapter 3: String Searching 429 Sequential Text Search 430 The Boyer-Moore algorithm 431 The Rabin–Karp algorithm 431 The Shift Or algorithm 433 The finite automaton algorithm 435 Searching with Regular Expressions 436 Searching for single character patterns 436 Searching for multiple character patterns 437 Searching for alternate patterns 438 Searching Phonetically 438 Chapter 4: Data Compression Algorithms 441 Lossless Data Compression Algorithms 442 Run-length encoding 442 The Burrows–Wheeler transform algorithm 442 Dictionary encoding 445 Lossy Data Compression 449 Chapter 5: Encryption Algorithms 451 How Encryption Works 451 The Basics of Encryption 453 Stream ciphers 456 Block ciphers 457 Symmetric/Asymmetric Encryption Algorithms 459 Cracking Encryption 463 Brute-force attacks 463 Dictionary attacks 464 Plaintext and ciphertext attacks 466 Book 5: Web Programming 469 Chapter 1: HyperText Markup Language 471 The Structure of an HTML Document 472 Creating a title 472 Creating the body text 472 Aligning text 474 Emphasizing text 475 Adding color 476 Changing the font size 477 Adding comments 478 Adding Graphics 478 Defining the Background 479 Creating Hyperlinks 480 Defining an anchor point 480 Linking to an anchor point 480 Making Tables 481 Defining a table 481 Defining a table heading 482 Creating table rows and data 483 Displaying a table caption, header, and footer 484 Chapter 2: CSS 487 The Structure of a Stylesheet 488 Creating Style Classes 489 Separating Styles in Files 491 Cascading Stylesheets 493 Chapter 3: JavaScript 495 The Structure of a JavaScript Program 496 Creating Comments 497 Declaring Variables 498 Using Operators 498 Increment and decrement operators 500 Assignment operators 501 Branching Statements 501 Looping Statements 503 Creating Functions 504 Using Arrays 505 Designing User Interfaces 505 Creating dialog boxes 505 Creating windows 507 Chapter 4: PHP 509 Examining the Structure of a PHP Program 510 Creating Comments 510 Declaring Variables 511 Using Operators 512 Increment and decrement operators 513 Assignment operators 515 Branching Statements 515 Looping Statements 517 Creating Functions 518 Using Arrays 519 Creating Objects 520 Chapter 5: Ruby 523 The Structure of a Ruby Program 524 Creating Comments 524 Declaring Variables 525 Using Operators 526 Branching Statements 528 Looping Statements 530 Creating Functions 531 Using Data Structures 532 Creating Objects 534 Book 6: Programming Language Syntax 537 Chapter 1: C and C++ 539 Looking at the Structure of a C/C++ Program 540 Creating Comments 541 Declaring Variables 542 Declaring string data types 542 Declaring integer data types 543 Declaring floating-point data types 544 Declaring Boolean values 545 Using Operators 545 Increment and decrement operators 546 Assignment operators 548 Branching Statements 548 Looping Statements 550 Creating Functions 551 Data Structures 553 Creating a structure 553 Creating enumerations 554 Creating an array 554 Using Objects 555 Chapter 2: Java and C# 557 Looking at the Structure of a Java/C# Program 558 Creating Comments 559 Declaring Variables 559 Declaring string data types 560 Declaring integer data types 560 Declaring floating-point data types 561 Declaring Boolean variables 562 Using Operators 562 Increment and decrement operators 564 Assignment operators 564 Branching Statements 565 Looping Statements 568 Creating Functions 569 Data Structures 571 Creating a C# structure 571 Creating an array 572 Creating a Java linked list 573 Creating C# data structures 574 Using Objects 574 Chapter 3: Perl and Python 577 Reviewing the Structure of a Perl or Python Program 578 Creating Comments 579 Defining Variables 580 Using Operators 580 Increment and decrement operators 582 Assignment operators 583 Branching Statements 584 Looping Statements 586 Creating Functions 588 Making Data Structures 588 Perl data structures 589 Python data structures 590 Using Objects 592 Chapter 4: Kotlin 595 Looking at the Structure of a Kotlin Program 596 Creating Comments 596 Declaring Variables 597 Declaring string data types 597 Declaring integer data types 598 Declaring floating-point data types 599 Declaring Boolean values 599 Declaring Constants 600 Using Operators 600 Branching Statements 601 Looping Statements 605 Creating Functions 606 Creating Data Structures 608 Creating a list 609 Creating an array 610 Creating a set 610 Creating Objects 611 Chapter 5: Swift and SwiftUI 613 Considering the Structure of a Swift Program 614 Understanding SwiftUI 614 Creating a SwiftUI user interface 616 Understanding SwiftUI state variables 616 Creating Comments 618 Declaring Variables 618 Declaring string data types 619 Declaring integer data types 620 Declaring decimal data types 620 Declaring Boolean values 621 Declaring Constants 621 Using Operators 622 Branching Statements 623 Looping Statements 627 Creating Functions 628 Data Structures 630 Creating an array 630 Creating a dictionary 632 Creating a set 633 Creating Objects 634 Chapter 6: Flutter and Dart 637 Working with Flutter 638 Understanding the structure of a Flutter program 638 Working with widgets in Flutter 639 Aligning widgets in rows and columns 642 Understanding the Dart Language 645 Creating comments 645 Declaring variables 646 Using operators 646 Using branching statements 649 Using looping statements 650 Creating functions 652 Creating data structures 653 Using objects 656 Book 7: Applications 657 Chapter 1: Database Management 659 Understanding the Basics of Databases 659 Free-form databases 660 Flat-file databases 661 Relational databases 663 Manipulating Data 667 Writing database commands 669 The SQL language 670 Data integrity 671 Data mining 672 Database Programming 672 Chapter 2: Bioinformatics 675 The Basics of Bioinformatics 676 Representing molecules 676 Manipulating molecules in a computer 677 Database Searches 679 Bioinformatics Programming 681 Chapter 3: Computer Security 685 Stopping Malware 686 Viruses 687 Worms 687 Trojan horses 688 Spyware 689 Distributed denial-of-service attacks 690 Stopping Hackers 691 Intrusion detection systems 692 Rootkit detectors 693 Forensics 694 Secure Computing 695 Patching as an afterthought 695 Security in coding 696 Security by design 697 Chapter 4: Artificial Intelligence 699 Problem Solving 700 Game-playing 701 Natural language processing 702 Speech recognition 704 Image recognition 705 Machine Learning 706 Bayesian probability 707 Neural networks 707 Applications of Artificial Intelligence 710 Chapter 5: Mobile and Wearable Computing 711 Understanding the Different Generations of Computing 712 Giving Data to the User 714 Getting Data from the User 716 Tracking Motion and Location 717 Tracking Real-Time Health Data 718 Looking to the Future of Augmented Reality and Wearable Computers 718 Chapter 6: Game Engines 721 Understanding Game Engines 722 Picking a Game Engine 723 Programming a Game Engine 724 Exploring the Future Uses of Game Engines 726 Filmmaking 726 Architecture and engineering simulations 727 Marketing and advertising 728 Chapter 7: The Future of Computer Programming 731 Picking a Programming Language 732 Picking an Operating System 733 Doing Cross-Platform Programming 735 The portability of C 735 Cross-platform languages 736 Virtual machines 737 Software as a service 738 Data science 739 Website programming 740 Macro programming 740 Robotics programming 741 Blockchain programming 742 Defining Your Future in Programming 743 Teaching yourself other languages 743 Combining other interests besides programming 744 Getting experience and knowledge 744 Index 747

    2 in stock

    £24.64

  • Web Development with Node and Express

    O'Reilly Media Web Development with Node and Express

    3 in stock

    Book SynopsisBuild dynamic web applications with Express, a key component of the Node/JavaScript development stack. In this updated edition, author Ethan Brown teaches you Express fundamentals by walking you through the development of an example application.

    3 in stock

    £33.74

  • C Programming in easy steps: Updated for the GNU

    In Easy Steps Limited C Programming in easy steps: Updated for the GNU

    1 in stock

    Book SynopsisC Programming in easy steps, 5th edition has an easy-to-follow style that will appeal to anyone who wants to begin programming in C, from programmers moving from another programming language, to the student who is studying C programming at school or college, or to those seeking a career in computing who need a fundamental understanding of procedural programming. C Programming in easy steps, 5th edition begins by explaining how to download and install a free C compiler so that you can quickly begin to create your own executable programs by copying the book''s examples. You need have no previous knowledge of any programming language so it''s ideal for the newcomer to computer programming. Each chapter builds your knowledge of C. C Programming in easy steps, 5th edition contains separate chapters on the major features of the C language. There are complete example programs that demonstrate each aspect of C together with screenshots that illustrate the output when that program has been executed. The free, downloadable sample code provided via the In Easy Steps website all has coloured syntax-highlighting for clearer understanding. By the end of this book you will have gained a sound understanding of the C language and be able to write your own C programs and compile them into executable files that can be run on any compatible computer. Fully updated and revised since the fourth edition, which was published in April 2012 now covers the GNU Compiler version 6.3.0 and Windows 10.

    1 in stock

    £11.39

  • Embracing Modern C Safely

    Pearson Education (US) Embracing Modern C Safely

    1 in stock

    Book SynopsisDr. John Lakos is a senior architect and mentor for software development at Bloomberg LP, where he created the BDE team (c. 2001), which maintains Bloomberg's open-source foundation libraries for C++ development worldwide. He is the author of Large-Scale C++ Software Design and Large-Scale C++ Volume I: Process and Architecture (both from Addison-Wesley), and is an active voting member of the C++ Standards Committee. Vittorio Romeo is a senior software engineer at Bloomberg, building mission-critical C++ middleware and training colleagues on modern C++. He is also the creator of many open-source C++ libraries and games. Dr. Rostislav Khlebnikov is a team lead and senior software engineer in Bloomberg's BDE team, where he directs the development of high-performance C++ foundation software. Alisdair Meredith is a senior software engineer in Bloomberg's BDE team and a long-standing member of the C++ Standards CommitteTable of ContentsForeword by Shawn Edwards xiiiForeword by Andrei Alexandrescu xvAcknowledgments xixAbout the Authors xxv Chapter 0: Introduction 1 What Makes This Book Different 1Scope for the First Edition 2The EMC++S Guiding Principles 3What Do We Mean by Safely? 4A Safe Feature 5A Conditionally Safe Feature 5An Unsafe Feature 6Modern C++ Feature Catalog 6How to Use This Book 8 Chapter 1: Safe Features 11 1.1 C++11 11Attribute Syntax | Generalized Attribute Support 12Consecutive >s | Consecutive Right-Angle Brackets 21decltype | Operator for Extracting Expression Types 25Defaulted Functions | Using = default for Special Member Functions 33Delegating Ctors | Constructors Calling Other Constructors 46Deleted Functions | Using = delete for Arbitrary Functions 53explicit Operators | Explicit Conversion Operators 61Function static '11 | Thread-Safe Function-Scope static Variables 68Local Types '11 | Local/Unnamed Types as Template Arguments 83long long | The long long (≥64 bits) Integral Type 89noreturn | The [[noreturn]] Attribute 95nullptr | The Null-Pointer-Literal Keyword 99override | The override Member-Function Specifier 104Raw String Literals | Syntax for Unprocessed String Contents 108static_assert | Compile-Time Assertions 115Trailing Return | Trailing Function Return Types 124Unicode Literals | Unicode String Literals 129using Aliases | Type/Template Aliases (Extended typedef) 133 1.2 C++14 138Aggregate Init '14 | Aggregates Having Default Member Initializers 138Binary Literals | Binary Literals: The 0b Prefix 142deprecated | The [[deprecated]] Attribute 147Digit Separators | The Digit Separator (') 152Variable Templates | Templated Variable Declarations/Definitions 157 Chapter 2: Conditionally Safe Features 167 2.1 C++11 167alignas | The alignas Specifier 168alignof | The alignof Operator 184auto Variables | Variables of Automatically Deduced Type 195Braced Init | Braced-Initialization Syntax: {} 215constexpr Functions | Compile-Time Invocable Functions 257constexpr Variables | Compile-Time Accessible Variables 302Default Member Init | Default class/union Member Initializers 318enum class | Strongly Typed, Scoped Enumerations 332extern template | Explicit-Instantiation Declarations 353Forwarding References | Forwarding References (T&&) 377Generalized PODs '11 | Trivial and Standard-Layout Types 401Inheriting Ctors | Inheriting Base-Class Constructors 535initializer_list | List Initialization: std::initializer_list 553Lambdas | Anonymous Function Objects (Closures) 573noexcept Operator | Asking if an Expression Cannot throw 615Opaque enums | Opaque Enumeration Declarations 660Range for | Range-Based for Loops 679Rvalue References | Move Semantics and Rvalue References (&&) 710Underlying Type '11 | Explicit Enumeration Underlying Type 829User-Defined Literals | User-Defined Literal Operators 835Variadic Templates | Variable-Argument-Count Templates 873 2.2 C++14 958constexpr Functions '14 | Relaxed Restrictions on constexpr Functions 959Generic Lambdas | Lambdas Having a Templated Call Operator 968Lambda Captures | Lambda-Capture Expressions 986 Chapter 3: Unsafe Features 997 3.1 C++11 997carries_dependency | The [[carries_dependency]] Attribute 998final | Prohibiting Overriding and Derivation 1007friend '11 | Extended friend Declarations 1031inline namespace | Transparently Nested Namespaces 1055noexcept Specifier | The noexcept Function Specification 1085Ref-Qualifiers | Reference-Qualified Member Functions 1153union '11 | Unions Having Non-Trivial Members 1174 3.2 C++14 1182auto Return | Function (auto) Return-Type Deduction 1182decltype(auto) | Deducing Types Using decltype Semantics 1205 Afterword: Looking Back and Looking Forward 1215 Glossary 1217Bibliography 1281Index 1305

    1 in stock

    £39.89

  • Kafka in Action

    Manning Publications Kafka in Action

    7 in stock

    Book SynopsisKafka in Action is a practical, hands-on guide to building Kafka-based data pipelines. Filled with real-world use cases and scenarios, this book probes Kafka's most common use cases, ranging from simple logging through managing streaming data systems for message routing, analytics, and more. In systems that handle big data, streaming data, or fast data, it's important to get your data pipelines right. Apache Kafka is a wicked-fast distributed streaming platform that operates as more than just a persistent log or a flexible message queue. Key Features · Understanding Kafka's concepts · Implementing Kafka as a message queue · Setting up and executing basic ETL tasks · Recording and consuming streaming data · Working with Kafka producers and consumers from Java applications · Using Kafka as part of a large data project team · Performing Kafka developer and admin tasks Written for intermediate Java developers or data engineers. No prior knowledge of Kafka is required. About the technology Apache Kafka is a distributed streaming platform for logging and streaming data between services or applications. With Kafka, it's easy to build applications that can act on or react to data streams as they flow through your system. Operational data monitoring, large scale message processing, website activity tracking, log aggregation, and more are all possible with Kafka. Dylan Scott is a software developer with over ten years of experience in Java and Perl. His experience includes implementing Kafka as a messaging system for a large data migration, and he uses Kafka in his work in the insurance industry.

    7 in stock

    £33.99

  • Python Workout: 50 Essential Exercises

    Manning Publications Python Workout: 50 Essential Exercises

    1 in stock

    Book SynopsisPython Workout presents 50 exercises designed to deepen the reader’s skill with Python. Readers will not only tackle exercises using built-in data structures, but also more advanced techniques, such as functional programming, object-oriented programming, iterators, and generators. With each engaging challenge, readers will practice a new skill and learn how to apply it to everyday coding tasks. Key Features 50 hands-on exercises and solutions Basic Python sequence types Python dictionaries and sets Functional programming in Python Creating your own classes Working with Python objects Generator functions Intended for readers with basic Python skills. About the technology Python is a versatile, elegant, general purpose programming language. Essential for data analysis, web development, artificial intelligence, games, desktop apps, and more, Python skills are a hot commodity. Reuven M. Lerner, an independent consultant for more than two decades, teaches Python, data science, and Git to companies around the world. His Better developers newsletter and blog are read by thousands of Python developers each week. Reuven has written a monthly column, “At the Forge,” for Linux Journal since 1996 and is a panellist on the weekly Freelancers Show podcast. Reuven lives with his wife and three children in Modi’in, Israel, and can be reached at https://lerner.co.il/ or on Twitter at @reuvenmlerner.

    1 in stock

    £35.99

  • Microsoft Visual C Step by Step

    Pearson Education (US) Microsoft Visual C Step by Step

    3 in stock

    Book SynopsisJohn Sharp is a principal technologist for CM Group Ltd, part of the Civica Group, a software development and consultancy company in the United Kingdom. He is well versed as a software consultant, developer, author, and trainer, with more than 35 years of experience, ranging from Pascal programming on CP/M and C/Oracle application development on various flavors of UNIX to the design of C# and JavaScript distributed applications and development on Windows 11 and Microsoft Azure. He also spends much of his time writing courseware for Microsoft, focusing on areas such as data science using R and Python, big data processing with Spark and CosmosDB, SQL Server, NoSQL, web services, Blazor, cross-platform development with frameworks such as Xamarin and MAUI, and scalable application architectures with Azure.Table of ContentsIntroduction PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO CHAPTER 1 Welcome to C# CHAPTER 2 Working with variables, operators, and expressions CHAPTER 3 Writing methods and applying scope CHAPTER 4 Using decision statements CHAPTER 5 Using compound assignment and iteration statements CHAPTER 6 Managing errors and exceptions PART II UNDERSTANDING THE C# OBJECT MODEL CHAPTER 7 Creating and managing classes and objects CHAPTER 8 Understanding values and references CHAPTER 9 Creating value types with enumerations and structures CHAPTER 10 Using arrays CHAPTER 11 Understanding parameter arrays CHAPTER 12 Working with inheritance CHAPTER 13 Creating interfaces and defining abstract classes CHAPTER 14 Using garbage collection and resource management PART III DEFINING EXTENSIBLE TYPES WITH C# CHAPTER 15 Implementing properties to access fields CHAPTER 16 Handling binary data and using indexers CHAPTER 17 Introducing generics CHAPTER 18 Using collections CHAPTER 19 Enumerating collections CHAPTER 20 Decoupling application logic and handling events CHAPTER 21 Querying in-memory data by using query expressions CHAPTER 22 Operator overloading PART IV BUILDING UNIVERSAL WINDOWS PLATFORM APPLICATIONS WITH C# CHAPTER 23 Improving throughput by using tasks CHAPTER 24 Improving response time by performing asynchronous operations CHAPTER 25 Implementing the user interface for a Universal Windows Platform app CHAPTER 26 Displaying and searching for data in a Universal Windows Platform app CHAPTER 27 Accessing a remote database from a Universal Windows Platform app

    3 in stock

    £38.24

  • C Programming Language The

    Pearson Education (US) C Programming Language The

    10 in stock

    Book SynopsisBjarne Stroustrup is the designer and original implementer of C++ and the author of Programming: Principles and Practice Using C++, 2nd Edition and The C++ Programming Language, among others. Having previously worked at Bell Labs, AT&T Labs - Research, and Texas A&M University, he is currently Managing Director in the technology division of Morgan Stanley in New York City. The recipient of numerous honors, including The National Academy of Engineering 2018 Charles Stark Draper Prize for Engineering for conceptualizing and developing the C++ programming language, Dr. Stroustrup is a member of the National Academy of Engineering, an AT&T Fellow, an AT&T Bell Laboratories Fellow, an IEEE Fellow, and an ACM FellTable of ContentsPreface to the Fourth Edition vPreface to the Third Edition ixPreface to the Second Edition xiPreface to the First Edition xii Part I: Introductory Material 1Chapter 1: Notes to the Reader 3Chapter 2: A Tour of C++: The Basics 37Chapter 3: A Tour of C++: Abstraction Mechanisms 59Chapter 4: A Tour of C++: Containers and Algorithms 87Chapter 5: A Tour of C++: Concurrency and Utilities 111 Part II: Basic Facilities 133 Chapter 6: Types and Declarations 135Chapter 7: Pointers, Arrays, and References 171Chapter 8: Structures, Unions, and Enumerations 201Chapter 9: Statements 225Chapter 10: Expressions 241Chapter 11: Select Operations 273Chapter 12: Functions 305Chapter 13: Exception Handling 343Chapter 14: Namespaces 389Chapter 15: Source Files and Programs 419 Part III: Abstraction Mechanisms 447Chapter 16: Classes 449Chapter 17: Construction, Cleanup, Copy, and Move 481Chapter 18: Overloading 527Chapter 19: Special Operators 549Chapter 20: Derived Classes 577Chapter 21: Class Hierarchies 613Chapter 22: Run-Time Type Information 641Chapter 23: Templates 665Chapter 24: Generic Programming 699Chapter 25: Specialization 721Chapter 26: Instantiation 741Chapter 27: Templates and Hierarchies 759Chapter 28: Metaprogramming 779Chapter 29: A Matrix Design 827 Part IV: The Standard Library 857Chapter 30: Standard Library Summary 859Chapter 31: STL Containers 885Chapter 32: STL Algorithms 927Chapter 33: STL Iterators 953Chapter 34: Memory and Resources 973Chapter 35: Utilities 1009Chapter 36: Strings 1033Chapter 37: Regular Expressions 1051Chapter 38: I/O Streams 1073Chapter 39: Locales 1109Chapter 40: Numerics 1159Chapter 41: Concurrency 1191Chapter 42: Threads and Tasks 1209Chapter 43: The C Standard Library 1253Chapter 44: Compatibility 1267 Index 1281

    10 in stock

    £56.69

  • SQL for Data Scientists

    John Wiley & Sons Inc SQL for Data Scientists

    3 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

    3 in stock

    £30.39

  • Quick Start Guide to Large Language Models

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

    1 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

    1 in stock

    £34.19

  • Cisco pyATS  Network Test and Automation Solution

    Pearson Education Cisco pyATS Network Test and Automation Solution

    2 in stock

    Book SynopsisJohn Capobianco has a dynamic and multifaceted career in IT and networking, marked by significant contributions to both the public and private sectors. Beginning his journey in the field as an aluminum factory worker, Capobianco's resilience and dedication propelled him through college, earning a diploma as a Computer Programmer Analyst from St. Lawrence College. This initial phase set the foundation for a career underpinned by continuous learning and achievement, evident from his array of certifications, including multiple Cisco certifications as well as Microsoft certification.   Transitioning from his early educational accomplishments, Capobianco's professional life has spanned over two decades, featuring roles that showcased his technical prowess and strategic vision. His work has significantly impacted both the public and private sectors, including notable positions at the Parliament of Canada, where he served as a Senior IT Planner and Integ

    2 in stock

    £40.49

  • Fundamentals of Java Programming

    Springer International Publishing AG Fundamentals of Java Programming

    3 in stock

    Book SynopsisMaking extensive use of examples, this textbook on Java programming teaches the fundamental skills for getting started in a command-line environment. Meant to be used for a one-semester course to build solid foundations in Java, Fundamentals of Java Programming eschews second-semester content to concentrate on over 180 code examples and 250 exercises.Key object classes (String, Scanner, PrintStream, Arrays, and File) are included to get started in Java programming. The programs are explained with almost line-by-line descriptions, also with chapter-by-chapter coding exercises.Teaching resources include solutions to the exercises, as well as digital lecture slides.Table of Contents1) Programming Basics 1 a) Java and the Java Virtual Machine 3 1.1 Computers and Their Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 The computer programs in your machine . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Java Virtual Machines - JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3 Code editing and code compiling . . . . . . . . . . . . . . . . . . . . . . . . . 6 b) Our First Programs 13 2.1 The First Program, “Hello, World!” . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.1 Method declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.3 System.out.println and System.out.print . . . . . . . . . . . . . . . . . . 17 2.1.4 Spacing in the source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Commenting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Using Multiple Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 • println versus print revisited . . . . . . . . . . . . . . . . . . . . . . . . . . 23 • Printing multiple-line texts on the screen . . . . . . . . . . . . . . . . . . . . 25 2.4.3 Escaping characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.4 Printing shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 c) Using Data for Computation 39 3.1 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.1 Data and their taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.2 Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.3 Variable declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.1.4 Naming variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.5 Value assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 The primitive data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.1 Quarterbacks program again . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3 Using Variables for Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.1 Number arithmetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.2 Formula evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.3 Our first calculation program . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.4 Mixing different number types . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.5 Computing the Body-Mass Index . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.3.6 Sum of integers from 1 to 100 `a la Gauss . . . . . . . . . . . . . . . . . . . . 61 3.3.7 Simplified expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.4 An Introduction to String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.4.1 String objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.4.2 String additions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.4.3 Escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.4 Connection with other types . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4 Reading Keyboard Input 83 4.1 The Class Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2 Reading input with a Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5 Decomposing Code into Components 99 5.1 Code Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1.1 Printing rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1.2 Quadrangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.3 Old MacDonald Had a Farm . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.1.4 The benefits of code decomposition . . . . . . . . . . . . . . . . . . . . . . . . 114 5.2 Using Multiple Program Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6 Passing Values to and from Methods 123 6.1 Passing Values to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.1.1 Methods that work with parameters . . . . . . . . . . . . . . . . . . . . . . . 123 6.1.2 Method overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.2 Receiving a Value from a Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.3 Class Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.3.1 Mathematical functions in Java . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.3.2 Application using Math methods . . . . . . . . . . . . . . . . . . . . . . . . . 146 2) Loops and Conditional Execution 157 7 For-Loops 159 7.1 Repetitive Code Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.2 Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.2.1 Simple iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.2.2 Iteration with an auxiliary variable . . . . . . . . . . . . . . . . . . . . . . . . 173 7.3 Double For-Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8 Using Conditions to Control the Flow 187 8.1 Condition and its evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 8.2 The If Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 8.2.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 8.2.2 Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 8.2.3 Special conditional evaluation rules . . . . . . . . . . . . . . . . . . . . . . . . 209 8.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.3.1 Computing max and min in a series of numbers . . . . . . . . . . . . . . . . . 211 8.3.2 A betting game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9 Formatted Printing using printf 225 9.1 Formatted Printing of Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.2 Formatted Printing of Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.3 Formatted Printing of Floating Point Numbers . . . . . . . . . . . . . . . . . . . . . 229 10 String Methods for Text Processing 237 10.1 String Methods for Information Extraction . . . . . . . . . . . . . . . . . . . . . . . 237 10.2 String Methods for Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 10.3 String methods for Pattern Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 10.4 String methods for creating new String objects . . . . . . . . . . . . . . . . . . . . 246 10.5 Class StringBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 11 Branching Using Switch Statements 259 11.1 Switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 11.2 Switching on a Char or a String Value . . . . . . . . . . . . . . . . . . . . . . . . . . 266 12 While and Do-while Loops 277 12.1 The While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 12.1.1 What is a while-loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 12.1.2 Collect numbers until the total reaches a target . . . . . . . . . . . . . . . . . 279 12.1.3 Integer overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 12.1.4 Vending machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 12.1.5 The Collatz Conjecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 12.1.6 From decimal to binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 12.2 Do-while statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 12.2.1 Do-while versus while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 12.2.2 Waiting for Godot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 12.2.3 Converting to binary, again . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 12.3 Terminating a Scanner of Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 12.4 Approximating the Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 III Arrays 311 13 Arrays 313 13.1 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.1.1 What is an array? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.1.2 Counting the number of occurrences . . . . . . . . . . . . . . . . . . . . . . . 314 13.2 Offset Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 13.2.1 Offset indexing to avoid wasteful use of array elements . . . . . . . . . . . . . 322 13.2.2 Offset indexing for BMI calculation . . . . . . . . . . . . . . . . . . . . . . . . 323 13.2.3 Character occurrence counting . . . . . . . . . . . . . . . . . . . . . . . . . . 325 13.2.4 Negative offset indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 13.3 Primality Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 13.4 Using Multiple Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 13.5 ArrayIndexOutOfBoundsException . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 14 Class Arrays, Resizing Arrays, and Arrays with Capacity 347 14.1 Class Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 14.2 Coordinated Array Modifications with Sustained Length . . . . . . . . . . . . . . . . 351 14.2.1 Reversing element order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 14.2.2 Cyclic shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 14.3 Modifications That Require Resizing . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 14.3.1 Insertion and deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 14.3.2 Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 14.4 args - the Argument Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 14.5 Searching in an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 14.5.1 Sequential search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 14.5.2 Sequential search in an array with elements in order . . . . . . . . . . . . . . 370 14.5.3 Binary search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 14.6 Arrays with Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 15 Multidimensional Arrays 385 15.1 Two-dimensional Rectangular Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 15.1.1 Multi-dimensional arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 15.1.2 Summation of over subsequences . . . . . . . . . . . . . . . . . . . . . . . . . 386 15.2 Matrix multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 15.2.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 15.2.2 Two dimensional rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 15.3 Jagged Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 IV Object Classes 401 16 Class File 403 16.1 An Introduction to Object Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 16.2 File Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 16.3 File methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 16.3.1 List of File methods we may use . . . . . . . . . . . . . . . . . . . . . . . . . 405 16.3.2 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 16.3.3 Listing of File objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 16.4 Scanner of a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 16.5 Writing to Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 17 Designing Object Classes 435 17.1 Using Object Classes for Packaging Data Elements . . . . . . . . . . . . . . . . . . . 435 17.1.1 The position of a game piece . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 17.1.2 Private instance variables and the toString method . . . . . . . . . . . . . . 440 17.1.3 Using constants in an object class . . . . . . . . . . . . . . . . . . . . . . . . 442 17.1.4 Information hiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 17.2 Bank Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 17.3 Array with Capacity (as an Object Class) . . . . . . . . . . . . . . . . . . . . . . . . 461 18 Interfaces, Subclasses, Inheritance, and Polymorphism 471 18.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 18.1.1 Interface as a template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 18.1.2 A simple pizza application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 18.1.3 The “simple” pizza collection class . . . . . . . . . . . . . . . . . . . . . . . . 473 18.1.4 The pizza collection main class . . . . . . . . . . . . . . . . . . . . . . . . . . 478 18.2 Subclasses and Superclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 18.2.1 Extending existing classes and interfaces . . . . . . . . . . . . . . . . . . . . . 480 18.2.2 Writing extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 18.3 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 18.4 Interface Comparable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 V Advanced Concepts 499 19 Cumulative Algorithms 501 19.1 What is a Cumulative Algorithm? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 19.2 Computing Recurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 19.3 Computing the Factorial Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 20 Recursive Algorithms 513 20.1 The Factorial Again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 20.2 GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 20.3 The Tower of Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

    3 in stock

    £58.49

  • Java in Two Semesters: Featuring JavaFX

    Springer International Publishing AG Java in Two Semesters: Featuring JavaFX

    2 in stock

    Book SynopsisThis easy-to-follow textbook teaches Java programming from first principles, as well as covering design and testing methodologies. The text is divided into two parts. Each part supports a one-semester module, the first part addressing fundamental programming concepts, and the second part building on this foundation, teaching the skills required to develop more advanced applications.This fully updated and greatly enhanced fourth edition covers the key developments introduced in Java 8, including material on JavaFX, lambda expressions and the Stream API.Topics and features: begins by introducing fundamental programming concepts such as declaration of variables, control structures, methods and arrays; goes on to cover the fundamental object-oriented concepts of classes and objects, inheritance and polymorphism; uses JavaFX throughout for constructing event-driven graphical interfaces; includes advanced topics such as interfaces and lambda expressions, generics, collection classes and exceptions; explains file-handling techniques, packages, multi-threaded programs, socket programming, remote database access and processing collections using streams; includes self-test questions and programming exercises at the end of each chapter, as well as two illuminating case studies; provides additional resources at its associated website (simply go to springer.com and search for "Java in Two Semesters"), including a guide on how to install and use the NetBeans™ Java IDE.Offering a gentle introduction to the field, assuming no prior knowledge of the subject, Java in Two Semesters is the ideal companion to undergraduate modules in software development or programming.Table of ContentsPart I: Semester One The First Step Building Blocks Selection Iteration Methods Arrays Classes and Objects Implementing Classes Inheritance Introducing JavaFX Case Study – Part 1 Case Study – Part 2 Part II: Semester Two Interfaces and Lambda Expressions Exceptions The Java Collections Framework Advanced JavaFX JavaFX: Interacting with the User Working with Files Packages Multi-Threaded Programs Advanced Case Study The Stream API Working with Sockets Java in Context

    2 in stock

    £49.40

  • Rheinwerk Verlag GmbH Swift

    3 in stock

    3 in stock

    £49.36

  • Modern C

    Manning Publications Modern C

    1 in stock

    Book SynopsisIf you think “Modern” and “C” don’t belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more! Modern C teaches you to take your C programming skills to new heights, whether you’re just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits. Key Features Fundamentals of C programming Operators and functions Performance techniques C library functions For more than four decades, C has proved its usefulness and staying power for everything from massive systems for mainframes, satellites, and internet browsers to tiny embedded systems in vending machines, credit card readers, and alarm clocks. Today you’ll find lightning-fast, elegant C programs running in smartphone kernels, databases, 3D movies, video games, and scores of other modern applications. For programmers comfortable writing simple programs in a language like Java, Python, Ruby, C#, C++, or C. Jens Gustedt has been a senior scientist at the French National Institute for Computer Science and Control (INRIA) since 1998, working in areas including algorithms, scientific experimentation, models for coarse-grained parallelism, and distributed locking. Currently, he’s conducting the Modular C project, which has given rise to libraries such as arbogast and EiLck.

    1 in stock

    £43.19

  • Modern C Up and Running

    APress Modern C Up and Running

    15 in stock

    Book SynopsisLearn how to program in modern C, from the basics through the advanced topics required for proficiency. This book is the fastest path to C fluency for anyone experienced in a general-purpose programming language. From start to finish, code examples highlight the idioms and best practices behind efficient, robust programs in a variety of areas.The book opens with a thorough coverage of syntax, built-in data types and operations, and program structure. C has quirks and presents challenges, which are covered in detail. The coverage of advanced features is what sets this book apart from others. Among the advanced topics covered are floating-point representation in the IEEE 754 standard; embedded assembly language in C code for overflow detection; regular expressions, assertions, and internationalization; WebAssembly through C; and software libraries for C and other clients. Memory  efficiency and safety are the two major challenges in C programming, andTable of Contents1. Program Structure2. Basic Data Types3. Aggregates and Pointers4. Storage Classes5. Input and Output6. Networking7. Concurrency and Parallelism8. Miscellaneous Topics

    15 in stock

    £46.74

© 2026 Book Curl

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

    Login

    Forgot your password?

    Don't have an account yet?
    Create account