{"title":"Programming and scripting languages: general Books","description":"","products":[{"product_id":"discovering-modern-c-9780136677642","title":"Discovering Modern C","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003ePeter Gottschling\u003c\/b\u003e is founder of SimuNova, a company that develops the Matrix Template Library (MTL4) and offers C++ training. He is a member of the ISO C++ standards committee, vice-chair of Germany's programming language standards committee, and founder of the C++ User Group in Dresden. He earned his Ph.D. in computer science at Technische Universität Dresden in 2002.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003ci\u003ePreface xix\u003cbr\u003eAcknowledgments xxv\u003cbr\u003eAbout the Author xxvii\u003c\/i\u003e \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 1: C++ Basics 1\u003c\/b\u003e \u003cbr\u003e1.1 Our First Program 1 \u003cbr\u003e1.2 Variables 4 \u003cbr\u003e1.3 Operators 12 \u003cbr\u003e1.4 Expressions and Statements 22 \u003cbr\u003e1.5 Functions 30 \u003cbr\u003e1.6 Error Handling 35 \u003cbr\u003e1.7 I\/O 41 \u003cbr\u003e1.8 Arrays, Pointers, and References 52 \u003cbr\u003e1.9 Structuring Software Projects 64 \u003cbr\u003e1.10 Exercises 69 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 2: Classes 71\u003c\/b\u003e \u003cbr\u003e2.1 Program for Universal Meaning, Not Technical Details 71 \u003cbr\u003e2.2 Members 73 \u003cbr\u003e2.3 Setting Values: Constructors and Assignments 78 \u003cbr\u003e2.4 Destructors 105 \u003cbr\u003e2.5 Method Generation Summary 111 \u003cbr\u003e2.6 Accessing Member Variables 112 \u003cbr\u003e2.7 Operator Overloading Design 117 \u003cbr\u003e2.8 Exercises 126 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 3: Generic Programming 129\u003c\/b\u003e \u003cbr\u003e3.1 Function Templates 129 \u003cbr\u003e3.2 Namespaces and Function Lookup 138 \u003cbr\u003e3.3 Class Templates 147 \u003cbr\u003e3.4 Type Deduction and Definition 154 \u003cbr\u003e3.5 Template Specialization 162 \u003cbr\u003e3.6 Non-Type Parameters for Templates 174 \u003cbr\u003e3.7 Functors 177 \u003cbr\u003e3.8 Lambda 185 \u003cbr\u003e3.9 Variable Templates 190 \u003cbr\u003e3.10 Programming with Concept(s) 192 \u003cbr\u003e3.11 Variadic Templates 200 \u003cbr\u003e3.12 Exercises 208 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 4: Libraries 211\u003c\/b\u003e \u003cbr\u003e4.1 Standard Template Library 211 \u003cbr\u003e4.2 Numerics 239 \u003cbr\u003e4.3 Meta-programming 252 \u003cbr\u003e4.4 Utilities 256 \u003cbr\u003e4.5 The Time Is Now 267 \u003cbr\u003e4.6 Concurrency 270 \u003cbr\u003e4.7 Scientific Libraries Beyond the Standard 282 \u003cbr\u003e4.8 Exercises 285 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 5: Meta-Programming 289\u003c\/b\u003e \u003cbr\u003e5.1 Let the Compiler Compute 289 \u003cbr\u003e5.2 Providing and Using Type Information 297 \u003cbr\u003e5.3 Expression Templates 318 \u003cbr\u003e5.4 Meta-Tuning: Write Your Own Compiler Optimization 328 \u003cbr\u003e5.5 Optimizing with Semantic Concepts 354 \u003cbr\u003e5.6 Turing Completeness 359 \u003cbr\u003e5.7 Exercises 362 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 6: Object-Oriented Programming 365\u003c\/b\u003e \u003cbr\u003e6.1 Basic Principles 365 \u003cbr\u003e6.2 Removing Redundancy 379 \u003cbr\u003e6.3 Multiple Inheritance 380 \u003cbr\u003e6.4 Dynamic Selection by Sub-typing 387 \u003cbr\u003e6.5 Conversion 389 \u003cbr\u003e6.6 Advanced Techniques 397 \u003cbr\u003e6.7 Exercises 405 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 7: Scientific Projects 407\u003c\/b\u003e \u003cbr\u003e7.1 Implementation of ODE Solvers 407 \u003cbr\u003e7.2 Creating Projects 418 \u003cbr\u003e7.3 Modules 430 \u003cbr\u003e7.4 Some Final Words 434 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eAppendix A: Clumsy Stuff 435\u003c\/b\u003e \u003cbr\u003eA.1 More Good and Bad Scientific Software 435 \u003cbr\u003eA.2 Basics in Detail 441 \u003cbr\u003eA.3 Real-World Example: Matrix Inversion 449 \u003cbr\u003eA.4 Class Details 458 \u003cbr\u003eA.5 Method Generation 462 \u003cbr\u003eA.6 Template Details 474 \u003cbr\u003eA.7 More on Libraries 479 \u003cbr\u003eA.8 Dynamic Selection in Old Style 480 \u003cbr\u003eA.9 More about Meta-Programming 481 \u003cbr\u003eA.10 Linking to C Code 489 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eAppendix B: Programming Tools 491\u003c\/b\u003e \u003cbr\u003eB.1 g++ 491 \u003cbr\u003eB.2 Debugging 492 \u003cbr\u003eB.3 Memory Analysis 496 \u003cbr\u003eB.4 gnuplot 498 \u003cbr\u003eB.5 Unix, Linux, and Mac OS 498 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eAppendix C: Language Definitions 501\u003c\/b\u003e \u003cbr\u003eC.1 Value Categories 501 \u003cbr\u003eC.2 Operator Overview 502 \u003cbr\u003eC.3 Conversion Rules 504 \u003cbr\u003e \u003cbr\u003e \u003ci\u003eBibliography 507\u003cbr\u003eSubject Index 513\u003c\/i\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732341043543,"sku":"9780136677642","price":34.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780136677642.jpg?v=1719996482"},{"product_id":"foundational-python-for-data-science-9780136624356","title":"Foundational Python for Data Science","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003e  \u003cb\u003eKennedy Behrman\u003c\/b\u003e 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. \u003c\/div\u003e \u003cdiv\u003e  \u003cbr\u003e \u003c\/div\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003ePreface xiii  \u003cbr\u003e  \u003cb\u003eI:  Learning Python in a Notebook Environment 1\u003c\/b\u003e \u003cbr\u003e   1  Introduction to Notebooks 3  \u003cbr\u003e2  Fundamentals of Python 13  \u003cbr\u003e3  Sequences 25  \u003cbr\u003e4  Other Data Structures 37  \u003cbr\u003e5  Execution Control 55  \u003cbr\u003e6  Functions 67  \u003cbr\u003e  \u003cb\u003eII: Data Science Libraries 83\u003c\/b\u003e \u003cbr\u003e   7  NumPy 85  \u003cbr\u003e8  SciPy 103  \u003cbr\u003e9  Pandas 113  \u003cbr\u003e10  Visualization Libraries 135  \u003cbr\u003e11  Machine Learning Libraries 153  \u003cbr\u003e12  Natural Language Toolkit 159  \u003cbr\u003e  \u003cb\u003eIII: Intermediate Python 171\u003c\/b\u003e \u003cbr\u003e   13  Functional Programming 173  \u003cbr\u003e14  Object-Oriented Programming 187  \u003cbr\u003e15  Other Topics 201  \u003cbr\u003eA  Answers to End-of-Chapter Questions 215  \u003cbr\u003e    Index 221  \u003cbr\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732341109079,"sku":"9780136624356","price":42.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780136624356.jpg?v=1719996483"},{"product_id":"captain-code-9780137653577","title":"Captain Code","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003e  \u003cb\u003eBen Forta\u003c\/b\u003e 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\/. \u003c\/div\u003e \u003cdiv\u003e  \u003cbr\u003e \u003c\/div\u003e \u003cdiv\u003e  \u003cbr\u003e \u003c\/div\u003e \u003cdiv\u003e  \u003cb\u003eShmuel Forta\u003c\/b\u003e is an engineer, coder, maker, tinkerer, and teacher. He is a software developer at General Motors and has years of programming experience, including both writing\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\" 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 \u003ci\u003eCaptain Code\u003c\/i\u003e 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. \u003ci\u003eCaptain Code\u003c\/i\u003e 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.\"   \u003ci\u003e---Nicholas Provenzano, TheNerdyTeacher, MACUL OutstandingTechnology Using Teacher of the Year, and ISTE Outstanding Teacher of the Year\u003c\/i\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eIntroduction     xv      \u003cbr\u003e      \u003cb\u003ePART I:  IT'S ALL FUN AND GAMES     1\u003c\/b\u003e      \u003cbr\u003e      \u003cb\u003eChapter 1  Getting Started     3\u003c\/b\u003e      \u003cbr\u003e      Understanding Computer Programming     4      \u003cbr\u003e          What is a computer?     4      \u003cbr\u003e          How do we talk to computers?     5      \u003cbr\u003e          What is Python?     8      \u003cbr\u003e      Setting Things Up     9      \u003cbr\u003e          Installing Python     9      \u003cbr\u003e          Installing and Configuring Visual Studio Code     10      \u003cbr\u003e          Creating a Work Folder     13      \u003cbr\u003e      Writing Your First Python Program     15      \u003cbr\u003e          Selecting Your Work Folder     16      \u003cbr\u003e          It's Coding Time!     17      \u003cbr\u003e      Summary     19      \u003cbr\u003e      \u003cb\u003eChapter 2  Mad Libs     21\u003c\/b\u003e      \u003cbr\u003e      Understanding Functions     22      \u003cbr\u003e      Using Variables     23      \u003cbr\u003e          Creating a Variable     24      \u003cbr\u003e          Using a Variable     24      \u003cbr\u003e          Some Important Variable Rules     25      \u003cbr\u003e          Variables, More Variables, and Even More Variables     26      \u003cbr\u003e          Getting User Input     28      \u003cbr\u003e      Playing Mad Libs     30      \u003cbr\u003e          Write Your Story     30      \u003cbr\u003e          Add Variables     30      \u003cbr\u003e          Get User Input     32      \u003cbr\u003e      Summary     33      \u003cbr\u003e      \u003cb\u003eChapter 3  Roll the Dice     35\u003c\/b\u003e      \u003cbr\u003e      Using Libraries     36      \u003cbr\u003e          The random Library     36      \u003cbr\u003e          Generating Random Numbers     37      \u003cbr\u003e          Choosing a Random Item     38      \u003cbr\u003e      “3” Is Not 3     41      \u003cbr\u003e      Commenting Your Code     43      \u003cbr\u003e      One Die, Two Dice     45      \u003cbr\u003e      Summary     49      \u003cbr\u003e      \u003cb\u003eChapter 4  Calculate the Day     51\u003c\/b\u003e      \u003cbr\u003e      Working with Dates     52      \u003cbr\u003e          The datetime Library     52      \u003cbr\u003e          Using the datetime Class     55      \u003cbr\u003e      Making Decisions     56      \u003cbr\u003e          The if Statement     56      \u003cbr\u003e          What else?     58      \u003cbr\u003e          if Revisited     59      \u003cbr\u003e          Testing for Other Options     61      \u003cbr\u003e          Using in     62      \u003cbr\u003e      Beating the Mathematician     63      \u003cbr\u003e          Handling Numeric Inputs     63      \u003cbr\u003e          Putting It All Together     64      \u003cbr\u003e          An Alternate Solution     67      \u003cbr\u003e      Summary     67      \u003cbr\u003e      \u003cb\u003eChapter 5  Rock Paper Scissors     69\u003c\/b\u003e      \u003cbr\u003e      More Strings     70      \u003cbr\u003e      Game Time     72      \u003cbr\u003e          Handling User Input     72      \u003cbr\u003e          The Game Code     74      \u003cbr\u003e          One Last Tweak     76      \u003cbr\u003e      Summary     77      \u003cbr\u003e      \u003cb\u003eChapter 6  Secret Codes     79\u003c\/b\u003e      \u003cbr\u003e      Lists     80      \u003cbr\u003e          Creating Lists     80      \u003cbr\u003e          Accessing List Items     82      \u003cbr\u003e          Changing List Items     83      \u003cbr\u003e          Adding and Removing Items     84      \u003cbr\u003e          Finding Items     85      \u003cbr\u003e          Sorting     86      \u003cbr\u003e      Loop-de-Loop     89      \u003cbr\u003e          Looping Through Items     90      \u003cbr\u003e          Looping Through Numbers     92      \u003cbr\u003e          Nested Loops     93      \u003cbr\u003e      Cracking the Code     95      \u003cbr\u003e          Encrypting Characters     96      \u003cbr\u003e          Modulus Math     97      \u003cbr\u003e          Encryption Code     98      \u003cbr\u003e          Decryption Code     102      \u003cbr\u003e      Summary     104      \u003cbr\u003e      \u003cb\u003eChapter 7  Guess the Number     105\u003c\/b\u003e      \u003cbr\u003e      Conditional Loops     106      \u003cbr\u003e      Game Time     111      \u003cbr\u003e          The Basic Game     111      \u003cbr\u003e          Putting It All Together     116      \u003cbr\u003e      Summary     120      \u003cbr\u003e      \u003cb\u003eChapter 8  Becoming a Coder     121\u003c\/b\u003e      \u003cbr\u003e      How Coders Code     122      \u003cbr\u003e          Have a Plan     122      \u003cbr\u003e          Think Small     123      \u003cbr\u003e      Game Components     124      \u003cbr\u003e          Restricting User Input     125      \u003cbr\u003e          Storing User Guesses     128      \u003cbr\u003e          Displaying Lists     129      \u003cbr\u003e          Masking Characters     131      \u003cbr\u003e      Summary     136      \u003cbr\u003e      \u003cb\u003eChapter 9  Hangman     137\u003c\/b\u003e      \u003cbr\u003e      Game Time     138      \u003cbr\u003e      So How Does It Work?     141      \u003cbr\u003e      Summary     148      \u003cbr\u003e      \u003cb\u003eChapter 10  Keep Going     149\u003c\/b\u003e      \u003cbr\u003e      Birthday Countdown     150      \u003cbr\u003e          Program Requirements     150      \u003cbr\u003e          Program Flow     150      \u003cbr\u003e          Some Tips     151      \u003cbr\u003e      Tip Calculator     152      \u003cbr\u003e          Program Requirements     152      \u003cbr\u003e          Program Flow     153      \u003cbr\u003e          Some Tips (Pun Intended)     153      \u003cbr\u003e      Password Generator     154      \u003cbr\u003e          Program Requirements     154      \u003cbr\u003e          Program Flow     155      \u003cbr\u003e          Some Tips     155      \u003cbr\u003e      Summary     159      \u003cbr\u003e      \u003cb\u003ePART II:  ON AN ADVENTURE     161\u003c\/b\u003e      \u003cb\u003e\u003cbr\u003e\u003c\/b\u003e      \u003cb\u003eChapter 11  Getting Func-ky     163\u003c\/b\u003e      \u003cbr\u003e      Functions Revisited     164      \u003cbr\u003e          Creating a Function     165      \u003cbr\u003e          Passing Arguments     167      \u003cbr\u003e          Returning Values     171      \u003cbr\u003e      Summary     175      \u003cbr\u003e      \u003cb\u003eChapter 12  Exploring     177\u003c\/b\u003e      \u003cbr\u003e      Game Concept     178      \u003cbr\u003e          Game Structure     179      \u003cbr\u003e          Prompting for Options     181      \u003cbr\u003e          Processing Options     182      \u003cbr\u003e          Create a Work Folder     183      \u003cbr\u003e      Game Time     184      \u003cbr\u003e      Test It     189      \u003cbr\u003e      Summary     191      \u003cbr\u003e      \u003cb\u003eChapter 13  Cleanup Time     193\u003c\/b\u003e      \u003cbr\u003e      Optimizing Your Code     194      \u003cbr\u003e      String Externalization     196      \u003cbr\u003e          Creating the Strings File     196      \u003cbr\u003e          Using Externalized Strings     200      \u003cbr\u003e      Summary     201      \u003cbr\u003e      \u003cb\u003eChapter 14  Reduce, Reuse, Recycle, Refactor     203\u003c\/b\u003e      \u003cbr\u003e      Understanding Refactoring     204      \u003cbr\u003e          Identifying Refactoring Opportunities     205      \u003cbr\u003e      Creating a User Choice Component     207      \u003cbr\u003e          Designing a Reusable Component     208      \u003cbr\u003e          Creating the User Options Function     213      \u003cbr\u003e          Updating Your Code     218      \u003cbr\u003e      Summary     221      \u003cbr\u003e      \u003cb\u003eChapter 15  Carrying (and Using) Stuff     223\u003c\/b\u003e      \u003cbr\u003e      Planning the Inventory System     224      \u003cbr\u003e          Creating a Dictionary     225      \u003cbr\u003e          Working with Dictionaries     226      \u003cbr\u003e          Lists of Dictionaries     228      \u003cbr\u003e      The Inventory System     229      \u003cbr\u003e          Creating an Inventory     230      \u003cbr\u003e          Plugging In the Inventory System     232      \u003cbr\u003e          Using the Inventory System     233      \u003cbr\u003e          Displaying the Inventory     238      \u003cbr\u003e      Summary     239      \u003cbr\u003e      \u003cb\u003eChapter 16  Keeping It Classy     241\u003c\/b\u003e      \u003cbr\u003e      The Player System     242      \u003cbr\u003e      Creating a Player Class     243      \u003cbr\u003e          Creating the Class     243      \u003cbr\u003e          Defining Properties     244      \u003cbr\u003e          Creating Methods     247      \u003cbr\u003e          Initializing the Class     250      \u003cbr\u003e      Using Our New Class     251      \u003cbr\u003e      Summary     255      \u003cbr\u003e      \u003cb\u003eChapter 17  Color Your World     257\u003c\/b\u003e      \u003cbr\u003e      Installing Third-Party Libraries     258      \u003cbr\u003e      Using Colorama     259      \u003cbr\u003e          Importing and Initializing the Library     259      \u003cbr\u003e          Coloring Your Output     260      \u003cbr\u003e      Summary     264      \u003cbr\u003e      \u003cb\u003eChapter 18  Keep Going     265\u003c\/b\u003e      \u003cbr\u003e      Health and Lives     266      \u003cbr\u003e      Shopping for Items     271      \u003cbr\u003e      Random Events     275      \u003cbr\u003e      Battling Enemies     277      \u003cbr\u003e      Saving and Restoring     280      \u003cbr\u003e      Summary     282      \u003cbr\u003e      \u003cb\u003ePART III:  RACING AROUND     283\u003c\/b\u003e      \u003cb\u003e\u003cbr\u003e\u003c\/b\u003e      \u003cb\u003eChapter 19  Crazy Driver     285\u003c\/b\u003e      \u003cbr\u003e      Introducing Pygame     286      \u003cbr\u003e      Prepping the Game     286      \u003cbr\u003e          Game Concept     286      \u003cbr\u003e          Installing Pygame     288      \u003cbr\u003e          Creating Work Folders     288      \u003cbr\u003e          Obtaining Images     289      \u003cbr\u003e      Getting Started     289      \u003cbr\u003e          Initializing Pygame     290      \u003cbr\u003e          Displaying Stuff     294      \u003cbr\u003e      The Game Loop     295      \u003cbr\u003e      Summary     300      \u003cbr\u003e      \u003cb\u003eChapter 20  Image-ine the Possibilities     301\u003c\/b\u003e      \u003cbr\u003e      Files and Folders     302      \u003cbr\u003e      Setting the Background     305      \u003cbr\u003e      Placing the Cars     310      \u003cbr\u003e      Summary     317      \u003cbr\u003e      \u003cb\u003eChapter 21  We Like to Move It     319\u003c\/b\u003e      \u003cbr\u003e      Moving the Enemy     320      \u003cbr\u003e      Moving the Player     323      \u003cbr\u003e      Summary     327      \u003cbr\u003e      \u003cb\u003eChapter 22  Crash, Bang, Boom     329\u003c\/b\u003e      \u003cbr\u003e      You Crashed, Game Over     330      \u003cbr\u003e      Tracking Score     332      \u003cbr\u003e      Increasing Difficulty     334      \u003cbr\u003e      Summary     336      \u003cbr\u003e      \u003cb\u003eChapter 23  Finishing Touches     337\u003c\/b\u003e      \u003cbr\u003e      Game Over Revisited     338      \u003cbr\u003e      Pause     341      \u003cbr\u003e      Varying Enemies     343      \u003cbr\u003e      Ice Cubes     348      \u003cbr\u003e      Summary     351      \u003cbr\u003e      \u003cb\u003eChapter 24  Keep Going     353\u003c\/b\u003e      \u003cbr\u003e      Splash Screen     354      \u003cbr\u003e      Scores and High Scores     354      \u003cbr\u003e      Oil Slick     356      \u003cbr\u003e      Multiple Enemies     357      \u003cbr\u003e      And Then     358      \u003cbr\u003e      Summary     359      \u003cbr\u003e      \u003cb\u003eWhat Next?     361\u003c\/b\u003e      \u003cbr\u003e      There's a Lot More to Python     362      \u003cbr\u003e      Web Development     362      \u003cbr\u003e      Mobile App Development     364      \u003cbr\u003e      Game Development     364      \u003cbr\u003e      And Then     365      \u003cbr\u003e      \u003cb\u003eIndex     367\u003c\/b\u003e      \u003cbr\u003e      Bonus Online Chapter 25  Tinkering, Testing, and Debugging Revisited     (Online Only)      \u003cbr\u003e\n\u003c\/div\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732342124887,"sku":"9780137653577","price":18.04,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780137653577.jpg?v=1719996487"},{"product_id":"python-programming-with-design-patterns-9780137579938","title":"Python Programming with Design Patterns","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eJames W. Cooper\u003c\/strong\u003e holds a PhD in chemistry and worked in academia, for the scientific instrument industry, and for IBM for 25 years, primarily as a computer scientist at IBM's Thomas J. Watson Research Center. Now retired, he is the author of 20 books, including 3 on design patterns in various languages. His most recent books are \u003cem\u003eFlameout: The Rise and Fall of IBM Instruments\u003c\/em\u003e (2019) and \u003cem\u003eFood Myths Debunked\u003c\/em\u003e (2014).\u003c\/p\u003e \u003cp\u003eJames holds 11 patents and has written 60 columns for \u003cem\u003eJavaPro Magazin\u003c\/em\u003ee. He has also written nearly 1,000 columns for the now vanished Examiner.com on foods and chemistry, and he currently writes his own blog: FoodScienceInstitute.com. Recently, he has written columns on Python for Medium.com and Substack.\u003c\/p\u003e \u003cp\u003eHe is also involved in local theater groups and is the treasurer for Troupers Light Opera, where he performs regularly.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003ePreface xxi\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePART I: INTRODUCTION 1\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eThe tkinter Library 2\u003c\/p\u003e \u003cp\u003eGitHub 2\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 1 Introduction to Objects 5\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eThe Class __init__ Method 6\u003c\/p\u003e \u003cp\u003eVariables Inside a Class 6\u003c\/p\u003e \u003cp\u003eCollections of Classes 7\u003c\/p\u003e \u003cp\u003eInheritance 8\u003c\/p\u003e \u003cp\u003eDerived Classes Created with Revised Methods 8\u003c\/p\u003e \u003cp\u003eMultiple Inheritance 8\u003c\/p\u003e \u003cp\u003eDrawing a Rectangle and a Square 10\u003c\/p\u003e \u003cp\u003eVisibility of Variables 12\u003c\/p\u003e \u003cp\u003e Properties 13\u003c\/p\u003e \u003cp\u003e Local Variables 13\u003c\/p\u003e \u003cp\u003eTypes in Python 13\u003c\/p\u003e \u003cp\u003eSummary 14\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 15\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 2 Visual Programming in Python 17\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eImporting Fewer Names 19\u003c\/p\u003e \u003cp\u003eCreating an Object-Oriented Version 19\u003c\/p\u003e \u003cp\u003eUsing Message Boxes 21\u003c\/p\u003e \u003cp\u003eUsing File Dialogs 22\u003c\/p\u003e \u003cp\u003eUnderstanding Options for the Pack Layout Manager 23\u003c\/p\u003e \u003cp\u003eUsing the ttk Libraries 24\u003c\/p\u003e \u003cp\u003eResponding to User Input 25\u003c\/p\u003e \u003cp\u003e Adding Two Numbers 26\u003c\/p\u003e \u003cp\u003e Catching the Error 26\u003c\/p\u003e \u003cp\u003eApplying Colors in tkinter 27\u003c\/p\u003e \u003cp\u003eCreating Radio Buttons 27\u003c\/p\u003e \u003cp\u003e Using a Class-Level Variable 30\u003c\/p\u003e \u003cp\u003eCommunicating Between Classes 30\u003c\/p\u003e \u003cp\u003eUsing the Grid Layout 30\u003c\/p\u003e \u003cp\u003eCreating Checkbuttons 32\u003c\/p\u003e \u003cp\u003e Disabling Check Boxes 32\u003c\/p\u003e \u003cp\u003eAdding Menus to Windows 35\u003c\/p\u003e \u003cp\u003eUsing the LabelFrame 39\u003c\/p\u003e \u003cp\u003eMoving On 40\u003c\/p\u003e \u003cp\u003eExamples on GitHub 40\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 3 Visual Programming of Tables of Data 41\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eCreating a Listbox 42\u003c\/p\u003e \u003cp\u003e Displaying the State Data 44\u003c\/p\u003e \u003cp\u003eUsing a Combobox 46\u003c\/p\u003e \u003cp\u003eThe Treeview Widget 47\u003c\/p\u003e \u003cp\u003e Inserting Tree Nodes 50\u003c\/p\u003e \u003cp\u003eMoving On 51\u003c\/p\u003e \u003cp\u003eExample Code on GitHub 51\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 4 What Are Design Patterns? 53\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eDefining Design Patterns 54\u003c\/p\u003e \u003cp\u003eThe Learning Process 55\u003c\/p\u003e \u003cp\u003eNotes on Object-Oriented Approaches 56\u003c\/p\u003e \u003cp\u003ePython Design Patterns 57\u003c\/p\u003e \u003cp\u003eReferences 57\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePART II: CREATIONAL PATTERNS 59\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 5 The Factory Pattern 61\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eHow a Factory Works 61\u003c\/p\u003e \u003cp\u003eSample Code 62\u003c\/p\u003e \u003cp\u003eThe Two Subclasses 62\u003c\/p\u003e \u003cp\u003eBuilding the Simple Factory 63\u003c\/p\u003e \u003cp\u003e Using the Factory 63\u003c\/p\u003e \u003cp\u003e A Simple GUI 64\u003c\/p\u003e \u003cp\u003eFactory Patterns in Math Computation 65\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 65\u003c\/p\u003e \u003cp\u003eThought Questions 66\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 6 The Factory Method Pattern 67\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eThe Swimmer Class 68\u003c\/p\u003e \u003cp\u003eThe Event Classes 69\u003c\/p\u003e \u003cp\u003eStraight Seeding 70\u003c\/p\u003e \u003cp\u003e Circle Seeding 71\u003c\/p\u003e \u003cp\u003eOur Seeding Program 72\u003c\/p\u003e \u003cp\u003eOther Factories 74\u003c\/p\u003e \u003cp\u003eWhen to Use a Factory Method 74\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 74\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7 The Abstract Factory Pattern 75\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eA GardenMaker Factory 75\u003c\/p\u003e \u003cp\u003eHow the User Interface Works 77\u003c\/p\u003e \u003cp\u003eConsequences of the Abstract Factory Pattern 77\u003c\/p\u003e \u003cp\u003eThought Questions 78\u003c\/p\u003e \u003cp\u003eCode on GitHub 78\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 8 The Singleton Pattern 79\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eThrowing the Exception 80\u003c\/p\u003e \u003cp\u003eCreating an Instance of the Class 80\u003c\/p\u003e \u003cp\u003eStatic Classes As Singleton Patterns 81\u003c\/p\u003e \u003cp\u003eFinding the Singletons in a Large Program 81\u003c\/p\u003e \u003cp\u003eOther Consequences of the Singleton Pattern 82\u003c\/p\u003e \u003cp\u003eSample Code on GitHub 82\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 9 The Builder Pattern 83\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eAn Investment Tracker 84\u003c\/p\u003e \u003cp\u003eCalling the Builders 86\u003c\/p\u003e \u003cp\u003e The List Box Builder 87\u003c\/p\u003e \u003cp\u003e The Checkbox Builder 88\u003c\/p\u003e \u003cp\u003eDisplaying the Selected Securities 89\u003c\/p\u003e \u003cp\u003eConsequences of the Builder Pattern 89\u003c\/p\u003e \u003cp\u003eThought Questions 89\u003c\/p\u003e \u003cp\u003eSample Code on GitHub 89\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 10 The Prototype Pattern 91\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eCloning in Python 91\u003c\/p\u003e \u003cp\u003eUsing the Prototype 92\u003c\/p\u003e \u003cp\u003eConsequences of the Prototype Pattern 94\u003c\/p\u003e \u003cp\u003eSample Code on GitHub 94\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 11 Summary of Creational Patterns 95\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePART III: STRUCTURAL PATTERNS 97\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 12 The Adapter Pattern 99\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eMoving Data Between Lists 99\u003c\/p\u003e \u003cp\u003eMaking an Adapter 101\u003c\/p\u003e \u003cp\u003e The Class Adapter 103\u003c\/p\u003e \u003cp\u003e Two-Way Adapters 103\u003c\/p\u003e \u003cp\u003e Pluggable Adapters 103\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 103\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 13 The Bridge Pattern 105\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eCreating the User Interface 107\u003c\/p\u003e \u003cp\u003eExtending the Bridge 108\u003c\/p\u003e \u003cp\u003eConsequences of the Bridge Pattern 109\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 110\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 14 The Composite Pattern 111\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eAn Implementation of a Composite 112\u003c\/p\u003e \u003cp\u003eSalary Computation 112\u003c\/p\u003e \u003cp\u003eThe Employee Classes 112\u003c\/p\u003e \u003cp\u003eThe Boss Class 113\u003c\/p\u003e \u003cp\u003eBuilding the Employee Tree 114\u003c\/p\u003e \u003cp\u003ePrinting the Employee Tree 114\u003c\/p\u003e \u003cp\u003eCreating a Treeview of the Composite 116\u003c\/p\u003e \u003cp\u003eUsing Doubly Linked Lists 117\u003c\/p\u003e \u003cp\u003eConsequences of the Composite Pattern 118\u003c\/p\u003e \u003cp\u003eA Simple Composite 119\u003c\/p\u003e \u003cp\u003eOther Implementation Issues 119\u003c\/p\u003e \u003cp\u003e Dealing with Recursive Calls 119\u003c\/p\u003e \u003cp\u003e Ordering Components 120\u003c\/p\u003e \u003cp\u003e Caching Results 120\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 120\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 15 The Decorator Pattern 121\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eDecorating a Button 121\u003c\/p\u003e \u003cp\u003eUsing a Decorator 122\u003c\/p\u003e \u003cp\u003eUsing Nonvisual Decorators 123\u003c\/p\u003e \u003cp\u003e Decorated Code 124\u003c\/p\u003e \u003cp\u003eThe dataclass Decorator 125\u003c\/p\u003e \u003cp\u003eUsing dataclass with Default Values 126\u003c\/p\u003e \u003cp\u003eDecorators, Adapters, and Composites 126\u003c\/p\u003e \u003cp\u003eConsequences of the Decorator Pattern 126\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 127\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 16 The Facade Pattern 129\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eBuilding the Façade Classes 131\u003c\/p\u003e \u003cp\u003eCreating Databases and Tables 135\u003c\/p\u003e \u003cp\u003eUsing the SQLite Version 136\u003c\/p\u003e \u003cp\u003eConsequences of the Façade 137\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 137\u003c\/p\u003e \u003cp\u003eNotes on MySQL 137\u003c\/p\u003e \u003cp\u003eUsing SQLite 138\u003c\/p\u003e \u003cp\u003eReferences 138\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 17 The Flyweight Pattern 139\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhat Are Flyweights? 139\u003c\/p\u003e \u003cp\u003eExample Code 140\u003c\/p\u003e \u003cp\u003eSelecting a Folder 142\u003c\/p\u003e \u003cp\u003eCopy-on-Write Objects 143\u003c\/p\u003e \u003cp\u003eProgram on GitHub 143\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 18 The Proxy Pattern 145\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eUsing the Pillow Image Library 145\u003c\/p\u003e \u003cp\u003eDisplaying an Image Using PIL 146\u003c\/p\u003e \u003cp\u003eUsing Threads to Handle Image Loading 146\u003c\/p\u003e \u003cp\u003eLogging from Threads 149\u003c\/p\u003e \u003cp\u003eCopy-on-Write 149\u003c\/p\u003e \u003cp\u003eComparing Related Patterns 149\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 150\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 19 Summary of Structural Patterns 151\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePART IV: BEHAVIORAL PATTERNS 153\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 20 Chain of Responsibility Pattern 155\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use the Chain 156\u003c\/p\u003e \u003cp\u003eSample Code 156\u003c\/p\u003e \u003cp\u003eThe Listboxes 159\u003c\/p\u003e \u003cp\u003eProgramming a Help System 160\u003c\/p\u003e \u003cp\u003eReceiving the Help Command 161\u003c\/p\u003e \u003cp\u003eThe First Case 162\u003c\/p\u003e \u003cp\u003eA Chain or a Tree? 163\u003c\/p\u003e \u003cp\u003eKinds of Requests 164\u003c\/p\u003e \u003cp\u003eConsequences of the Chain of Responsibility 164\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 165\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 21 The Command Pattern 167\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use the Command Pattern 167\u003c\/p\u003e \u003cp\u003eCommand Objects 168\u003c\/p\u003e \u003cp\u003eA Keyboard Example 168\u003c\/p\u003e \u003cp\u003eCalling the Command Objects 170\u003c\/p\u003e \u003cp\u003eBuilding Command Objects 171\u003c\/p\u003e \u003cp\u003eThe Command Pattern 172\u003c\/p\u003e \u003cp\u003eConsequences of the Command Pattern 172\u003c\/p\u003e \u003cp\u003eProviding the Undo Function 172\u003c\/p\u003e \u003cp\u003e Creating the Red and Blue Buttons 175\u003c\/p\u003e \u003cp\u003e Undoing the Lines 175\u003c\/p\u003e \u003cp\u003eSummary 176\u003c\/p\u003e \u003cp\u003eReferences 176\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 176\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 22 The Interpreter Pattern 177\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use an Interpreter 177\u003c\/p\u003e \u003cp\u003eWhere the Pattern Can Be Helpful 177\u003c\/p\u003e \u003cp\u003eA Simple Report Example 178\u003c\/p\u003e \u003cp\u003eInterpreting the Language 179\u003c\/p\u003e \u003cp\u003eHow Parsing Works 180\u003c\/p\u003e \u003cp\u003e Sorting Using attrgetter() 181\u003c\/p\u003e \u003cp\u003e The Print Verb 182\u003c\/p\u003e \u003cp\u003eThe Console Interface 182\u003c\/p\u003e \u003cp\u003eThe User Interface 183\u003c\/p\u003e \u003cp\u003eConsequences of the Interpreter Pattern 184\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 185\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 23 The Iterator Pattern 187\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhy We Use Iterators 187\u003c\/p\u003e \u003cp\u003eIterators in Python 187\u003c\/p\u003e \u003cp\u003eA Fibonacci Iterator 188\u003c\/p\u003e \u003cp\u003e Getting the Iterator 189\u003c\/p\u003e \u003cp\u003eFiltered Iterators 189\u003c\/p\u003e \u003cp\u003eThe Iterator Generator 191\u003c\/p\u003e \u003cp\u003eA Fibonacci Iterator 191\u003c\/p\u003e \u003cp\u003eGenerators in Classes 192\u003c\/p\u003e \u003cp\u003eConsequences of the Iterator Pattern 192\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 193\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 24 The Mediator Pattern 195\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eAn Example System 195\u003c\/p\u003e \u003cp\u003eInteractions Between Controls 197\u003c\/p\u003e \u003cp\u003eSample Code 198\u003c\/p\u003e \u003cp\u003eMediators and Command Objects 199\u003c\/p\u003e \u003cp\u003eConsequences of the Mediator Pattern 200\u003c\/p\u003e \u003cp\u003eSingle Interface Mediators 200\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 201\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 25 The Memento Pattern 203\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use a Memento 203\u003c\/p\u003e \u003cp\u003eSample Code 204\u003c\/p\u003e \u003cp\u003eConsequences of the Memento Pattern 209\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 209\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 26 The Observer Pattern 211\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eExample Program for Watching Colors Change 212\u003c\/p\u003e \u003cp\u003eThe Message to the Media 215\u003c\/p\u003e \u003cp\u003eConsequences of the Observer Pattern 215\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 215\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 27 The State Pattern 217\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eSample Code 217\u003c\/p\u003e \u003cp\u003eSwitching Between States 221\u003c\/p\u003e \u003cp\u003eHow the Mediator Interacts with the State\u003c\/p\u003e \u003cp\u003eState Transitions 224\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 224\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 28 The Strategy Pattern 225\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhy We Use the Strategy Pattern 225\u003c\/p\u003e \u003cp\u003eSample Code 226\u003c\/p\u003e \u003cp\u003eThe Context 227\u003c\/p\u003e \u003cp\u003eThe Program Commands 227\u003c\/p\u003e \u003cp\u003eThe Line and Bar Graph Strategies 228\u003c\/p\u003e \u003cp\u003eConsequences of the Strategy Pattern 230\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 231\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 29 The Template Pattern 233\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhy We Use Template Patterns 233\u003c\/p\u003e \u003cp\u003eKinds of Methods in a Template Class 234\u003c\/p\u003e \u003cp\u003eSample Code 234\u003c\/p\u003e \u003cp\u003e Drawing a Standard Triangle 235\u003c\/p\u003e \u003cp\u003e Drawing an Isosceles Triangle 236\u003c\/p\u003e \u003cp\u003eThe Triangle Drawing Program 237\u003c\/p\u003e \u003cp\u003eTemplates and Callbacks 238\u003c\/p\u003e \u003cp\u003eSummary and Consequences 238\u003c\/p\u003e \u003cp\u003eExample Code on GitHub 238\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 30 The Visitor Pattern 239\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use the Visitor Pattern 239\u003c\/p\u003e \u003cp\u003eWorking with the Visitor Pattern 241\u003c\/p\u003e \u003cp\u003eSample Code 241\u003c\/p\u003e \u003cp\u003eVisiting Each Class 242\u003c\/p\u003e \u003cp\u003eVisiting Several Classes 242\u003c\/p\u003e \u003cp\u003eBosses Are Employees, Too 243\u003c\/p\u003e \u003cp\u003eDouble Dispatching 245\u003c\/p\u003e \u003cp\u003eTraversing a Series of Classes 245\u003c\/p\u003e \u003cp\u003eConsequences of the Visitor Pattern 245\u003c\/p\u003e \u003cp\u003eExample Code on GitHub 245\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePART V: A BRIEF INTRODUCTION TO PYTHON 247\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 31 Variables and Syntax in Python 249\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eData Types 250\u003c\/p\u003e \u003cp\u003eNumeric Constants 250\u003c\/p\u003e \u003cp\u003eStrings 250\u003c\/p\u003e \u003cp\u003eCharacter Constants 251\u003c\/p\u003e \u003cp\u003eVariables 252\u003c\/p\u003e \u003cp\u003eComplex Numbers 253\u003c\/p\u003e \u003cp\u003eInteger Division 253\u003c\/p\u003e \u003cp\u003eMultiple Equal Signs for Initialization 254\u003c\/p\u003e \u003cp\u003eA Simple Python Program 254\u003c\/p\u003e \u003cp\u003eCompiling and Running This Program 255\u003c\/p\u003e \u003cp\u003eArithmetic Operators 255\u003c\/p\u003e \u003cp\u003e Bitwise Operators 255\u003c\/p\u003e \u003cp\u003eCombined Arithmetic and Assignment Statements 256\u003c\/p\u003e \u003cp\u003eComparison Operators 256\u003c\/p\u003e \u003cp\u003eThe input Statement 257\u003c\/p\u003e \u003cp\u003ePEP 8 Standards 258\u003c\/p\u003e \u003cp\u003e Variable and Function Names 258\u003c\/p\u003e \u003cp\u003e Constants 258\u003c\/p\u003e \u003cp\u003e Class Names 258\u003c\/p\u003e \u003cp\u003e Indentation and Spacing 259\u003c\/p\u003e \u003cp\u003e Comments 259\u003c\/p\u003e \u003cp\u003e Docstrings 259\u003c\/p\u003e \u003cp\u003eString Methods 260\u003c\/p\u003e \u003cp\u003eExamples on GitHub 261\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 32 Making Decisions in Python 263\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eelif is “else if” 263\u003c\/p\u003e \u003cp\u003eCombining Conditions 264\u003c\/p\u003e \u003cp\u003eThe Most Common Mistake 264\u003c\/p\u003e \u003cp\u003eLooping Statements in Python 265\u003c\/p\u003e \u003cp\u003e The for Loop and Lists 265\u003c\/p\u003e \u003cp\u003e Using range in if Statements 266\u003c\/p\u003e \u003cp\u003eUsing break and continue 266\u003c\/p\u003e \u003cp\u003e The continue Statement 267\u003c\/p\u003e \u003cp\u003ePython Line Length 267\u003c\/p\u003e \u003cp\u003eThe print Function 267\u003c\/p\u003e \u003cp\u003eFormatting Numbers 268\u003c\/p\u003e \u003cp\u003e C and Java Style Formatting 269\u003c\/p\u003e \u003cp\u003e The format string Function 269\u003c\/p\u003e \u003cp\u003e f-string Formatting 269\u003c\/p\u003e \u003cp\u003e Comma-Separated Numbers 270\u003c\/p\u003e \u003cp\u003e Strings 270\u003c\/p\u003e \u003cp\u003eFormatting Dates 271\u003c\/p\u003e \u003cp\u003eUsing the Python match Function 271\u003c\/p\u003e \u003cp\u003e Pattern Matching 272\u003c\/p\u003e \u003cp\u003eReference 273\u003c\/p\u003e \u003cp\u003eMoving On 273\u003c\/p\u003e \u003cp\u003eSample Code on GitHub 273\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 33 Development Environments 275\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eIDLE 275\u003c\/p\u003e \u003cp\u003eThonny 275\u003c\/p\u003e \u003cp\u003ePyCharm 276\u003c\/p\u003e \u003cp\u003eVisual Studio 276\u003c\/p\u003e \u003cp\u003eOther Development Environments 276\u003c\/p\u003e \u003cp\u003e LiClipse 276\u003c\/p\u003e \u003cp\u003e Jupyter Notebook 277\u003c\/p\u003e \u003cp\u003e Google Colaboratory 277\u003c\/p\u003e \u003cp\u003e Anaconda 277\u003c\/p\u003e \u003cp\u003e Wing 278\u003c\/p\u003e \u003cp\u003eCommand-Line Execution 278\u003c\/p\u003e \u003cp\u003eCPython, IPython, and Jython 278\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 34 Python Collections and Files 279\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eSlicing 279\u003c\/p\u003e \u003cp\u003eSlicing Strings 280\u003c\/p\u003e \u003cp\u003e Negative Indexes 281\u003c\/p\u003e \u003cp\u003e String Prefix and Suffix Removal 281\u003c\/p\u003e \u003cp\u003eChanging List Contents 281\u003c\/p\u003e \u003cp\u003eCopying a List 282\u003c\/p\u003e \u003cp\u003eReading Files 282\u003c\/p\u003e \u003cp\u003e Using the with Loop 283\u003c\/p\u003e \u003cp\u003eHandling Exceptions 284\u003c\/p\u003e \u003cp\u003eUsing Dictionaries 284\u003c\/p\u003e \u003cp\u003e Combining Dictionaries 286\u003c\/p\u003e \u003cp\u003eUsing Tuples 286\u003c\/p\u003e \u003cp\u003eUsing Sets 287\u003c\/p\u003e \u003cp\u003eUsing the map Function 287\u003c\/p\u003e \u003cp\u003eWriting a Complete Program 288\u003c\/p\u003e \u003cp\u003e Impenetrable Coding 288\u003c\/p\u003e \u003cp\u003eUsing List Comprehension 289\u003c\/p\u003e \u003cp\u003eSample Programs on GitHub 290\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 35 Functions 291\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eReturning a Tuple 292\u003c\/p\u003e \u003cp\u003eWhere Does the Program Start? 292\u003c\/p\u003e \u003cp\u003eSummary 293\u003c\/p\u003e \u003cp\u003ePrograms on GitHub 293\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix A Running Python Programs 295\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eIf You Have Python Installed 295\u003c\/p\u003e \u003cp\u003e Shortcuts 295\u003c\/p\u003e \u003cp\u003eCreating an Executable Python Program 296\u003c\/p\u003e \u003cp\u003eCommand-Line Arguments 297\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eIndex 299\u003c\/strong\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732342157655,"sku":"9780137579938","price":36.09,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780137579938.jpg?v=1719996488"},{"product_id":"better-python-code-9780138320942","title":"Better Python Code","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eDavid Mertz\u003c\/strong\u003e has been a member of the Python community for 25 years. He has taught Python to scientists, developers coming from other languages, and to programming neophytes. He was a director of the Python Software Foundation (PSF) for six years and continues to serve on, or chair, a variety of PSF working groups. David is the author of several technical books and has given keynote addresses at numerous international programming conferences.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\"You'll not just be aspiring to be an expert anymore after practicing through \u003cem\u003eBetter Python Code: A Guide for Aspiring Experts\u003c\/em\u003e, you'll be one of them! Learn from David Mertz, who's been making experts through his writing and training for the past 20 years.\"\u003cbr\u003e\u003cem\u003e--Iqbal Abdullah, past Chair, PyCon Asia Pacific, and past board member, PyCon Japan\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"In \u003cem\u003eBetter Python Code: A Guide for Aspiring Experts\u003c\/em\u003e, David Mertz serves up bite-sized chapters of Pythonic wisdom in this must-have addition to any serious Python programmer's collection. This book helps bridge the gap from beginner to advanced Python user, but even the most seasoned Python programmer can up their game with Mertz's insight into the ins and outs of Python.\"\u003cbr\u003e\u003cem\u003e--Katrina Riehl, President, NumFOCUS\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"What separates ordinary coders from Python experts? It's more than just knowing best practices--it's understanding the benefits and pitfalls of the many aspects of Python, and knowing when and why to choose one approach over another. In this book David draws on his more than 20 years of involvement in the Python ecosystem and his experience as a Python author to make sure that the readers understand both what to do and why in a wide variety of scenarios.\"\u003cbr\u003e\u003cem\u003e--Naomi Ceder, past Chair, Python Software Foundation\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"Like a Pythonic BBC, David Mertz has been informing, entertaining, and educating the Python world for over a quarter of a century, and he continues to do so here in his own pleasantly readable style.\"\u003cbr\u003e\u003cem\u003e--Steve Holden, past Chair, Python Software Foundation\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"Being expert means someone with a lot of experience. David's latest book provides some important but common problems that folks generally learn only after spending years of doing and fixing. I think this book will provide a much quicker way to gather those important bits and help many folks across the world to become better.\"\u003cbr\u003e\u003cem\u003e--Kushal Das, CPython Core Developer and Director, Python Software Foundation\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"This book is for everyone: from beginners, who want to avoid hard-to-find bugs, all the way to experts looking to write more efficient code. David Mertz has compiled a great set of useful idioms that will make your life as a programmer easier and your users happier.\"\u003cbr\u003e\u003cem\u003e--Marc-André Lemburg, past Chair, EuroPython, and past Director, Python Software Foundation\u003c\/em\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cem\u003eForeword xvii\u003c\/em\u003e\u003cbr\u003e\u003cem\u003ePreface xix\u003c\/em\u003e\u003cbr\u003e\u003cem\u003eAcknowledgments xxv\u003c\/em\u003e\u003cbr\u003e\u003cem\u003eAbout the Author xxvii\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eIntroduction 1\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 1: Looping Over the Wrong Things 3\u003c\/strong\u003e\u003cbr\u003e1.1 (Rarely) Generate a List for Iteration 3\u003cbr\u003e1.2 Use enumerate() Instead of Looping Over an Index 6\u003cbr\u003e1.3 Don't Iterate Over dict.keys() When You Want dict.items() 8\u003cbr\u003e1.4 Mutating an Object During Iteration 9\u003cbr\u003e1.5 for Loops Are More Idiomatic Than while Loops 12\u003cbr\u003e1.6 The Walrus Operator for \"Loop-and-a-Half\" Blocks 13\u003cbr\u003e1.7 zip() Simplifies Using Multiple Iterables 15\u003cbr\u003e1.8 zip(strict=True) and itertools.zip_longest() 17\u003cbr\u003e1.9 Wrapping Up 20\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 2: Confusing Equality with Identity 21\u003c\/strong\u003e\u003cbr\u003e2.1 Late Binding of Closures 21\u003cbr\u003e2.2 Overchecking for Boolean Values 25\u003cbr\u003e2.3 Comparing x == None 28\u003cbr\u003e2.4 Misunderstanding Mutable Default Arguments 29\u003cbr\u003e2.5 Copies versus References to Mutable Objects 33\u003cbr\u003e2.6 Confusing is with == (in the Presence of Interning) 35\u003cbr\u003e2.7 Wrapping Up 37\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 3: A Grab Bag of Python Gotchas 39\u003c\/strong\u003e\u003cbr\u003e3.1 Naming Things 39\u003cbr\u003e3.2 Quadratic Behavior of Naive String Concatenation 52\u003cbr\u003e3.3 Use a Context Manager to Open a File 56\u003cbr\u003e3.4 Optional Argument key to .sort() and sorted() 59\u003cbr\u003e3.5 Use dict.get() for Uncertain Keys 62\u003cbr\u003e3.6 Wrapping Up 64\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 4: Advanced Python Usage 67\u003c\/strong\u003e\u003cbr\u003e4.1 Comparing type(x) == type(y) 67\u003cbr\u003e4.2 Naming Things (Revisited) 71\u003cbr\u003e4.3 Keep Less-Used Features in Mind 79\u003cbr\u003e4.4 Type Annotations Are Not Runtime Types 98\u003cbr\u003e4.5 Wrapping Up 105\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 5: Just Because You Can, It Doesn't Mean You Should... 107\u003c\/strong\u003e\u003cbr\u003e5.1 Metaclasses 107\u003cbr\u003e5.2 Monkeypatching 112\u003cbr\u003e5.3 Getters and Setters 115\u003cbr\u003e5.4 It's Easier to Ask for Forgiveness Than Permission 118\u003cbr\u003e5.5 Structural Pattern Matching 121\u003cbr\u003e5.6 Regular Expressions and Catastrophic Backtracking 123\u003cbr\u003e5.7 Wrapping Up 126\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 6: Picking the Right Data Structure 129\u003c\/strong\u003e\u003cbr\u003e6.1 collections.defaultdict 129\u003cbr\u003e6.2 collections.Counter 132\u003cbr\u003e6.3 collections.deque 135\u003cbr\u003e6.4 collections.ChainMap 138\u003cbr\u003e6.5 Dataclasses and Namedtuples 141\u003cbr\u003e6.6 Efficient Concrete Sequences 146\u003cbr\u003e6.7 Wrapping Up 150\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7: Misusing Data Structures 153\u003c\/strong\u003e\u003cbr\u003e7.1 Quadratic Behavior of Repeated List Search 153\u003cbr\u003e7.2 Deleting or Adding Elements to the Middle of a List 157\u003cbr\u003e7.3 Strings Are Iterables of Strings 163\u003cbr\u003e7.4 (Often) Use enum Rather Than CONSTANT 166\u003cbr\u003e7.5 Learn Less Common Dictionary Methods 169\u003cbr\u003e7.6 JSON Does Not Round-Trip Cleanly to Python 174\u003cbr\u003e7.7 Rolling Your Own Data Structures 178\u003cbr\u003e7.8 Wrapping Up 187\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 8: Security 189\u003c\/strong\u003e\u003cbr\u003e8.1 Kinds of Randomness 190\u003cbr\u003e8.2 Putting Passwords or Other Secrets in \"Secure\" Source Code 195\u003cbr\u003e8.3 \"Rolling Your Own\" Security Mechanisms 198\u003cbr\u003e8.4 Use SSL\/TLS for Microservices 201\u003cbr\u003e8.5 Using the Third-Party requests Library 205\u003cbr\u003e8.6 SQL Injection Attacks When Not Using DB-API 208\u003cbr\u003e8.7 Don’t Use assert to Check Safety Assumptions 212\u003cbr\u003e8.8 Wrapping Up 215\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 9: Numeric Computation in Python 217\u003c\/strong\u003e\u003cbr\u003e9.1 Understanding IEEE-754 Floating Point Numbers 217\u003cbr\u003e9.2 Numeric Datatypes 228\u003cbr\u003e9.3 Wrapping Up 239\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix: Topics for Other Books 241\u003c\/strong\u003e\u003cbr\u003eA.1 Test-Driven Development 241\u003cbr\u003eA.2 Concurrency 242\u003cbr\u003eA.3 Packaging 243\u003cbr\u003eA.4 Type Checking 243\u003cbr\u003eA.5 Numeric and Dataframe Libraries 244\u003c\/p\u003e \u003cp\u003e\u003cem\u003eIndex 245\u003c\/em\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732342681943,"sku":"9780138320942","price":35.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780138320942.jpg?v=1719996491"},{"product_id":"learn-python-the-hard-way-9780138270575","title":"Learn Python the Hard Way","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eZed A. Shaw\u003c\/strong\u003e is the author of the popular books, \u003cem\u003eLearn Python the Hard Way\u003c\/em\u003e, \u003cem\u003eLearn Ruby the Hard Way\u003c\/em\u003e, and \u003cem\u003eLearn C the Hard Way\u003c\/em\u003e. He is also the creator of several open source software projects and has been programming and writing for nearly 30 years. Most of his free time is devoted to the study of painting and art history.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cem\u003ePreface xix\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eModule 1: Getting Started in Python 1\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 0: Gearing Up 2\u003c\/strong\u003e\u003cbr\u003eGeneral Instructions 2\u003cbr\u003eMinimalist Start 3\u003cbr\u003eComplete Instructions 3\u003cbr\u003eTesting Your Setup 3\u003cbr\u003eLearning the Command Line 4\u003cbr\u003eNext Steps 5\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 1: A Good First Program 6\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 7\u003cbr\u003eStudy Drills 8\u003cbr\u003eCommon Student Questions 9\u003cbr\u003eThe Blue Plus 9\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 2: Comments and Pound Characters 10\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 10\u003cbr\u003eStudy Drills 10\u003cbr\u003eCommon Student Questions 11\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 3: Numbers and Math 12\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 13\u003cbr\u003eStudy Drills 13\u003cbr\u003eCommon Student Questions 13\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 4: Variables and Names 16\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 17\u003cbr\u003eStudy Drills 17\u003cbr\u003eCommon Student Questions 17\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 5: More Variables and Printing 20\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 20\u003cbr\u003eStudy Drills 21\u003cbr\u003eCommon Student Questions 21\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 6: Strings and Text 22\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 23\u003cbr\u003eStudy Drills 23\u003cbr\u003eBreak It 23\u003cbr\u003eCommon Student Questions 24\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 7: Combining Strings 26\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 26\u003cbr\u003eStudy Drills 26\u003cbr\u003eBreak It 27\u003cbr\u003eCommon Student Questions 27\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 8: Formatting Strings Manually 28\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 28\u003cbr\u003eStudy Drills 29\u003cbr\u003eCommon Student Questions 29\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 9: Multi-Line Strings 30\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 30\u003cbr\u003eStudy Drills 31\u003cbr\u003eCommon Student Questions 31\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 10: Escape Codes in Strings 32\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 33\u003cbr\u003eEscape Sequences 33\u003cbr\u003eStudy Drills 34\u003cbr\u003eCommon Student Questions 34\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 11: Asking People Questions 36\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 36\u003cbr\u003eStudy Drills 37\u003cbr\u003eCommon Student Questions 37\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 12: An Easier Way to Prompt 38\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 38\u003cbr\u003eStudy Drills 38\u003cbr\u003eCommon Student Questions 39\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 13: Parameters, Unpacking, Variables 40\u003c\/strong\u003e\u003cbr\u003eCode Description 41\u003cbr\u003eHold Up! Features Have Another Name 42\u003cbr\u003eWhat You Should See 42\u003cbr\u003eStudy Drills 43\u003cbr\u003eCommon Student Questions 43\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 14: Prompting and Passing 46\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 47\u003cbr\u003eStudy Drills 47\u003cbr\u003eCommon Student Questions 47\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 15: Reading Files 50\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 51\u003cbr\u003eStudy Drills 51\u003cbr\u003eCommon Student Questions 52\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 16: Reading and Writing Files 54\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 55\u003cbr\u003eStudy Drills 55\u003cbr\u003eCommon Student Questions 56\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 17: More Files 58\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 59\u003cbr\u003eStudy Drills 59\u003cbr\u003eCommon Student Questions 59\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eModule 2: The Basics of Programming 61\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 18: Names, Variables, Code, Functions 62\u003c\/strong\u003e\u003cbr\u003eExercise Code 63\u003cbr\u003eWhat You Should See 65\u003cbr\u003eStudy Drills 65\u003cbr\u003eCommon Student Questions 66\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 19: Functions and Variables 68\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 69\u003cbr\u003eStudy Drills 70\u003cbr\u003eCommon Student Questions 70\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 20: Functions and Files 72\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 73\u003cbr\u003eStudy Drills 73\u003cbr\u003eCommon Student Questions 74\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 21: Functions Can Return Something 76\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 77\u003cbr\u003eStudy Drills 77\u003cbr\u003eCommon Student Questions 78\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 22: Strings, Bytes, and Character Encodings 80\u003c\/strong\u003e\u003cbr\u003eInitial Research 80\u003cbr\u003eSwitches, Conventions, and Encodings 82\u003cbr\u003eDissecting the Output 84\u003cbr\u003eDissecting the Code 84\u003cbr\u003eEncodings Deep Dive 86\u003cbr\u003eBreaking It 87\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 23: Introductory Lists 88\u003c\/strong\u003e\u003cbr\u003eAccessing Elements of a List 88\u003cbr\u003ePracticing Lists 89\u003cbr\u003eThe Code 89\u003cbr\u003eThe Challenge 90\u003cbr\u003eFinal Challenge 91\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 24: Introductory Dictionaries 92\u003c\/strong\u003e\u003cbr\u003eKey\/Value Structures 92\u003cbr\u003eCombining Lists with Data Objects 93\u003cbr\u003eThe Code 94\u003cbr\u003eWhat You Should See 95\u003cbr\u003eThe Challenge 95\u003cbr\u003eFinal Challenge 96\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 25: Dictionaries and Functions 98\u003c\/strong\u003e\u003cbr\u003eStep 1: Function Names Are Variables 98\u003cbr\u003eStep 2: Dictionaries with Variables 98\u003cbr\u003eStep 3: Dictionaries with Functions 99\u003cbr\u003eStep 4: Deciphering the Last Line 99\u003cbr\u003eStudy Drill 100\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 26: Dictionaries and Modules 102\u003c\/strong\u003e\u003cbr\u003eStep 1: Review of import 102\u003cbr\u003eStep 2: Find the __dict__ 102\u003cbr\u003eStep 3: Change the __dict__ 103\u003cbr\u003eStudy Drill: Find the \"Dunders\" 104\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 27: The Five Simple Rules to the Game of Code 106\u003c\/strong\u003e\u003cbr\u003eRule 1: Everything Is a Sequence of Instructions 106\u003cbr\u003eRule 2: Jumps Make the Sequence Non-Linear 108\u003cbr\u003eRule 3: Tests Control Jumps 110\u003cbr\u003eRule 4: Storage Controls Tests 111\u003cbr\u003eRule 5: Input\/Output Controls Storage 112\u003cbr\u003ePutting It All Together 113\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 28: Memorizing Logic 116\u003c\/strong\u003e\u003cbr\u003eThe Truth Terms 116\u003cbr\u003eThe Truth Tables 117\u003cbr\u003eCommon Student Questions 119\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 29: Boolean Practice 120\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 122\u003cbr\u003eStudy Drills 122\u003cbr\u003eCommon Student Questions 122\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 30: What If 124\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 124\u003cbr\u003edis() It 125\u003cbr\u003eStudy Drill 125\u003cbr\u003eCommon Student Questions 125\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 31: Else and If 126\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 127\u003cbr\u003edis() It 127\u003cbr\u003eStudy Drills 128\u003cbr\u003eCommon Student Questions 128\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 32: Making Decisions 130\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 131\u003cbr\u003edis() It 131\u003cbr\u003eStudy Drills 132\u003cbr\u003eCommon Student Questions 132\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 33: Loops and Lists 134\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 135\u003cbr\u003edis() It 136\u003cbr\u003eStudy Drills 137\u003cbr\u003eCommon Student Questions 137\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 34: While Loops 138\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 139\u003cbr\u003edis() It 139\u003cbr\u003eStudy Drills 140\u003cbr\u003eCommon Student Questions 140\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 35: Branches and Functions 142\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 143\u003cbr\u003eStudy Drills 144\u003cbr\u003eCommon Student Questions 144\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 36: Designing and Debugging 146\u003c\/strong\u003e\u003cbr\u003eFrom Idea to Working Code 146\u003cbr\u003eRules for If-Statements 149\u003cbr\u003eRules for Loops 149\u003cbr\u003eTips for Debugging 149\u003cbr\u003eHomework 150\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 37: Symbol Review 152\u003c\/strong\u003e\u003cbr\u003eKeywords 152\u003cbr\u003eData Types 153\u003cbr\u003eString Escape Sequences 154\u003cbr\u003eOld-Style String Formats 154\u003cbr\u003eOperators 155\u003cbr\u003eReading Code 156\u003cbr\u003eStudy Drills 157\u003cbr\u003eCommon Student Questions 157\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eModule 3: Applying What You Know 159\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 38: Beyond Jupyter for Windows 160\u003c\/strong\u003e\u003cbr\u003eWhy Learn PowerShell? 161\u003cbr\u003eWhat Is PowerShell? 161\u003cbr\u003eCrash Landing 171\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 39: Beyond Jupyter for macOS\/Linux 172\u003c\/strong\u003e\u003cbr\u003eWhy Learn Bash or ZSH? 173\u003cbr\u003eWhat Is Bash? 173\u003cbr\u003eCrash Landing 184\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 40: Advanced Developer Tools 186\u003c\/strong\u003e\u003cbr\u003eManaging conda Environments 186\u003cbr\u003eAdding conda-forge 187\u003cbr\u003eUsing pip 188\u003cbr\u003eUsing a .condarc 188\u003cbr\u003eGeneral Editing Tips 189\u003cbr\u003eGoing Further 189\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 41: A Project Skeleton 190\u003c\/strong\u003e\u003cbr\u003eActivate an Environment 190\u003cbr\u003eJust Use cookiecutter 190\u003cbr\u003eBuilding Your Project 191\u003cbr\u003eInstalling Your Project 191\u003cbr\u003eTesting the Install 192\u003cbr\u003eRemove test-project 192\u003cbr\u003eCommon Errors 193\u003cbr\u003eStudy Drills 193\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 42: Doing Things to Lists 194\u003c\/strong\u003e\u003cbr\u003eWhat You Should See 195\u003cbr\u003eWhat Lists Can Do 196\u003cbr\u003eWhen to Use Lists 197\u003cbr\u003eStudy Drills 197\u003cbr\u003eCommon Student Questions 198\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 43: Doing Things to Dictionaries 200\u003c\/strong\u003e\u003cbr\u003eA Dictionary Example 201\u003cbr\u003eWhat You Should See 203\u003cbr\u003eWhat Dictionaries Can Do 203\u003cbr\u003eStudy Drills 204\u003cbr\u003eCommon Student Questions 204\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 44: From Dictionaries to Objects 206\u003c\/strong\u003e\u003cbr\u003eStep 1: Passing a Dict to a Function 206\u003cbr\u003eStep 2: talk inside the Dict 207\u003cbr\u003eStep 3: Closures 208\u003cbr\u003eStep 4: A Person Constructor 209\u003cbr\u003eStudy Drills 211\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 45: Basic Object-Oriented Programming 212\u003c\/strong\u003e\u003cbr\u003ePython's People 212\u003cbr\u003eUsing dir() and __dict__ 213\u003cbr\u003eAbout the Dot (.) 214\u003cbr\u003eTerminology 215\u003cbr\u003eA Word on self 216\u003cbr\u003eStudy Drills 217\u003cbr\u003eCommon Student Questions 217\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 46: Inheritance and Advanced OOP 218\u003c\/strong\u003e\u003cbr\u003eHow This Looks in Code 219\u003cbr\u003eAbout class Name(object) 221\u003cbr\u003eStudy Drills 221\u003cbr\u003eCommon Student Questions 222\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 47: Basic Object-Oriented Analysis and Design 224\u003c\/strong\u003e\u003cbr\u003eThe Analysis of a Simple Game Engine 225\u003cbr\u003eTop Down versus Bottom Up 229\u003cbr\u003eThe Code for \"Gothons from Planet Percal #25\" 230\u003cbr\u003eWhat You Should See 236\u003cbr\u003eStudy Drills 237\u003cbr\u003eCommon Student Questions 237\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 48: Inheritance versus Composition 238\u003c\/strong\u003e\u003cbr\u003eWhat Is Inheritance? 238\u003cbr\u003eThe Reason for super() 243\u003cbr\u003eComposition 243\u003cbr\u003eWhen to Use Inheritance or Composition 245\u003cbr\u003eStudy Drill 245\u003cbr\u003eCommon Student Questions 246\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 49: You Make a Game 248\u003c\/strong\u003e\u003cbr\u003eEvaluating Your Game 248\u003cbr\u003eFunction Style 249\u003cbr\u003eClass Style 249\u003cbr\u003eCode Style 250\u003cbr\u003eGood Comments 250\u003cbr\u003eEvaluate Your Game 250\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 50: Automated Testing 252\u003c\/strong\u003e\u003cbr\u003eWhat Is the Purpose of Testing? 252\u003cbr\u003eHow to Test Efficiently 252\u003cbr\u003eInstall PyTest 253\u003cbr\u003eSimple PyTest Demo 254\u003cbr\u003eRunning pytest 255\u003cbr\u003eExceptions and try\/except 255\u003cbr\u003eGetting Coverage Reports 256\u003cbr\u003eStudy Drills 256\u003cbr\u003eCommon Student Questions 257\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eModule 4: Python and Data Science 259\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 51: What Is Data Munging? 260\u003c\/strong\u003e\u003cbr\u003eWhy Data Munging? 261\u003cbr\u003eThe Problem 261\u003cbr\u003eThe Setup 262\u003cbr\u003eHow to Code 262\u003cbr\u003eProcess Example 263\u003cbr\u003eSolution Strategies 265\u003cbr\u003eAwesome ETL Tools 266\u003cbr\u003eStudy Drills 266\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 52: Scraping Data from the Web 268\u003c\/strong\u003e\u003cbr\u003eIntroducing with 268\u003cbr\u003eThe Problem 269\u003cbr\u003eThe Setup 269\u003cbr\u003eThe Clue 270\u003cbr\u003eAwesome Scraping Tools 270\u003cbr\u003eStudy Drills 271\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 53: Getting Data from APIs 272\u003c\/strong\u003e\u003cbr\u003eIntroducing JSON 272\u003cbr\u003eThe Problem 273\u003cbr\u003eThe Setup 274\u003cbr\u003eThe Clue 274\u003cbr\u003eAwesome API Tools 275\u003cbr\u003eStudy Drills 275\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 54: Data Conversion with pandas 276\u003c\/strong\u003e\u003cbr\u003eIntroducing Pandoc 276\u003cbr\u003eThe Problem 276\u003cbr\u003eThe Setup 277\u003cbr\u003eThe Clue 277\u003cbr\u003eStudy Drills 278\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 55: How to Read Documentation (Featuring pandas) 280\u003c\/strong\u003e\u003cbr\u003eWhy Programmer Documentation Sucks 280\u003cbr\u003eHow to Actively Read Programmer Docs 281\u003cbr\u003eStep #1: Find the Docs 281\u003cbr\u003eStep #2: Determine Your Strategy 282\u003cbr\u003eStep #3: Code First, Docs Second 283\u003cbr\u003eStep #4: Break or Change the Code 283\u003cbr\u003eStep #5: Take Notes 284\u003cbr\u003eStep #6: Use It on Your Own 284\u003cbr\u003eStep #7: Write About What You Learned 284\u003cbr\u003eStep #8: What’s the Gestalt? 285\u003cbr\u003eReading My pandas Curriculum 286\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 56: Using Only pandas 288\u003c\/strong\u003e\u003cbr\u003eMake a Project 288\u003cbr\u003eThe Problem 288\u003cbr\u003eThe Setup 289\u003cbr\u003eStudy Drill 289\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 57: The SQL Crash Course 290\u003c\/strong\u003e\u003cbr\u003eWhat Is SQL? 290\u003cbr\u003eThe Setup 291\u003cbr\u003eFixing and Loading 292\u003cbr\u003eCreate, Read, Update, Delete 293\u003cbr\u003eSELECT 293\u003cbr\u003eDate and Time 294\u003cbr\u003eINSERT 295\u003cbr\u003eUPDATE 296\u003cbr\u003eDELETE and Transactions 297\u003cbr\u003eMath, Aggregates, and GROUP BY 298\u003cbr\u003ePython Access 299\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 58: SQL Normalization 300\u003c\/strong\u003e\u003cbr\u003eWhat Is Normalization? 300\u003cbr\u003eFirst Normal Form 301\u003cbr\u003eSecond Normal Form (2NF) 303\u003cbr\u003eQuerying 2NF Data 306\u003cbr\u003eQuerying with Joins 308\u003cbr\u003eStudy Drills 308\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 59: SQL Relationships 310\u003c\/strong\u003e\u003cbr\u003eOne-to-Many (1:M) 310\u003cbr\u003eMany-to-Many (M:M) 311\u003cbr\u003eOne-to-One (1:1) 312\u003cbr\u003eAttributed Relations 313\u003cbr\u003eQuerying M:M Tables 313\u003cbr\u003eYour Last Study Drill 314\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eExercise 60: Advice from an Even Older Programmer 316\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cem\u003eIndex 318\u003c\/em\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732342649175,"sku":"9780138270575","price":28.79,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780138270575.jpg?v=1719996491"},{"product_id":"modern-fortran-explained-9780198811886","title":"Modern Fortran Explained","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eFortran marches on, remaining one of the principal programming languages used in high-performance scientific, numerical, and engineering computing. A series of significant revisions to the standard versions of the language have progressively enhanced its capabilities, and the latest standard - Fortran 2018 - includes many additions and improvements.This edition of Modern Fortran Explained expands on the last. Given the release of updated versions of Fortran compilers, the separate descriptions of Fortran 2003 and Fortran 2008 have been incorporated into the main text, which thereby becomes a unified description of the full Fortran 2008 version of the language. This clearer standard has allowed many deficiencies and irregularities in the earlier language versions to be resolved.Four new chapters describe the additional features of Fortran 2018, with its enhancements to coarrays for parallel programming, interoperability with C, IEEE arithmetic, and various other improvements.Written by \u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003eAn excellent, authoritative and complete reference book on the modern Fortran language, where all its possibilities are collected and any detail of the language can be clearly consulted. * European Mathematical Society *\u003cbr\u003eWell organized and equipped with good examples, the text can be used as both a tutorial and a reference. It describes each of the language elements and explains where FORTRAN 2018 differs from its predecessors. A thorough index is provided; all illustrations are clear and concise. The language used in descriptions and explanations throughout the book is clear and easy to follow. This book is an excellent resource for all practitioners. * F. H. Wild III, University of Rhode Island, CHOICE Connect *\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e1: Whence Fortran? 2: Language elements 3: Expressions and assignments 4: Control constructs 5: Program units and procedures 6: Allocation of data 7: Array features 8: Specification statements 9: Intrinsic procedures and modules 10: Data transfer 11: Edit descriptors 12: Operations on external files 13: Advanced type parameter features 14: Procedure pointers 15: Object-oriented programming 16: Submodules 17: Coarrays 18: Floating-point exception handling 19: Interoperability with C 20: Fortran 2018 coarray enhancements 21: Fortran 2018 enhancements to interoperability with C 22: Fortran 2018 conformance with ISO\/IEC\/IEEE 60559:2011 23: Minor Fortran 2018 features","brand":"Oxford University Press","offers":[{"title":"Default Title","offer_id":48732792619351,"sku":"9780198811886","price":55.1,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780198811886.jpg?v=1719998422"},{"product_id":"art-of-computer-programming-the-9780201038040","title":"Art of Computer Programming The","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eDonald E. Knuth \u003c\/strong\u003eis known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the TEX and METAFONT systems for computer typesetting, and for his prolific and influential writing (26 books, 161 papers). Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of his seminal multivolume series on classical computer science, begun in 1962 when he was a graduate student at California Institute of Technology. Professor Knuth is the recipient of numerous awards and honors, including the ACM Turing Award, the Medal of Science presented by President Carter, the AMS Steele Prize for expository writing, and, in November, 1996, the prestigious Kyoto Prize for advanced technology. He lives on the Stanford campus with his wife, Jill.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cem\u003ePreface\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\u003cem\u003eNotes on the Exercises\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7: Combinatorial Searching 1\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e7.1: Zeros and Ones 47\u003c\/p\u003e \u003cp\u003e7.2: Generating All Possibilities 281\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAnswers to Exercises 514\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix A: Tables of Numerical Quantities 818\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix B: Index to Notations 822\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix C: Index to Algorithms and Theorems 828\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAppendix D: Index to Combinatorial Problems 830\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eIndex and Glossary 834\u003c\/strong\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732892070231,"sku":"9780201038040","price":53.54,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780201038040.jpg?v=1719998836"},{"product_id":"computer-coding-python-projects-for-kids-9780241286869","title":"Computer Coding Python Projects for Kids","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cul\u003e\n\u003cli\u003e1: Starting with Python\u003c\/li\u003e\n\u003cli\u003e2: What is coding?\u003c\/li\u003e\n\u003cli\u003e3: Meet Python\u003c\/li\u003e\n\u003cli\u003e4: Installing Python\u003c\/li\u003e\n\u003cli\u003e5: Using IDLE\u003c\/li\u003e\n\u003cli\u003e1: First Steps\u003c\/li\u003e\n\u003cli\u003e2: Your first program\u003c\/li\u003e\n\u003cli\u003e3: Variables\u003c\/li\u003e\n\u003cli\u003e4: Making decisions\u003c\/li\u003e\n\u003cli\u003e5: Loopy loops\u003c\/li\u003e\n\u003cli\u003e6: Animal Quiz\u003c\/li\u003e\n\u003cli\u003e7: Functions\u003c\/li\u003e\n\u003cli\u003e8: Fixing bugs\u003c\/li\u003e\n\u003cli\u003e9: Password Picker\u003c\/li\u003e\n\u003cli\u003e10: Modules\u003c\/li\u003e\n\u003cli\u003e11: Nine Lives\u003c\/li\u003e\n\u003cli\u003e3: Turtle Graphics\u003c\/li\u003e\n\u003cli\u003e1: Robot Builder\u003c\/li\u003e\n\u003cli\u003e2: Kaleido-spiral\u003c\/li\u003e\n\u003cli\u003e3: Starry Night\u003c\/li\u003e\n\u003cli\u003e4: Mutant Rainbow\u003c\/li\u003e\n\u003cli\u003e4: Playful Apps\u003c\/li\u003e\n\u003cli\u003e1: Countdown Calendar\u003c\/li\u003e\n\u003cli\u003e2: Ask the Expert\u003c\/li\u003e\n\u003cli\u003e3: Secret Messages\u003c\/li\u003e\n\u003cli\u003e4: Screen Pet\u003c\/li\u003e\n\u003cli\u003e5: Games in Python\u003c\/li\u003e\n\u003cli\u003e1: Caterpillar\u003c\/li\u003e\n\u003cli\u003e2: Snap\u003c\/li\u003e\n\u003cli\u003e3: Matchmaker\u003c\/li\u003e\n\u003cli\u003e4: Egg Catcher\u003c\/li\u003e\n\u003cli\u003e6: Reference\u003c\/li\u003e\n\u003cli\u003e1: Project reference\u003c\/li\u003e\n\u003cli\u003e2: Glossary\u003c\/li\u003e\n\u003cli\u003e3: Index\u003c\/li\u003e\n\u003cli\u003e4: Acknowledgments\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Dorling Kindersley Ltd","offers":[{"title":"Default Title","offer_id":48732984836439,"sku":"9780241286869","price":14.24,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780241286869.jpg?v=1719999164"},{"product_id":"multiagent-oriented-programming-programming-multiagent-systems-using-jacamo-intelligent-robotics-and-autonomous-agents-9780262044578","title":"MultiAgent Oriented Programming Programming","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eThe main concepts and techniques of multi-agent oriented programming, which supports the multi-agent systems paradigm at the programming level.\u003c\/b\u003e\u003cp\u003eA multi-agent system is an organized ensemble of autonomous, intelligent, goal-oriented entities called agents, communicating with each other and interacting within an environment. This book introduces the main concepts and techniques of multi-agent oriented programming, (MAOP) which supports the multi-agent systems paradigm at the programming level. MAOP provides a structured approach based on three integrated dimensions, which the book examines in detail: the agent dimension, used to design the individual (interacting) entities; the environment dimension, which allows the development of shared resources and connections to the real world; and the organization dimension, which structures the interactions among the autonomous agents and the shared environment. \u003c\/p\u003e\u003cp\u003eThe book puts the approach into practice using the JaCaMo programming\u003c\/p\u003e","brand":"MIT Press Ltd","offers":[{"title":"Default Title","offer_id":48733454106967,"sku":"9780262044578","price":45.6,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780262044578.jpg?v=1720000138"},{"product_id":"numerical-methods-in-finance-with-c-9780521177160","title":"Numerical Methods in Finance with C","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eThis book focuses on solving and implementing the increasingly complex numerical problems that arise in finance. Readers will learn the numerical techniques and programming skills necessary for any aspiring quant developer. No programming background is required, making the book thoroughly suitable for beginners.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\"This book leads the reader directly into the heart of C++ programming technique without too much fuss. And in so doing, the reader also learns some very important and fundamental methods in options pricing. I highly recommend this little gem of a book.\"   Professor Michael K. Ong, IIT Stuart School of Business\u003cbr\u003e\"I find the monograph to be an excellent integration of the object-oriented concepts of C++ and the classical numerical techniques used in quantitative finance. Throughout the book, there is an introduction to the numerical technique to be used, along with the need for such a method from the prospective of financial mathematics. After this discussion, the C++ source code that implements the technique is not only given but also annotated to highlight or to clarify reasons for the use of certain object-oriented constructs. As the authors comment, there are some source files which are not listed but are available from the publisher's web site.      The monograph is an exceptional book for demonstrating the implementation of the various aspects of C++ in a very concrete fashion. There is substance given to C++ concepts that  are introduced in basic programming courses but seldom framed in a realistic setting. The reader, however, should have some familiarity with C++ and mathematical finance, prior to reading the monograph. The book is not intended to be an introduction to either object-oriented C++ or mathematical finance. With such a background, the style and the content of the book make for an informative experience.\"   Professor Sherman Wong, City University of New York\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003ePreface; 1. Binomial pricer; 2. Binomial pricer revisited; 3. American options; 4. Nonlinear solvers; 5. Monte Carlo methods; 6. Finite difference methods; Index.","brand":"Cambridge University Press","offers":[{"title":"Default Title","offer_id":48733848174935,"sku":"9780521177160","price":35.14,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780521177160.jpg?v=1720001877"},{"product_id":"efficient-go-9781098105716","title":"Efficient Go","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eWith this book, any engineer can learn how to approach software efficiency effectively, professionally, and without stress. Author Bartłomiej Płotka provides the tools and knowledge required to make your systems faster and less resource-hungry.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48738226602327,"sku":"9781098105716","price":39.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781098105716.jpg?v=1723811836"},{"product_id":"the-rules-of-programming-9781098133115","title":"The Rules of Programming","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eThis philosophy-of-programming guide presents a unique and entertaining take on how to think about programming. A collection of 21 pragmatic rules, each presented in a standalone chapter, captures the essential wisdom that every freshly minted programmer needs to know and provides thought-provoking insights for more seasoned programmers.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48738226864471,"sku":"9781098133115","price":27.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781098133115.jpg?v=1723811837"},{"product_id":"programming-the-bbc-microbit-getting-started-with-micropython-9781260117585","title":"Programming the BBC microbit Getting Started with","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003e\n\u003cdiv\u003e\u003cb\u003ePublisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, \u003cspan style=\"white-space: pre;\"\u003e\u003c\/span\u003eauthenticity, or access to any online entitlements included with the product.\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cb\u003eQuickly write innovative programs for your micro:bitâno experience necessary!\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003c\/div\u003e\n\u003cdiv\u003eThis easy-to-follow guide shows, step-by-step, how to quickly get started with programming and creating fun applications on your micro:bit.. Written in the straightforward style that Dr. Simon Monk is famous for, \u003ci\u003eProgramming the BBC micro:bit: Getting Started with MicroPython\u003c\/i\u003e begins with basic concepts and gradually progresses to more advanced techniques. You will discover how to use the micro:bit's built-in hardware, use the LED display, accept input from sensors, attach external electronics, and handle wireless communication.\u003c\/div\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv\u003eâ\u003cspan style=\"\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"McGraw-Hill Education","offers":[{"title":"Default Title","offer_id":48738472624471,"sku":"9781260117585","price":14.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781260117585.jpg?v=1723812074"},{"product_id":"java-how-to-program-late-objects-global-edition-9781292273730","title":"Java How to Program Late Objects Global Edition","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e1. Introduction to Computers, the Internet and Java\u003c\/p\u003e \u003cp\u003e2. Introduction to Java Applications; Input\/Output and Operators\u003c\/p\u003e \u003cp\u003e3. Control Statements: Part 1; Assignment, ++ and -- Operators\u003c\/p\u003e \u003cp\u003e4. Control Statements: Part 2; Logical Operators\u003c\/p\u003e \u003cp\u003e5. Methods\u003c\/p\u003e \u003cp\u003e6. Arrays and ArrayLists\u003c\/p\u003e \u003cp\u003e7. Introduction to Classes and Objects\u003c\/p\u003e \u003cp\u003e8. Classes and Objects: A Deeper Look\u003c\/p\u003e \u003cp\u003e9. Object-Oriented Programming: Inheritance\u003c\/p\u003e \u003cp\u003e10. Object-Oriented Programming: Polymorphism and Interfaces\u003c\/p\u003e \u003cp\u003e11. Exception Handling: A Deeper Look\u003c\/p\u003e \u003cp\u003e12. JavaFX Graphical User Interfaces: Part 1\u003c\/p\u003e \u003cp\u003e13. JavaFX GUI: Part 2\u003c\/p\u003e \u003cp\u003e14. Strings, Characters, and Regular Expressions\u003c\/p\u003e \u003cp\u003e15. Files, Input\/Output Streams, NIO and XML Serialization\u003c\/p\u003e \u003cp\u003e16. Generic Collections\u003c\/p\u003e \u003cp\u003e17. Lambdas and Streams\u003c\/p\u003e \u003cp\u003e18. Recursion\u003c\/p\u003e \u003cp\u003e19. Searching, Sorting and Big O\u003c\/p\u003e \u003cp\u003e20. Generic Classes and Methods: A Deeper Look\u003c\/p\u003e \u003cp\u003e21. Custom Generic Data Structures\u003c\/p\u003e \u003cp\u003e22. JavaFX Graphics and Multimedia\u003c\/p\u003e \u003cp\u003e23. Concurrency\u003c\/p\u003e \u003cp\u003e24. Accessing Databases with JDBC\u003c\/p\u003e \u003cp\u003e25. Introduction to JShell: Java 9’s REPL\u003c\/p\u003e \u003cp\u003eChapters on the Web\u003c\/p\u003e \u003cp\u003eA. Operator Precedence Chart\u003c\/p\u003e \u003cp\u003eB. ASCII Character Set \u003c\/p\u003e \u003cp\u003eC. Keywords and Reserved Words \u003c\/p\u003e \u003cp\u003eD. Primitive Types \u003c\/p\u003e \u003cp\u003eE. Using the Debugger \u003c\/p\u003e \u003cp\u003eAppendices on the Web \u003c\/p\u003e \u003cp\u003eIndex \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eOnline Chapters and Appendices\u003c\/p\u003e \u003cp\u003e26. Swing GUI Components: Part 1\u003c\/p\u003e \u003cp\u003e27. Graphics and Java 2D\u003c\/p\u003e \u003cp\u003e28. Networking\u003c\/p\u003e \u003cp\u003e29. Java Persistence API (JPA)\u003c\/p\u003e \u003cp\u003e30. JavaServer™ Faces Web Apps: Part 1\u003c\/p\u003e \u003cp\u003e31. JavaServer™ Faces Web Apps: Part 2\u003c\/p\u003e \u003cp\u003e32. REST-Based Web Services\u003c\/p\u003e \u003cp\u003e33. (Optional) ATM Case Study, Part 1: Object-Oriented Design with the UML\u003c\/p\u003e \u003cp\u003e34. (Optional) ATM Case Study, Part 2: Implementing an Object-Oriented Design\u003c\/p\u003e \u003cp\u003e35. Swing GUI Components: Part 2\u003c\/p\u003e \u003cp\u003e36. Java Module System and Other Java 9 Features\u003c\/p\u003e \u003cp\u003eF. Using the Java API Documentation\u003c\/p\u003e \u003cp\u003eG. Creating Documentation with javadoc\u003c\/p\u003e \u003cp\u003eH. Unicode®\u003c\/p\u003e \u003cp\u003eI. Formatted Output\u003c\/p\u003e \u003cp\u003eJ. Number Systems\u003c\/p\u003e \u003cp\u003eK. Bit Manipulation\u003c\/p\u003e \u003cp\u003eL. Labeled break and continue Statements\u003c\/p\u003e \u003cp\u003eM. UML 2: Additional Diagram Types\u003c\/p\u003e \u003cp\u003eN. Design Patterns\u003c\/p\u003e","brand":"Pearson Education Limited","offers":[{"title":"Default Title","offer_id":48738533638487,"sku":"9781292273730","price":62.69,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781292273730.jpg?v=1723812124"},{"product_id":"introducing-ethereum-and-solidity-9781484225349","title":"Introducing Ethereum and Solidity","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003e\n\u003cp\u003eLearn how to use Solidity and the Ethereum project - second only to Bitcoin in market capitalization. Blockchain protocols are taking the world by storm, and the Ethereum project, with its Turing-complete scripting language Solidity, has rapidly become a front-runner. This book\u003ci\u003e \u003c\/i\u003epresents the blockchain phenomenon in context; then situates Ethereum in a world pioneered by Bitcoin.\u003c\/p\u003e\n\u003cp\u003eSee why professionals and non-professionals alike are honing their skills in smart contract patterns and distributed application development. You''ll review the fundamentals of programming and networking, alongside its introduction to the new discipline of crypto-economics. You''ll then deploy smart contracts of your own, and learn how they can serve as a back-end for JavaScript and HTML applications on the Web.\u003c\/p\u003eMany Solidity tutorials out there today have the same flaw: they are written for advanced JavaScript developers who want to transfer their skills to a blockchain enviro\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e1. Bridging the Blockchain Knowledge Gap\u003c\/p\u003e\n\u003cp\u003e2. The Mist Browser\u003c\/p\u003e\n\u003cp\u003e3. The EVM\u003c\/p\u003e\n\u003cp\u003e4. Solidity Programming\u003c\/p\u003e\n\u003cp\u003e5. Smart Contacts and Tokens\u003c\/p\u003e\n\u003cp\u003e6. Mining Ether\u003c\/p\u003e\n\u003cp\u003e7. Cryptoeconomics Survey\u003c\/p\u003e\n\u003cp\u003e8. Dapp Deployment\u003c\/p\u003e9. Creating Private Chains\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e10. Use Cases\u003c\/p\u003e\n\u003cp\u003e11. Advanced Concepts\u003c\/p\u003e\n\u003c\/div\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739662496087,"sku":"9781484225349","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484225349.jpg?v=1720052848"},{"product_id":"matlab-deep-learning-9781484228449","title":"MATLAB Deep Learning","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003eGet started with MATLAB for deep learning and AI with this in-depth primer. In this book, you start with machine learning fundamentals, then move on to neural networks, deep learning, and then convolutional neural networks. In a blend of fundamentals and applications, \u003ci\u003eMATLAB Deep Learning\u003c\/i\u003e employs MATLAB as the underlying programming language and tool for the examples and case studies in this book.  \u003c\/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\u003cdiv\u003eWith this book, you''ll be able to tackle some of today''s real world big data, smart bots, and other complex data problems. You''ll see how deep learning is a complex and more intelligent aspect of machine learning for modern smart data analysis and usage.\u003c\/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cb\u003eWhat You''ll Learn\u003c\/b\u003e\u003c\/div\u003e\u003cdiv\u003e\u003cul\u003e\n\u003cli\u003eUse MATLAB for deep learning\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eDiscover neural networks and multi-layer neural networks\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eWork with convolution and pooling layers\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eBuild a MNIST example with these layers\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/div\u003e\u003cb\u003eWho\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e1. Machine Learning2. Neural Network3. Training of Multi-Layer Neural Network4. Neural Network and Classification5. Deep Learning6. Convolutional Neural Network\u003c\/b\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739662594391,"sku":"9781484228449","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484228449.jpg?v=1720052848"},{"product_id":"getting-started-with-containers-in-google-cloud-platform-9781484264690","title":"Getting Started with Containers in Google Cloud","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eDeploy, manage, and secure containers and containerized applications on Google Cloud Platform (GCP). This book covers each container service in GCP from the ground up and teaches you how to deploy and manage your containers on each service.\u003cdiv\u003e\n\u003cbr\u003e\u003cdiv\u003eYou will start by setting up and configuring GCP tools and the tenant environment. You then will store and manage Docker container images with GCP Container Registry (ACR). Next, you will deploy containerized applications with GCP Cloud Run and create an automated CI\/CD deployment pipeline using Cloud Build. The book covers GCP''s flagship service, Google Kubernetes Service (GKE), and deployment of a Kubernetes cluster using clear steps and considering GCP best practices using the GCP management console and gcloud command-line tool. Also covered is monitoring containers and containerized applications on GCP with Cloud Monitoring, and backup and restore containers and containerized applications on GCP.\u003c\/div\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv\u003eBy the end\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eChapter 1:  Get Started with Google Cloud Platform (GCP)Chapter Goal: Setup and configure GCP tools and tenant environment No of pages: 40 \tSub -Topics1.\tSet up your Google Cloud Platform (GCP) tenant2.\tUnderstanding GCP projects3.\tUnderstanding cloud shell4.\tSecure and manage your GCP account (projects and more)5.\tGCP Services overview \u003cbr\u003eChapter 2:  Store and Manage Docker Container Images with GCP Container Registry (ACR)Chapter Goal: Here we learn how to Store Docker Container images on GCP Container registry No of pages: 40\u003cbr\u003eSub - Topics\t1.  Setup GCP Container Registry2. Push Docker images to Container Registry3. Pull images from GCP Container Registry4. Manage and secure GCP Container Registry\u003cbr\u003eChapter 3: Deploy Containerized Applications with GCP Cloud RunChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP cloud run No of pages: 40\u003cbr\u003eSub - Topics:\t 1.\tSet up GCP cloud run 2.\tDeploy containers with cloud run3.\tUse cloud build and git to deploy containers 4.\tScale containerized applications on cloud run5.\tMonitor and manage containerized applications on cloud run\u003cbr\u003eChapter 4: Deploy Containerized Applications with Google Kubernetes Engine (GKE)Chapter Goal: This chapters explains how to deploy containers and containerized applications with GKENo of pages:\u003cbr\u003eSub - Topics: 1. Getting started with GKE2. Setup and configure GKE networking and storage3. Deploy Kubernetes dashboard (Web UI) on GKE4. Manage and secure GKE5. Run Batch jobs on Kubernetes with batch (beta)\u003cbr\u003eChapter 5: Deploy Docker Containers on GCP Compute Engine \u003cbr\u003eChapter Goal: This chapter explains how to deploy containers and containerized applications on GCP compute engineNo of pages: 40\u003cbr\u003eSub - Topics: 1. Install Docker container host on Ubuntu Linux VM 2. Install Docker container host on Windows server 2019 VM3. Deploy containers on GCP compute engine using GCP container-optimized OS\u003cbr\u003eChapter 6: Secure your GCP Environment and Containers  Chapter Goal:  This chanpters explains how to secure and protect containers and containerized applications on GCPNo of pages: 40\u003cbr\u003eSub - Topics: 1. Introduction to GCP identify infrastructure 2. Setup organization policies 3. Roles, service accounts and auditing capabilities4. GCP networking and firewalls configuration \u003cbr\u003eChapter 7: Scale Containers and Containerized Applications on GCPChapter Goal: This chapter explains how to scale containers and containerized applications on GCPNo of pages: 40\u003cbr\u003eSub - Topics: 1. Scale Google Kubernetes Service (GKE)2. Scale cloud run and cloud build containers 3. Scale GCP Container Registry4. Scale compute engine hosts and containers \u003cbr\u003eChapter 8: Monitor Containers and Containerized Applications on GCP with Stackdriver MonitoringChapter Goal: Learn how to Monitor Containers and Containerized Applications on GCPNo of pages: 40Sub - Topics: 1. Monitor Google Kubernetes Service (GKE) 2. Monitor cloud run containers 3. Monitor compute engine resources 4. GCP cost management and tools \u003cbr\u003eChapter 9: Backup and Restore Containers and Containerized Applications on GCP\u003cbr\u003eChapter Goal: This chapter explains how to backup and restore containers and containerized applications on GCPNo of pages: 40Sub - Topics: 1. Backup persistent storage disks 2. Backup compute engine resources 3. Manage cloud storage and file store \u003cbr\u003eChapter 10: Troubleshooting Containers and Containerized Applications on GCP   Chapter Goal: This chapters explains how to troubleshoot containers and containerized applications issues on GCPNo of pages: 40Sub - Topics: 1. Troubleshoot Google Kubernetes Service (GKE)2. Troubleshoot cloud run and cloud build deployments  3. Troubleshoot GCP Container Registry5. Troubleshoot compute engine resource \u003cbr\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739666493783,"sku":"9781484264690","price":37.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484264690.jpg?v=1720052855"},{"product_id":"java-ee-to-jakarta-ee-10-recipes-9781484280782","title":"Java EE to Jakarta EE 10 Recipes","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eTake a problem-solution approach for programming enterprise Java or Java EE applications and microservices for cloud-based solutions, enterprise database applications, and even small business web applications. \u003cem\u003eJava EE to Jakarta EE 10 Recipes\u003c\/em\u003e provides effective, practical, and proven code snippets that you can immediately use to accomplish just about any task that you may encounter. You can feel confident using the reliable solutions that are demonstrated in this book in your personal or corporate environment.\u003c\/p\u003e\u003cp\u003e \u003c\/p\u003e\u003cp\u003eJava EE was made open source under the Eclipse Foundation, and Jakarta EE is the new name for what used to be termed the Java Platform, Enterprise Edition. This book helps you rejuvenate your Java expertise and put the platform''s latest capabilities to use for quickly developing robust applications. If you are new to Jakarta EE, this book will help you learn the features of the platform and benefit from one of the most widely used an\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eRevision Notes from Author\u003cbr\u003eBased on the book preview, below is the list of changes\/updates I see relevant for the next revisions of this book - \u003ci\u003eJakarta EE 10 Recipes\u003c\/i\u003e. \u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e----------------------------------\u003cbr\u003e\u003cp\u003eIntroduction: \u003c\/p\u003e\u003col\u003e\n\u003cli\u003e Adding following details for Jakarta EE 9, 9.1 and 10 releases like timelines and theme.\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Updating instructions for enabling Jakarta EE support using NetBeans IDE \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Adding instructions for using the following IDE for building Jakarta EE applications. \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003col\u003e\n\u003cli\u003e Eclipse IDE\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Visual Studio Code \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003c\/li\u003e\n\u003cli\u003e Providing instructions for installing the following build tools for Jakarta EE \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003col\u003e\n\u003cli\u003e Maven\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Gradle\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\u003cbr\u003e\u003cp\u003eAll Chapters: \u003c\/p\u003e\u003cli\u003e \u003cp\u003eRename to chapter title Servlets and Jakarta Server Pages\u003c\/p\u003e \u003c\/li\u003e\u003cbr\u003e\u003col\u003e\n\u003cli\u003e Updating terminologies as below:\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003col\u003e\n\u003cli\u003e JavaServer Pages(JSP) to Jakarta Server Pages\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e JavaServer Faces(JSF) to Jakarta Faces, \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e JavaMail to Jakarta Mail \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e … \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\u003cbr\u003e\u003col\u003e\u003cli\u003e Reworking and verifying the code examples by performing the following modifications\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003col\u003e\n\u003cli\u003e Updating import statements in all code samples from \u003ci\u003ejavax.*\u003c\/i\u003e to \u003ci\u003ejakarta.*.\u003c\/i\u003e\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Updating code to make use of the latest Java 11 features\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Updating instructions for enabling Jakarta EE support using NetBeans IDE \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Adding instructions for using the following IDE as well for building Jakarta EE applications. \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cul\u003e\n\u003cli\u003e Eclipse IDE\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Visual Studio Code \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/li\u003e\n\u003cli\u003e Ensuring the code can be executed in the latest releases of the following servers \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cul\u003e\n\u003cli\u003e Open Liberty, WildFly and GlassFish servers as are the flag bearers for Jakarta EE compliance. \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eAlso verifying the code with other servers based on their availability with support for latest functionality like Payara or Apache TomEE or Oracle Weblogic and provide any specific instructions in case applicable.\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\u003cbr\u003eNote: As I would dig deeper into the content will be able to suggest more points\u003cp\u003e\u003c\/p\u003e\u003cbr\u003e\u003cp\u003eChapter 1: Servlets and JavaServer Pages\u003c\/p\u003e\u003cbr\u003e\u003col\u003e\u003cli\u003e \u003cp\u003eRename to chapter title Servlets \u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003cp\u003e1-8 (Adding content about - Improving performance with server push)\u003c\/p\u003e\u003col\u003e\n\u003cli\u003e \u003cp\u003eAdding a recipe for adding a user authentication to Servlets.\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eAdding a recipe for defining servlet behaviour based on user authorization \u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eAdding more recipes for the following topics \u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003esession tracking and \u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandling cookies \u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e HTTP Session handling\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Servlet Filters \/ URL Redirections\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003cp\u003e      \u003c\/p\u003e\u003col\u003e\u003cli\u003e \u003cp\u003e. Move JSP related recipes to a separate chapter \u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003cbr\u003e\u003cp\u003eNew Chapter 2: Creating a New Chapter on Jakarta Server Pages\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e Adding recipes for the following topics\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cul\u003e\n\u003cli\u003e Handling file uploads \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Add recipe for Implementing Internationalization\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Managed Bean 2.0\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 2: JavaServer Faces Fundamentals\u003c\/p\u003e\u003cbr\u003e\u003col\u003e\n\u003cli\u003e \u003cp\u003eRename to chapter title Jakarta Faces Fundamentals\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Updating code as per Jakarta Faces 4.0 specification\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eAdding recipes for the following topics\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eExternalizing strings using resource bundles\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003cbr\u003eChapter 3: Advanced JavaServer Faces \u003cp\u003e\u003c\/p\u003e\u003col\u003e\u003cli\u003e Rename to chapter title Advanced Jakarta Faces \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003cbr\u003eChapter 4: Eclipse Krazo\u003cp\u003e\u003c\/p\u003e\u003col\u003e\u003cli\u003e renaming it to Jakarta MVC and updating it with content for Jakarta MVC. \u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003cbr\u003e\u003cp\u003eChapter 5: JDBC with Jakarta EE\u003c\/p\u003e\u003col\u003e\u003cli\u003e \u003cp\u003eAdding a Chapter with recipes on Jakarta Transactions \u003c\/p\u003e \u003c\/li\u003e\u003c\/ol\u003e\u003cbr\u003eChapter 6: Object-Relational Mapping\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\u003cli\u003e Adding sections about migrating from Hibernate ORM 5.5 to Jakarta Persistence.\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 7: Jakarta NoSQL\u003c\/p\u003e\u003cul\u003e\u003cli\u003e \u003cp\u003eAdd recipes related to working with graph databases (like neo4j). \u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003eChapter 8: Enterprise JavaBeans\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\u003cli\u003e Updating recipes as Jakarta Enterprise Beans 4.0 specifications.\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 9: Java Persistence Query Language\u003c\/p\u003e\u003cul\u003e\u003cli\u003e \u003cp\u003eRename chapter title to Jakarta Persistence Query Language\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003eChapter 10: Bean Validation\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e Updating recipes as per Jakarta Bean validation 3.0 standard\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Adding recipes about Migration from Hibernate Validator\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cbr\u003e\u003cp\u003eChapter 11: Contexts and Dependency Injection\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e \u003cp\u003eUpdates based on the latest CDI support\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eAdding recipes related to \u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e \u003cp\u003eInterceptor bindings\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eDecorators\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Firing Events\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 12: Java Message Service \u003c\/p\u003e\u003cp\u003eRename to Jakarta Messaging \u003c\/p\u003e\u003cp\u003eUpdating recipes as per Jakarta Messaging 3.0\u003c\/p\u003e\u003cbr\u003e\u003cp\u003eChapter 13: RESTful Web Services\u003c\/p\u003e\u003cbr\u003eAdding a Chapter on migrating from Spring would also make sense as the upcoming release of Spring Framework 6 will align with Jakarta EE starting Q3 2021\u003cp\u003e\u003c\/p\u003eAdd recipes for \u003cp\u003e\u003c\/p\u003e\u003cul\u003e\u003cli\u003e Handling various status codes in HTTP responses.\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 14: WebSockets and JSON\u003c\/p\u003e\u003cp\u003eContent on WebSockets would be better suited after chapter \u003c\/p\u003e\u003col\u003e\n\u003cli\u003e Restructuring sections on Web Sockets from Chapter 14 to Chapter 2 after HTTP\/2 Server Push in Servlets changes\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Adding a chapter on Jakarta Concurrency\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ol\u003e\u003cbr\u003e\u003cp\u003eChapter 15: Security\u003c\/p\u003e\u003cp\u003eRename to Jakarta Security\u003c\/p\u003eAdding recipes for \u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e The authentication mechanism for Client-Cert and Digest\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003cli\u003e Support for OpenID, OAuth and JWT\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cp\u003eChapter 16: Concurrency and Batch\u003c\/p\u003e\u003cul\u003e\u003cli\u003e \u003cp\u003eUpdating recipes as per Jakarta Concurrency 3.0\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003eChapter 17: Deploying to Containers \u003cp\u003e\u003c\/p\u003e\u003cul\u003e\u003cli\u003e Adding topics related to running microservices targeted at smaller runtimes as per Jakarta Core Profile standard\u003cp\u003e\u003c\/p\u003e \u003c\/li\u003e\u003c\/ul\u003e\u003cbr\u003e1. Servlets and Java Server Pages\u003cbr\u003e2. JavaServer Faces Fundamentals3. Advanced JavaServer Faces4. Eclipse Krazo5. JDBC With Jakarta EE6. Object-Relational Mapping7. Jakarta NoSQL8. Enterprise JavaBeans9. Java Persistence Query Language10. Bean Validation11. Contexts and Dependency Injection12. Java Message Service13. RESTful Web Services14. WebSockets and JSON15. Security16. Concurrency and Batch17. Deploying to Containers\u003cbr\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739667968343,"sku":"9781484280782","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484280782.jpg?v=1720052858"},{"product_id":"beginning-helidon-9781484294727","title":"Beginning Helidon","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eLearn how to build cloud-native microservices with Helidon - an open-source Java framework from Oracle. This book will show you how to take full advantage of the cloud by optimizing applications with fast start times, low memory consumption, and a small disk footprint. \u003c\/p\u003e\u003cp\u003eThe open-source Helidon framework provides all that, and more. It''s based on Java 17, giving you full access to new code features. This book reveals how Helidon also supports modern enterprise Java standards such as MicroProfile. Plus, you''ll see how Helidon lets you use GraalVM to build lightning-fast native executables, and its unique reactive layer allows you to develop efficient low-level APIs.\u003c\/p\u003e\u003cp\u003eEach chapter in the book teaches a new Helidon concept through practical examples based on real-life use-cases. You''ll learn how to add observability and security to your microservices, how to work with databases, and call other services. You''ll also look at all MicroProfile 5.0 platform specifications\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e1:Introduction.- 2: Your First Application.- 3: Configuration.- 4: Observability.- 5: Communicating with other Services.- 6: Accessing Data.- 7: Resiliency.- 8:Security.- 9: Using Open API.- 10: Testing Your Application.- 11: Scheduling Tasks.- 12: Integration with other Technologies.- 13: Going Reactive.- 14: Long Running Actions.- 15: Helidon SE.\u003c\/p\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739668525399,"sku":"9781484294727","price":46.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484294727.jpg?v=1720052860"},{"product_id":"pro-spring-6-with-kotlin-9781484295564","title":"Pro Spring 6 with Kotlin","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eMaster the fundamentals of Spring Framework 6 while learning from the real-world experiences of Spring experts. Over the course of this book, you'll learn how to leverage Spring 6 in tandem with the Kotlin programming language to build complex enterprise applications from top to bottom. From monoliths to cloud native apps for streaming microservices, you'll gain insight into every aspect of the process, including transactions, data access, persistence, and web and presentation tiers.   As you progress through the book, the authors demonstrate how to run Kotlin with a single command, deploy new utility methods in String class, use Local-Variable Syntax for Lambda Parameters Nested Based Access Control, read\/write strings to and from files, and using Flight Recorder. Also, a whole new generation of dependencies are available, and you'll see exactly how to make optimal use of them. A full sample application will show you how to apply Spring 6's new tools and techniques and see how they wo\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eChapter 01 Introducing Spring Framework 6Chapter 02 Getting Started with Spring and KotlinChapter 03 Introducing IoCChapter 04 Spring Configuration In Detail and Spring BootChapter 05 Introducing Spring AOPChapter 06 Using Spring Data JPA with KotlinChapter 07 Using Spring Data JDBC with KotlinChapter 08 Using other Spring Data and Integrating with HibernateChapter 09 Transaction ManagementChapter 10 Validation Conversion FormattingChapter 11 Task SchedulingChapter 12 Using Spring RemotingChapter 13 Spring TestingChapter 14 Scripting Support In SpringChapter 15 Application MonitoringChapter 16 Web Applications and Microservices with Spring MVC and WebFluxChapter 17 WebSocketsChapter 18 Spring Projects Batch, Integration and moreChapter 19. Spring Cloud for Cloud-Native AppsAppendix A Setting Up Your Development Environment","brand":"APress","offers":[{"title":"Default Title","offer_id":48739669180759,"sku":"9781484295564","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484295564.jpg?v=1720052861"},{"product_id":"creating-responsive-websites-using-html5-and-css3-9781484297827","title":"Creating Responsive Websites Using HTML5 and CSS3","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eLearn to implement web designs using HTML5 and CSS3. This book focuses on the need for responsive web design and how you can leverage HTML5 and CSS3 to create interactive websites that work in the real world. You do not need be a technology expert or have a prior coding background to benefit from this book. All you need is a want to learn and a curious mind to explore the full spectrum of features HTML5 and CSS3have to offer.   You'll see how to migrate legacy websites to responsive websites in a very easy-to-understand, step-by-step, manner. Additionally, you will learn to use supportive software to create, run, and debug any issues that may arise during the development process. This book will also show you how to implement websites that work on multiple devices, and on various browsers such as Opera, Chrome, internet Explorer, or Edge. All this will be explored with supporting files, open-source software, as well as a practical guide to creating your demo website along with learning \u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eChapter 1 Introduction to Web Development.- Chapter 2 HTML5 and Responsive Web Design.- Chapter 3 Cascading Style Sheets \u0026amp; Layouts.- Chapter 4 Media Queries.- Chapter 5 CSS Selectors, Color Modes \u0026amp; More.- Chapter 6 Animations \u0026amp; Transitions in CSS3.- Chapter 7 Background and Shadows in CSS.- Chapter 8 Forms with HTML.- Chapter 9 Cross Browser Challenges and How to resolve it.\u003cbr\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739669573975,"sku":"9781484297827","price":40.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484297827.jpg?v=1723812253"},{"product_id":"distributed-machine-learning-with-pyspark-9781484297506","title":"Distributed Machine Learning with PySpark","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eMigrate from pandas and scikit-learn to PySpark to handle vast amounts of data and achieve faster data processing time. This book will show you how to make this transition by adapting your skills and leveraging the similarities in syntax, functionality, and interoperability between these tools.   Distributed Machine Learning with PySpark offers a roadmap to data scientists considering transitioning from small data libraries (pandas\/scikit-learn) to big data processing and machine learning with PySpark. You will learn to translate Python code from pandas\/scikit-learn to PySpark to preprocess large volumes of data and build, train, test, and evaluate popular machine learning algorithms such as linear and logistic regression, decision trees, random forests, support vector machines, Naïve Bayes, and neural networks.   After completing this book, you will understand the foundational concepts of data preparation and machine learning and will have the skills necessary toapply these methods using PySpark, the industry standard for building scalable ML data pipelines.   What You Will LearnMaster the fundamentals of supervised learning, unsupervised learning, NLP, and recommender systemsUnderstand the differences between PySpark, scikit-learn, and pandasPerform linear regression, logistic regression, and decision tree regression with pandas, scikit-learn, and PySparkDistinguish between the pipelines of PySpark and scikit-learnWho This Book Is ForData scientists, data engineers, and machine learning practitioners who have some familiarity with Python, but who are new to distributed machine learning and the PySpark framework.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eChapter 1: An Easy Transition.- Chapter 2: Selecting Algorithms.- Chapter 3: Multiple Linear Regression with Pandas, Scikit-Learn, and PySpark.- Chapter 4: Decision Trees for Regression with Pandas, Scikit-Learn, and PySpark.- Chapter 5: Random Forests for Regression with Pandas, Scikit-Learn, and PySpark.- Chapter 6: Gradient-Boosted Tree Regression with Pandas, Scikit-Learn and PySpark.- Chapter 7: Logistic Regression with Pandas, Scikit-Learn and PySpark.-  Chapter 8: Decision Tree Classification with Pandas, Scikit-Learn and PySpark.- Chapter 9: Random Forest Classification with Scikit-Learn and PySpark.- Chapter 10: Support Vector Machine Classification with Pandas, Scikit-Learn and PySpark.- Chapter 11: Naïve Bayes Classification with Pandas, Scikit-Learn and PySpark.- Chapter 12: Neural Network Classification with Pandas, Scikit-Learn and PySpark.- Chapter 13: Recommender Systems with Pandas, Surprise and PySpark.- Chapter 14: Natural Language Processing with Pandas, Scikit-Learn and PySpark.- Chapter 15: K-Means Clustering with Pandas, Scikit-Learn and PySpark.- Chapter 16: Hyperparameter Tuning with Scikit-Learn and PySpark.- Chapter 17: Pipelines with Scikit-Learn and PySpark.- Chapter 18: Deploying Models in Production with Scikit-Learn and PySpark.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e \u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e  \u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e \u003c\/p\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739670491479,"sku":"9781484297506","price":40.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484297506.jpg?v=1720052865"},{"product_id":"coding-art-9781484297797","title":"Coding Art","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eFinally, a book on creative programming, written directly for artists and designers! This second edition offers expanded and updated content incorporating the latest advancements and trends in the field of creative programming, also for creatives who want to work directly with P5.js and online. It delves deeper into the intricacies of computational art. Itincludes fresh case studies that explore real-world applications of coding art, inspiring readers to think beyond traditional boundaries.   Rather than following a computer science curriculum, this book is aimed at creatives who are working in the intersection of design, art, and education. Following a real-world use case of computation art, you'll see how it relates back to the four key pillars, and addresses potential pitfalls and challenges in the creative process. All code examples are presented in a fully integrated Processing example library, making it easy for readers to get started.This unique and finely balanced approach betw\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eIntroduction\u003cbr\u003ePart I: Creative CodingIn the first main part of this book, we present a four-step working process when code is involved in art practice.\u003cbr\u003eChapter 1: Idea to VisualsIn this chapter we show how creatives can translate their ideas into simple visual elements, and then work with these elements creatively, by animating them in motions and interaction. In this part, we move quickly from shaping up visual elements in static to animate and scale them in variants and complexity. We also make the comparatively large step to interaction as input for animating visual elements already in this first step. This allows creatives to directly experience the power and expressivity of a computational creative tool like Processing. We don’t hold back in this first step, because we see interaction (and ultimately data) as the important differentiator and driver behind the power of computational in creative practice. Even the raw understanding of interaction in code can help creatives ideate with minimal computation at an early stage of a project.\u003cbr\u003eChapter 2: Composition and StructureIn this chapter, we align the structure of code and the visual structure to reinforce the initial momentum with transparent concepts in code. In this step, we list different code examples that are related to repetition and variation. These are all features related to the creation and manipulation of a Gestalt, introduced as the “many things as one” concept in the book. The reader learns about the shift from an individual element in repetition to many things in layers and alignment. While we introduce fewer new elements from Processing, we maintain the momentum for the reader in showing how they can, with a few lines of code, amplify the expressivity of their first tryouts. The divergence from traditional creative programming books is most visible in the second step, we leave the path of explaining Processing and let the creative process take charge.\u003cbr\u003eChapter 3: Refinement and DepthIn this chapter, we use randomness and noise as sources for depth and entropy and explain how to refine and deepen the idea regarding controlling, selecting, and making choices. In this part, we specifically introduce new data structures as means to simplify and extend the design of aesthetics, rhythms and smoothness. We also return to interactivity at this developed stage and use interactivity as input to bring creative concepts closer to refinement and depth. \u003cbr\u003eChapter 4: Completion and ProductionIn this chapter, we look at the backstage of coding an art piece for presentation and “show-time”. We show how to leverage the diversity of art code on other platforms like the web or in mobile applications. In this step, we also specify how to backstage, test and control the creative work in a less risky way on the final production stage.\u003cbr\u003ePart II: An Example: MOUNTROTHKOIn the second part of this book, we present a large example for computational art, MOUNTROTHKO (2018). This part shows how we applied many aspects of the first part of the book in a real project. We emphasize that what we write about in this book is what we also practice: we unfold MOUNTROTHKO from the very beginning by showing the conceptual and visual starting points. Then we walk through the four steps of the whole creative process in close relation to this example. In MOUNTROTHKO, certain steps were taken going back and forth, or in iteration, which underlines how the book is practically meaningful as a process reference.\u003cbr\u003eChapter 5: Inspiration\u003cbr\u003eChapter 6: From idea to completion\u003cbr\u003ePart III: Coding PracticeIn the last part of this book, we address common pitfalls and challenges of the creative process and formulate suggestions and tips for creatives based on our experience over the years. We indicate main problems that creatives might have in practice: how to help yourself, how to get help from others, and how to find and work with experts from other fields. Finally, we outline a continuation of the learning path for creatives alongside reading and making: this book ideally represents the starting of a personal creative journey working with both art and code.\u003cbr\u003eChapter 7: Dealing with Problems \u003cbr\u003eChapter 8: Learning Path\u003cbr\u003eChapter 9: Creative Processes\u003cbr\u003eConclusion\u003cbr\u003eEpilogue\u003cbr\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739670557015,"sku":"9781484297797","price":35.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484297797.jpg?v=1723812255"},{"product_id":"quantum-computing-by-practice-9781484299906","title":"Quantum Computing by Practice","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eLearn to write algorithms and program in the new field of quantum computing. This second edition is updated to equip you with the latest knowledge and tools needed to be a complex problem-solver in this ever-evolving landscape. The book has expanded its coverage of current and future advancements and investments by IT companies in this emerging technology. Most chapters are thoroughly revised to incorporate the latest updates to IBM Quantum's systems and offerings, such as improved algorithms, integrating hardware advancements, software enhancements, bug fixes, and more. You'll examine quantum computing in the cloud and run experiments there on a real quantum device. Along the way you'll cover game theory with the Magic Square, an example of quantum pseudo-telepathy. You'll also learn to write code using QISKit, Python SDK, and other APIs such as QASM and execute it against simulators (local or remote) or a real quantum computer. Then peek inside the inner workings of the Bell states f\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eChapter 1: Quantum Fields - The Building Blocks of Reality \u003c\/b\u003e\u003cbr\u003eEnter Max Planck, the Father of Quantum MechanicsPlanck Hits the Jackpot, Einstein collects a Novel PrizeQuantum Mechanics comes in many flavors. Which is your favorite?Many Worlds InterpretationSupplementary InterpretationsFrom Quantum Mechanics to Quantum Fields: Evolution or RevolutionChapter 1 Exercises\u003cbr\u003e\u003cb\u003eChapter 2: Richard Feynman, Demigod of Physics, Father of the Quantum Computer\u003c\/b\u003eMysteries of QFT: The Plague on InfinitiesFeynman Diagrams: Formulas in DisguiseAntimatter as Time Reverse Matter and the Mirror UniverseChapter 2 Exercises\u003cbr\u003e\u003cb\u003eChapter 3: The Qubit Revolution is at Hand \u003c\/b\u003eYour Friendly Neighborhood Quantum ComputerLinear Optics vs Super Conducting LoopsThe Many Flavors of QubitChapter 3 Exercises\u003cbr\u003e\u003cb\u003eChapter 4: Enter the IBM Quantum: A One of a Kind Platform for Quantum Computing in the Cloud \u003c\/b\u003eGetting your feet wet with IBM QuantumOpus 1: Variations on Bell and GHZ StatesRemote Access via the REST APIChapter 4 Exercises \u003cbr\u003e\u003cb\u003eChapter 5: Mathematical Foundation: Time to Dust up that Linear Algebra\u003c\/b\u003eQubit 101: Vector, Matrices and Complex NumbersEuler’s Identity: A Wonderful MasterpieceAlgebraic Representation of the QubitChanging the State of a Qubit with Quantum GatesUniversal Quantum Computation delivers shortcuts over Classical ComputationChapter 5 Exercises\u003cbr\u003e\u003cb\u003eChapter 6: QISKit, Awesome SDK for Quantum Programming in Python\u003c\/b\u003eInstalling the QISKitYour First Quantum ProgramQuantum Assembly: The Power behind the ScenesChapter 6 Exercises \u003cbr\u003e\u003cb\u003eChapter 7: Start Your Engines: From Quantum Random Numbers to Teleportation, pit stop at Super Dense Coding\u003c\/b\u003eQuantum Random Number GenerationSuper Dense CodingQuantum Teleportation\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003cb\u003eChapter 8: Game Theory: With Quantum Mechanics Odds Are Always in Your Favor\u003c\/b\u003eCounterfeit Coin PuzzleMermin-Peres Magic SquareAnswers for the Mermin-Peres Magic Square Exercise\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003cb\u003eChapter 9: Faster Search Plus Threatening the Foundation of Asymmetric Cryptography with Grover and Shor\u003c\/b\u003eQuantum Unstructured SearchInteger Factorization with Shor’s Algorithm\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003cb\u003eChapter 10: Advanced Algorithms for Quantum Chemistry\u003c\/b\u003eWhat in an Eigenvalue and why should I careVariational Quantum EigensolverMolecule Ground State ExperimentProtein Folding Experiment\u003cbr\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739670982999,"sku":"9781484299906","price":35.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484299906.jpg?v=1720052866"},{"product_id":"building-computer-vision-applications-using-artificial-neural-networks-9781484298657","title":"Building Computer Vision Applications Using","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eComputer vision is constantly evolving, and this book has been updated to reflect new topics that have emerged in the field since the first edition's publication. All code used in the book has also been fully updated.   This second edition features new material covering image manipulation practices, image segmentation, feature extraction, and object identification using real-life scenarios to help reinforce each concept. These topics are essential for building advanced computer vision applications, and you'll gain a thorough understanding of them. The book's source code has been updated from TensorFlow 1.x to 2.x, and includes step-by-step examples using both OpenCV and TensorFlow with Python. Upon completing this book, you'll have the knowledge and skills to build your own computer vision applications using neural networksWhat You Will LearnUnderstand image processing, manipulation techniques, and feature extractionmethodsWork with convolutional neural networks (CNN), single-shot dete\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739672686935,"sku":"9781484298657","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484298657.jpg?v=1720052868"},{"product_id":"begin-to-code-with-python-9781509304523","title":"Begin to Code with Python","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eBecome a Python programmer–and have fun doing it! \u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eStart writing software that solves real problems, even if you have absolutely no programming experience! This friendly, easy, full-color book puts you in total control of your own learning, empowering you to build unique and useful programs. Microsoft has completely reinvented the beginning programmer’s tutorial, reflecting deep research into how today’s beginners learn, and why other books fall short. \u003cem\u003eBegin to Code with Python\u003c\/em\u003e is packed with innovations, from its “Snaps” prebuilt operations to its “Make Something Happen” projects. Whether you’re a total beginner or you’ve tried before, this guide will put the power, excitement, and fun of programming where it belongs: \u003cem\u003ein your hands\u003c\/em\u003e!\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eEasy, friendly, and \u003cem\u003eyou’re\u003c\/em\u003e in control! Learn how to... \u003c\/strong\u003e\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003eGet, install, and use powerful free tools to create modern Python programs\u003c\/li\u003e\n\u003cli\u003eLearn key concepts from 170 sample programs, and use them to jumpstart your own\u003c\/li\u003e\n\u003cli\u003eDiscover exactly what happens when a program runs\u003c\/li\u003e\n\u003cli\u003eApproach program development with a professional perspective\u003c\/li\u003e\n\u003cli\u003eLearn the core elements of the Python language\u003c\/li\u003e\n\u003cli\u003eBuild more complex software with classes, methods, and objects\u003c\/li\u003e\n\u003cli\u003eOrganize programs so they’re easy to build and improve\u003c\/li\u003e\n\u003cli\u003eCapture and respond to user input\u003c\/li\u003e\n\u003cli\u003eStore and manipulate many types of real-world data\u003c\/li\u003e\n\u003cli\u003eDefine custom data types to solve specific problems\u003c\/li\u003e\n\u003cli\u003eCreate interactive games that are fun to play\u003c\/li\u003e\n\u003cli\u003eBuild modern web and cloud-based applications\u003c\/li\u003e\n\u003cli\u003eUse pre-built libraries to quickly create powerful software\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003e\u003cstrong\u003eGet code samples, including complete apps, at: \u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003ehttps:\/\/aka.ms\/BegintoCodePython\/downloads\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003e About This Book \u003c\/strong\u003e\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003eFor absolute beginners who’ve never written a line of code\u003c\/li\u003e\n\u003cli\u003eFor anyone who’s been frustrated with other beginning programming books or courses\u003c\/li\u003e\n\u003cli\u003eFor people who’ve started out with other languages and now want to learn Python\u003c\/li\u003e\n\u003cli\u003eWorks with Windows PC, Apple Mac, Linux PC, or Raspberry Pi\u003c\/li\u003e\n\u003cli\u003eIncludes mapping of MTA exam objectives that are covered in this book, as well as an appendix with further explanation of some of the topics on the exam\u003c\/li\u003e\n\u003c\/ul\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003ePart 1: Programming fundamentals\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eChapter 1 Starting with Python\u003c\/p\u003e \u003cp\u003eChapter 2 Python and Programming\u003c\/p\u003e \u003cp\u003eChapter 3 Python program structure\u003c\/p\u003e \u003cp\u003eChapter 4 Working with variables\u003c\/p\u003e \u003cp\u003eChapter 5 Making decisions in programs\u003c\/p\u003e \u003cp\u003eChapter 6 Repeating actions with loops\u003c\/p\u003e \u003cp\u003eChapter 7 Using functions to simplify programs\u003c\/p\u003e \u003cp\u003eChapter 8 Storing collections of data\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart 2: Advanced programming\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eChapter 9 Use classes to store data\u003c\/p\u003e \u003cp\u003eChapter 10 Use classes to create active objects\u003c\/p\u003e \u003cp\u003eChapter 11 Object-based solution design\u003c\/p\u003e \u003cp\u003eChapter 12 Python applications\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart 3: Useful Python (Digital-only)\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eChapter 13 Python and Graphical User Interfaces\u003c\/p\u003e \u003cp\u003eChapter 14 Python programs as network clients\u003c\/p\u003e \u003cp\u003eChapter 15 Python programs as network servers\u003c\/p\u003e \u003cp\u003eChapter 16 Create games with pygame\u003c\/p\u003e","brand":"Microsoft Press,U.S.","offers":[{"title":"Default Title","offer_id":48739833577815,"sku":"9781509304523","price":999.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"functional-programming-in-java-9781617292736","title":"Functional Programming in Java","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003e\u003c\/b\u003e \u003cp\u003e\u003cb\u003eDESCRIPTION\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFunctional programming is a deep and potentially mind-bending\u003c\/p\u003e \u003cp\u003ediscipline. Fortunately, Java developers don't have to master every\u003c\/p\u003e \u003cp\u003easpect of FP to get a big boost in the performance, readability, and\u003c\/p\u003e \u003cp\u003emaintainability of their applications. By learning a few core FP\u003c\/p\u003e \u003cp\u003eprinciples, they can write code that's less prone to side effects and\u003c\/p\u003e \u003cp\u003eunwanted dependencies and which is much better suited to the parallel\u003c\/p\u003e \u003cp\u003eprocessing required by modern multi-core and distributed systems. Also,\u003c\/p\u003e \u003cp\u003ebecause units of functional code are designed to be modular and\u003c\/p\u003e \u003cp\u003eindependent, FP reduces or eliminates many of the bugs development\u003c\/p\u003e \u003cp\u003eteams routinely face when managing a large codebase.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003ci\u003e\u003c\/i\u003e\u003cp\u003e\u003c\/p\u003e\u003ci\u003eFunctional Programming in Java \u003c\/i\u003eteaches Java developers how to \u003cp\u003e\u003c\/p\u003e \u003cp\u003eincorporate the most powerful benefits of functional programming into\u003c\/p\u003e \u003cp\u003enew and existing Java code. Written to meet the needs of professional\u003c\/p\u003e \u003cp\u003eJava developers who want to introduce functional programming\u003c\/p\u003e \u003cp\u003eprinciples into new and legacy projects, this book uses examples,\u003c\/p\u003e \u003cp\u003eexercises, and illustrations to teach core FP principles such as referential\u003c\/p\u003e \u003cp\u003etransparency, immutability, persistence, and laziness. They’ll discover\u003c\/p\u003e \u003cp\u003ewhich of the new functionally-inspired features of Java 8 will help in\u003c\/p\u003e \u003cp\u003eapplying FP principles to code—as well as which to avoid. In the end,\u003c\/p\u003e \u003cp\u003ethey’ll be able to think functionally about coding tasks in Java and use\u003c\/p\u003e \u003cp\u003eFP to make their applications easier to understand, optimize, maintain,\u003c\/p\u003e \u003cp\u003eand scale.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cb\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003eKEY FEATURES\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003e• Increases productivity \u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003e• Easy to grasp examples and illustrations \u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003e• Written for professional Java developers \u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e\u003cb\u003e  \u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003eAUDIENCE\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eReaders need to be comfortable with Java programming. No previous\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eexperience with functional programming is required.\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eABOUT THE TECHNOLOGY\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eFunctional programming is gaining momentum, mainly through adoption of\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003enew languages such as Scala, Clojure or Groovy, and through the new\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003epopularity of older languages such as Haskell or Erlang. And functional\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eprogramming is coming to Java 8 with the addition of features such as\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003elambda expressions, and Streams.\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740642619735,"sku":"9781617292736","price":37.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617292736.jpg?v=1720055224"},{"product_id":"oca-java-se-8-programmer-i-certification-guide-9781617293252","title":"OCA Java SE 8 Programmer I Certification Guide","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e　\u003c\/p\u003e \u003cp\u003e\u003cb\u003eDESCRIPTION \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cp\u003eTo earn the OCA Java SE 8 Programmer I Certification, readers need to know Java inside and out, and to pass the exam it's good to understand the test itself. This book cracks open the questions, exercises, and expectations readers will face on the OCA exam so they’ll be ready and confident on test day. \u003c\/p\u003e \u003ci\u003e\u003c\/i\u003e\u003cp\u003e\u003c\/p\u003e\u003ci\u003eOCA Java SE 8 Programmer I Certification Guide \u003c\/i\u003eprepares readers for the 1Z0-808 with complete coverage of all exam topics. The book explores important Java topics and systematically teaches what's required. Each chapter starts with a list of exam objectives mapped to section numbers, followed by sample questions and exercises designed to reinforce key concepts. It provides multiple ways to digest important techniques and concepts, including memorable analogies, diagrams, and flowcharts as well as lots of well-commented code. Along the way readers will also get the scoop on common mistakes and ways to avoid traps and pitfalls. \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003eKEY FEATURES\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e 100% coverage of exam topics \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e Hands-on coding examples and exercises \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e Helps readers avoid exam traps and pitfalls \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e Hundreds of sample questions \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e Crib Sheets \u003c\/b\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003eAUDIENCE \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eWritten for developers with a working knowledge of Java who want to earn the OCA Java SE 8 Programmer I Certification. \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eABOUT THE TECHNOLOGY \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eThe Oracle Certified Associate (OCA) Java SE 8 measures day-to-day programming and the ability to handle typical situations found in a variety of projects. \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740642652503,"sku":"9781617293252","price":43.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617293252.jpg?v=1720055224"},{"product_id":"testing-java-microservices-9781617292897","title":"Testing Java Microservices","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eWith traditional software unit tests, there’s never a guarantee that an application will actually function correctly in the production environment. When you add microservices, testing becomes even more tricky.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003ci\u003eTesting Java Microservices \u003c\/i\u003eteaches readers how to write tests like unit, component, integration, container, contract, chaos, and more. Along the way, it also covers technologies like the Arquillian ecosystem, Wiremock, Mockito, AssertJ, Pact or Gatling. Finally, the book demonstrates how everything fits together into the Continuous Delivery pipeline.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e·    Practical hands-on guide\u003c\/p\u003e \u003cp\u003e·    Writing Persistence tests\u003c\/p\u003e \u003cp\u003e·    Teaches test strategies\u003c\/p\u003e \u003cp\u003e·    Shows how everything fits together in the Continuous Delivery Pipeline\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eReaders should be comfortable programming in Java. Experience with testing tools like jUnit is helpful but not required. Some experience in Java EE, Spring and Docker is also helpful. \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAbout the Technology: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA microservice may consist of several, several hundred, or even several thousand of lines of code. Microservices enable programmers to isolate and scale smaller pieces of an application, rather than the entire application.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740642685271,"sku":"9781617292897","price":34.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617292897.jpg?v=1720055224"},{"product_id":"react-in-action-9781617293856","title":"React in Action","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eReact 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.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003ci\u003eReact in Action \u003c\/i\u003eintroduces 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.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e·    Clearly written\u003c\/p\u003e \u003cp\u003e·    Example-rich\u003c\/p\u003e \u003cp\u003e·    Hands-on\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eWritten for developers familiar with HTML, CSS, and JavaScript who want to create more robust front-end applications.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAbout the Technology:  \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReact is an open source JavaScript framework that lets developers quickly create user interfaces for web applications.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643144023,"sku":"9781617293856","price":30.59,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617293856.jpg?v=1720055225"},{"product_id":"serverless-architectures-on-aws-9781617293825","title":"Serverless Architectures on AWS","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003eDESCRIPTION\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eServerless architecture is about having more time to focus on code, and\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003emoving quickly. In these new architectures, traditional back-end\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eservers are replaced with cloud functions acting as discrete singlepurpose\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eservices. With serverless compute technologies like AWS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eLambda, developers can build entirely serverless platforms at scale.\u003ci\u003e\u003c\/i\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003e\u003ci\u003eServerless Architectures on AWS \u003c\/i\u003eteaches how to build, secure and \u003c\/b\u003e\u003cp\u003e\u003cb\u003emanage serverless architectures that can power the most demanding\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eweb and mobile apps. This book has many ready-made and real-world\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eexamples, code snippets, diagrams, and descriptions of architectures\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003ethat can be readily applied. It describes a traditional application and its\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eback end concerns and then shows how to solve these same problems\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003ewith a serverless approach. By the end, readers will be able to reason\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eabout serverless systems and be able to compose their own systems by\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eapplying these ideas and examples.\u003c\/b\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e\u003cb\u003e\u003cb\u003eKEY FEATURES\u003c\/b\u003e \u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e• Up-to-date with the most current platform trends\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e• Real-world examples, code snippets, and diagrams\u003c\/b\u003e\u003c\/p\u003e\u003cb\u003e• Learn to solve back end concerns with a serverless approach \u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003eAUDIENCE\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eThis book is for all software developers interested in back end technologies.\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eExperience with JavaScript (node.js) and AWS is useful but not required.\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eABOUT THE TECHNOLOGY\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eLambda is a compute service that executes code written in JavaScript\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e(node.js), Python, or Java on AWS infrastructure. Source code is deployed\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eto an isolated container that has its own allocation of memory, disk space,\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eand CPU. Serverless architectures herald a new way of building scalable,\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003epowerful, cost-effective, and high-performing back end systems. They\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003eencourage a new way of creating applications through the use of a stateless\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003ecompute service to execute code.\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643307863,"sku":"9781617293825","price":37.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617293825.jpg?v=1720055225"},{"product_id":"d3-js-in-action-2e-9781617294488","title":"D3.js in Action, 2E","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eD3 allows developers to create scalable graphs for any modern browser. They start with a structure, dataset, or algorithm and programmatically generate static, interactive, or animated images that responsively scale to any screen.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003ci\u003eD3.js in Action, Second Edition \u003c\/i\u003eis completely revised and updated for D3 v4 and ES6. It's a practical tutorial for creating interactive graphics and data-driven applications using D3. Readers will start with in-depth explanations of D3's out-of-the-box layouts, along with dozens of realworld use cases that align with different types of visualizations. By the end, readers will be ready to integrate D3.js into their web development process and add data visualization to transform any site or internal application.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e·    Completely revised and updated\u003c\/p\u003e \u003cp\u003e·    Practical tutorial\u003c\/p\u003e \u003cp\u003e·    In-depth explanations\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eReaders need basic HTML, CSS, and JavaScript skills. No experience with D3 or SVG is required.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAbout the Technology: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eD3.js is a JavaScript library that allows data to be represented graphically.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643570007,"sku":"9781617294488","price":34.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617294488.jpg?v=1720055225"},{"product_id":"c-concurrency-in-action-2e-9781617294693","title":"C++ Concurrency in Action,2E","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eC++ 11 delivered strong support for multithreaded applications, and\u003cbr\u003ethe subsequent C++14 and 17 updates have built on this baseline. C++\u003cbr\u003ehas better options for concurrency than ever before, which means it's\u003cbr\u003ean incredibly powerful option for multicore and parallel applications.\u003c\/p\u003e \u003cp\u003e\u003cbr\u003eThis bestseller has been updated and revised to cover all the latest\u003cbr\u003echanges to C++ 14 and 17! C++ Concurrency in Action, Second\u003cbr\u003eEdition teaches readers everything they need to write robust and\u003cbr\u003eelegant multithreaded applications in C++17. Along the way, they’ll\u003cbr\u003elearn how to navigate the trickier bits of programming for concurrency\u003cbr\u003ewhile avoiding the common pitfalls.\u003c\/p\u003e \u003cp\u003e\u003cbr\u003eKEY FEATURES\u003cbr\u003e• Completely updated\u003cbr\u003e• Hands-on learning\u003cbr\u003e• In depth guide\u003c\/p\u003e \u003cp\u003e\u003cbr\u003eWritten for C++ programmers who are new to concurrency and others\u003cbr\u003ewho may have written multithreaded code using other languages, APIs,\u003cbr\u003eor platforms.\u003c\/p\u003e \u003cp\u003e\u003cbr\u003eABOUT THE TECHNOLOGY\u003cbr\u003eConcurrency in terms of computers is a single system performing\u003cbr\u003emultiple independent activities in parallel, rather than sequentially, or\u003cbr\u003eone after the other.\u003c\/p\u003e \u003cp\u003e\u003cbr\u003eAUTHOR BIO\u003cbr\u003eAnthony Williams is a UK-based developer and consultant with many\u003cbr\u003eyears' experience in C++. He has been an active member of the BSI C++\u003cbr\u003eStandards Panel since 2001, and is the author or co-author of many of the\u003cbr\u003eC++ Standards Committee papers that led up to the inclusion of the thread\u003cbr\u003elibrary in the C++11 Standard. He was the maintainer of the Boost Thread\u003cbr\u003elibrary, and is the developer of the just::thread Pro extensions to the C++11\u003cbr\u003ethread library from Just Software Solutions Ltd.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643602775,"sku":"9781617294693","price":53.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617294693.jpg?v=1720055228"},{"product_id":"elixir-in-action-9781617295027","title":"Elixir in Action","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThe Elixir language blends the battle-tested power and stability of the Erlang virtual machine with an approachable and expressive syntax. \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003ci\u003eElixir in Action, Second Edition \u003c\/i\u003eteaches you how to use the Elixir programming language to solve the practical problems of scalability, fault tolerance, and high availability. This new edition is fully updated to cover Elixir 1.6 with new and improved code examples.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e·   Fully updated\u003c\/p\u003e \u003cp\u003e·   Practical introduction to Elixir\u003c\/p\u003e \u003cp\u003e·   Functional and concurrent programming idioms\u003c\/p\u003e \u003cp\u003e·   Mastering the OTP framework\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAudience\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eRequires no previous experience with Elixir, Erlang, or OTP. Written for readers who are familiar with another programming language like Ruby, JavaScript, or C#.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAuthor Bio\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eSaša Jurić \u003c\/b\u003eis a developer with extensive experience using Elixir and Erlang in complex server-side systems.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643799383,"sku":"9781617295027","price":37.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617295027.jpg?v=1720055228"},{"product_id":"kafka-in-action-9781617295232","title":"Kafka in Action","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003ci\u003eKafka in Action\u003c\/i\u003e 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. \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eIn 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.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e·   Understanding Kafka's concepts\u003c\/p\u003e \u003cp\u003e·   Implementing Kafka as a message queue\u003c\/p\u003e \u003cp\u003e·   Setting up and executing basic ETL tasks\u003c\/p\u003e \u003cp\u003e·   Recording and consuming streaming data\u003c\/p\u003e \u003cp\u003e·   Working with Kafka producers and consumers from Java applications\u003c\/p\u003e \u003cp\u003e·   Using Kafka as part of a large data project team\u003c\/p\u003e \u003cp\u003e·   Performing Kafka developer and admin tasks\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eWritten for intermediate Java developers or data engineers. No prior knowledge of Kafka is required.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAbout the technology \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eApache 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.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003c\/b\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eDylan Scott\u003c\/b\u003e 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.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740643897687,"sku":"9781617295232","price":33.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617295232.jpg?v=1720055227"},{"product_id":"object-design-style-guide-9781617296857","title":"Object Design Style Guide","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003ci\u003eObject Design Style Guide\u003c\/i\u003e captures dozens of techniques for creating pro-quality OO code that can stand the test of time. Examples are in an instantly-familiar pseudocode, teaching techniques you can apply to any OO language, from C++ to PHP. \u003c\/p\u003e\u003cp\u003e \u003c\/p\u003e\u003cli\u003eThe design rules for different types of objects\u003c\/li\u003e\u003cli\u003eBest practices for naming objects\u003c\/li\u003e\u003cli\u003eTesting an object’s behavior instead of its implementation\u003c\/li\u003e\u003cli\u003eExercises for each chapter to test your design skills\u003c\/li\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740645044567,"sku":"9781617296857","price":38.62,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617296857.jpg?v=1720055231"},{"product_id":"data-pipelines-with-apache-airflow-9781617296901","title":"Data Pipelines with Apache Airflow","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003ePipelines can be challenging to manage, especially when your data has to flow through a collection of application components, servers, and cloud services. Airflow lets you schedule, restart, and backfill pipelines, and its easy-to-use UI and workflows with Python scripting has users praising its incredible flexibility. Data Pipelines with Apache Airflow takes you through best practices for creating pipelines for multiple tasks, including data lakes, cloud deployments, and data science.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eData Pipelines with Apache Airflow teaches you the ins-and-outs of the Directed Acyclic Graphs (DAGs) that power Airflow, and how to write your own DAGs to meet the needs of your projects. With complete coverage of both foundational and lesser-known features, when you’re done you’ll be set to start using Airflow for seamless data pipeline development and management.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eKey Features\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFramework foundation and best practices\u003c\/p\u003e \u003cp\u003eAirflow's execution and dependency system\u003c\/p\u003e \u003cp\u003eTesting Airflow DAGs\u003c\/p\u003e \u003cp\u003eRunning Airflow in production\u003cb\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFor data-savvy developers, DevOps and data engineers, and system\u003c\/p\u003e \u003cp\u003eadministrators with intermediate Python skills.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eAbout the technology \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eData pipelines are used to extract, transform and load data to and from multiple sources, routing it wherever it’s needed -- whether that’s visualisation tools, business intelligence dashboards, or machine learning models. Airflow streamlines the whole process, giving you one tool for programmatically developing and monitoring batch data pipelines, and integrating all the pieces you use in your data stack.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eBas Harenslak \u003c\/b\u003eand\u003cb\u003e Julian de Ruiter \u003c\/b\u003eare data engineers with extensive experience using Airflow to develop pipelines for major companies including Heineken, Unilever, and Booking.com. Bas is a committer, and both Bas and Julian are active contributors to Apache Airflow.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740645142871,"sku":"9781617296901","price":35.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617296901.jpg?v=1720055231"},{"product_id":"go-in-practice-9781633430075","title":"Go in Practice","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eDESCRIPTION\u003c\/b\u003e　\u003c\/p\u003e \u003cp\u003eGo may be the perfect systems language. Built with simplicity, concurrency, and modern applications in mind, Go provides the core tool set for rapidly building web, cloud, and systems applications. With superstar projects like Docker giving the language a high-visibility boost; it's no wonder that companies are clamoring for experienced Go engineers. With knowledge of a language like Java or C#, it's easy to get started with Go; the trick is finding the practical dirt-under-the-fingernails techniques that are needed to build production-ready code. \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e  \u003cp\u003e \u003c\/p\u003e \u003ci\u003e\u003c\/i\u003e\u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e\u003ci\u003eGo in Practice \u003c\/i\u003eguides readers through dozens of real-world techniques in key areas like package management and microservice communication. Following a cookbook-style Problem\/Solution\/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces specific strategies that can be used in day-to-day applications. Readers will learn techniques for building web services, such as using Go in the cloud, testing and debugging, routing, and network applications. \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003eKEY FEATURES\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Practical hands-on guide \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Based on hard-earned knowledge \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Contains dozens of real-world techniques \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e  \u003cp\u003e\u003c\/p\u003e \u003cb\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003eAUDIENCE \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eWritten for readers who have already started exploring Go and want to use it effectively in a production setting. \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cb\u003e\u003cb\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cp\u003e\u003cb\u003e\u003cb\u003eABOUT THE TECHNOLOGY \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003eBuilt with simplicity, concurrency, and modern applications in mind, Go provides the core tool set for rapidly building web, cloud, and systems applications. With superstar projects like Docker giving the language a high-visibility boost, it's no wonder that companies are clamoring for experienced Go engineers. \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003c\/b\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740723130711,"sku":"9781633430075","price":34.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781633430075.jpg?v=1720055452"},{"product_id":"web-design-playground-second-edition-9781633438323","title":"Web Design Playground, Second Edition","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eEnter the Web Design Playground and start experimenting with all aspects of creating a web page—from design, to development, to publishing—in an easy-to-use free online workspace. \u003c\/strong\u003eSuitable for anyone interested in creating web pages.\u003c\/p\u003e \u003cp\u003eIn Web Design Playground, Second Edition you'll learn essential tools of the web design trade, such as:\u003c\/p\u003e \u003cp\u003eStructuring a web page with HTML\u003c\/p\u003e \u003cp\u003eStyling a web page with CSS\u003c\/p\u003e \u003cp\u003eModern page layout techniques\u003c\/p\u003e \u003cp\u003eUsing colors in web design\u003c\/p\u003e \u003cp\u003eMaking text look awesome with typography\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAbout the technology\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eHTML, CSS, and the principles of good web design are all you need to build something beautiful! You'll find them all inside this one-of-a-kind guide. Written by web designer and master teacher Paul McFedries, this unique book shapes and sharpens your skills in the always-relevant technologies of the web.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740723589463,"sku":"9781633438323","price":29.44,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781633438323.jpg?v=1720055453"},{"product_id":"geometry-for-programmers-9781633439603","title":"Geometry for Programmers","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eMaster the geometry behind CAD, game engines, GIS, and more! \u003cp\u003e\u003cstrong\u003eGeometry for Programmers\u003c\/strong\u003e is a hands-on book teaching you the maths behind the tools and libraries to create simulations, 3D prints, and other models in the physical world.\u003c\/p\u003e \u003cp\u003eIdeal for developers writing code using CAD libraries, game engines, or rendering tools, the textbook guides you through the math behind graphics and modelling tools using relevant examples and clear explanations that don't require advanced mathematical knowledge. You will learn how mastering manual geometry can help you avoid code layering and repetition and even how to drive down cloud hosting costs by creating more efficient application runtimes.\u003c\/p\u003e \u003cp\u003eKey features include:\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003eSpeak the language of applied geometry\u003c\/li\u003e\n\u003cli\u003eCompose geometric transformations economically\u003c\/li\u003e\n\u003cli\u003eCraft custom splines for efficient curves and surface generation\u003c\/li\u003e\n\u003cli\u003ePick and implement the right geometric transformations\u003c\/li\u003e\n\u003cli\u003eConfidently use important algorithms that operate on triangle meshes, distance functions, and voxels\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003eFilled with charts, illustrations, and complex equations rendered as simple Python code, this book unlocks geometry in a way you can apply it to your daily work.\u003c\/p\u003e About the technology \u003cp\u003eGeometry is the core of game engines, computer-aided design, image-processing libraries, GIS, and much more. Understanding the mathematical underpinnings of tools and libraries empowers you to develop more efficient programming strategies. This unique guide gives you control over the geometry you need to deliver faster, cleaner results— and even build your own geometry tools!\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\"A one of a kind book, brilliant in every way.\"\u003cbr\u003e \u003cstrong\u003eMaxim Volgin\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\"Good books teach. The best books produce a change on the reader. This is one of those books.\" \u003cstrong\u003eJose San Leandro\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\"A great help, not just to anyone wanting to make computer graphics but also anyone who needs to learn linear algebra or calculus, especially linear algebra.\"\u003cbr\u003e \u003cstrong\u003ePatrick Regan\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\"Have you ever wondered how game programmers, animated film designers, and car manufacturers model visual aspects of reality? This book shows you how.\"\u003cbr\u003e \u003cstrong\u003eRanjit Sahai\u003c\/strong\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740723917143,"sku":"9781633439603","price":999.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"easy-micro-bit-projects-9781680455540","title":"Easy micro – bit Projects","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eLearn the basics of using the micro: bit, an open source hardware ARM-based embedded system used to teach computer programming, to build a series of 10 different gadgets from scratch!  You'll use the micro: bit to make:  a scrolling name tag, animated LED displays a high-tech compass. a handheld tilting game with a buzzer and saved high score a carnival-like strength tester a powered cooling fan helmet an electronic musical instrument a security system that sends alerts to your computer when someone enters the room. a wheeled robot an alert to water your plants   You will learn how simple electrical devices like speakers, motors, buzzers and fans work. You'll understand electronic components like resistors, force resistors, photoresistors, LEDs, and Op Amps, as well as Infrared distance sensors and soil moisture sensors. You'll also get a beginner's look at micropython, one of the fastest-growing computer languages. In this book you will combine multiple disciplines -- electronics, programming, and engineering -- to build a series of successful gadgets.  Everything is explained with lots and lots of full-color line drawings. No prior experience is necessary. You'll have fun while you learn a t","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48740847190359,"sku":"9781680455540","price":7.59,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781680455540.jpg?v=1720055813"},{"product_id":"software-development-in-practice-9781780174976","title":"Software Development in Practice","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eSoftware development is becoming recognised more and more as an essential skill and profession in today's increasingly digital world. Familiarity with basic programming concepts is no longer sufficient to succeed as a software developer, today's developers require a wider field of expertise and a holistic, customer-focused approach.  This book is a pragmatic guide to software development in practice. It explores the inner workings of software development in the context of the industry, covering good practice for software developers and providing you with tools and practical understanding you'll need to advance within the software development world.\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003eA remarkable book that provides a unique perspective on modern software development. A distinctive and unusual feature is the way modern software development principles are explained holistically in terms of all project activities.  The focus on key employment skills and knowledge also makes it a must read for aspiring developers. -- Chris Beaumont PhD FBCS FHEA * Chair of Examiners, NCC Education *\u003cbr\u003eI wish this book was around when I was starting out 30 years ago.  It’s a manual for all aspects of software development and the scope of the role in business, rather than focusing on being a ‘coder’. I particularly like the fact it includes client aspects, which are usually forgotten! -- Andy Doyle * Director, Nice Group (SW) Ltd *\u003cbr\u003eAs a leader of many software development teams, this book will be indispensable to modern developers and managers alike. It will not teach you how to write .NET, but will help when someone who does tries to bamboozle you with jargon. It is brilliantly written and easy to digest. -- Paul Leonard * Group Technology \u0026amp; Infrastructure Manager, DCC plc *\u003cbr\u003eA comprehensive, practical overview of what awaits you in the real world of professional software development. -- Karl Beecher * Author of Computational Thinking *\u003cbr\u003eSoftware Development in Practice takes the guesswork out of your journey into tech. From term definitions, Agile practices and clean code tips, this book is my go-to resource for anyone breaking into the tech industry. I especially appreciate the emphasis on communication, collaboration and user experience. -- Sjoukje Ijlstra * Software Engineer, JP Morgan *\u003cbr\u003eThere are many books which describe various technical and theoretical aspects of software development. However, few describe what’s actually involved in day-to-day software development. This book is one of those few and should be of real interest to prospective and early-career software developers. -- Dr Patrick Hill * R\u0026amp;D Director, QPC Ltd *\u003cbr\u003eAs a security researcher and advocate for embedding security in the software development process, it is enlightening to see this book dedicate some detailed coverage to consider use of defensive coding techniques, GDPR from a developers point of view and looking at specific vulnerabilities and associated mitigations taken direct from the OWASP Top10. -- Adrian Winckles * Director of Cyber and Networking, Anglia Ruskin University *\u003cbr\u003eA great book for both those thinking of working or progressing in the commercial software development industry. The book gives insight into working practices, identifying positives and negatives to each of them. Deliberately avoiding specific programming languages (other than to explain some points), the book will be a perfect addition for any dev team in any development environment. -- Martin Thorne * Technical Director, Montpellier Integrated *\u003cbr\u003eThis book provides the framework to apply knowledge of how to code into the real world of being a software developer. It is the theory and thought processes that you can’t learn without doing the job first - until now! If you’re considering a career path in software development this book should be the first port of call on your journey. -- Kieran Purdie * Pro AV Channel Manager \u0026amp; Business Development \/ Technical Manager, NETGEAR Business, UK \u0026amp; Ireland *\u003cbr\u003eIf you want a guide on what you need to do to become a fantastic software developer, then this book is for you. The book’s in-depth topic coverage will provide you with all the tools and information you will need to succeed in the software development Industry. -- Anthony Davis * Senior Manager Platform Engineering, Sixt *\u003cbr\u003eIT now permeates almost every area of business, in an environment where the pace is ever increasing it is essential for those aspiring to work as a software developer to gain knowledge, skills and experience in many areas. Software Development in Practice covers the areas to master to become a productive member of a software development team. -- Chris Galley FBCS CITP\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003col\u003e\n\u003cli\u003eGETTING STARTED IN SOFTWARE DEVELOPMENT\u003c\/li\u003e\n\u003cli\u003eTARGET ROLES\u003c\/li\u003e\n\u003cli\u003eOVERVIEW OF DIFFERENT TASKS A COMMERCIAL DEVELOPER MIGHT ENCOUNTER IN THE ROLE\u003c\/li\u003e\n\u003cli\u003eOVERVIEW OF SOFTWARE DEVELOPMENT METHODOLOGIES \u003c\/li\u003e\n\u003cli\u003eOVERVIEW OF COMMERCIAL SOFTWARE LANGUAGES AND PARADIGMS \u003c\/li\u003e\n\u003cli\u003eANALYSIS AND PLANNING \u003c\/li\u003e\n\u003cli\u003eWRITING GOOD-QUALITY CODE \u003c\/li\u003e\n\u003cli\u003eDEVELOPING EFFECTIVE USER INTERFACES\u003c\/li\u003e\n\u003cli\u003eLINKING PROGRAM CODE TO BACK-END DATA SOURCES \u003c\/li\u003e\n\u003cli\u003eTESTING CODE AND ANALYSING RESULTS \u003c\/li\u003e\n\u003cli\u003eWORKING WITH STRUCTURED TECHNIQUES TO PROBLEM-SOLVE AND DESIGN SOLUTIONS \u003c\/li\u003e\n\u003cli\u003eHOW TO DEBUG CODE AND UNDERSTAND UNDERLYING PROGRAM STRUCTURE\u003c\/li\u003e\n\u003cli\u003eWORKING WITH SYSTEMS ANALYSIS ARTEFACTS\u003c\/li\u003e\n\u003cli\u003eBUILDING, MANAGING AND DEPLOYING CODE INTO ENTERPRISE ENVIRONMENTS \u003c\/li\u003e\n\u003cli\u003eINDUSTRY APPROACHES TO TESTING\u003c\/li\u003e\n\u003cli\u003eCLIENT AND STAKEHOLDER FOCUS\u003c\/li\u003e\n\u003cli\u003ePROFESSIONAL RECOGNITION\u003c\/li\u003e\n\u003cli\u003eFINAL THOUGHTS\u003c\/li\u003e\n\u003c\/ol\u003e","brand":"BCS Learning \u0026 Development Limited","offers":[{"title":"Default Title","offer_id":48740982849879,"sku":"9781780174976","price":28.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781780174976.jpg?v=1720056210"},{"product_id":"data-structures-and-algorithms-with-scala-a-practitioners-approach-with-emphasis-on-functional-programming-9783030125608","title":"Data Structures and Algorithms with Scala: A","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003eThis practically-focused textbook presents a concise tutorial on data structures and algorithms using the object-functional language Scala. The material builds upon the foundation established in the title \u003ci\u003eProgramming with Scala: Language Exploration\u003c\/i\u003e by the same author, which can be treated as a companion text for those less familiar with Scala.\u003cp\u003e\u003c\/p\u003eTopics and features: discusses data structures and algorithms in the form of design patterns; covers key topics on arrays, lists, stacks, queues, hash tables, binary trees, sorting, searching, and graphs; describes examples of complete and running applications for each topic; presents a functional approach to implementations for data structures and algorithms (excepting arrays); provides numerous challenge exercises (with solutions), encouraging the reader to take existing solutions and improve upon them; offers insights from the author’s extensive industrial experience; includes a glossary, and an appendix supplying an overview of discrete mathematics.\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eHighlighting the techniques and skills necessary to quickly derive solutions to applied problems, this accessible text will prove invaluable to time-pressured students and professional software engineers.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eFoundational Components\u003c\/p\u003e  \u003cp\u003eFundamental Algorithms\u003c\/p\u003e  \u003cp\u003eArrays\u003c\/p\u003e  \u003cp\u003eLists\u003c\/p\u003e  \u003cp\u003eStacks\u003c\/p\u003e  \u003cp\u003eQueues\u003c\/p\u003e  \u003cp\u003eHash Tables\u003c\/p\u003e  \u003cp\u003eBinary Trees\u003c\/p\u003e  \u003cp\u003eSorting\u003c\/p\u003e  \u003cp\u003eSearching\u003c\/p\u003e  \u003cp\u003eGraphs\u003c\/p\u003e  \u003cp\u003eAppendix A: Solutions for Selected Exercises\u003c\/p\u003e  \u003cp\u003eAppendix B: Review of Discrete Mathematical Topics\u003c\/p\u003e","brand":"Springer Nature Switzerland AG","offers":[{"title":"Default Title","offer_id":48743024263511,"sku":"9783030125608","price":31.34,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783030125608.jpg?v=1720063790"},{"product_id":"algebra-and-geometry-with-python-9783030615437","title":"Algebra and Geometry with Python","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThis book teaches algebra and geometry. The authors dedicate chapters to the key issues of matrices, linear equations, matrix algorithms, vector spaces, lines, planes, second-order curves, and elliptic curves. \u003c\/p\u003e\u003cp\u003eThe text is supported throughout with problems, and the authors have included source code in Python in the book. The book is suitable for advanced undergraduate and graduate students in computer science.\u003c\/p\u003e  \u003cp\u003e \u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTrade Review\u003c\/b\u003e\u003cbr\u003e“It is most interesting to combine a classical mathematical topic with a new evolving programming language and exactly this is obtained by this book. … This material is used as a case study for their implementation for solving problems in theoretical and practical cryptography. The ‘roadmap’ of the content of this also quite interesting.” (Panayiotis Vlamos, zbMATH 1480.00002, 2022)\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eMatrices and Matrix Algorithms.- Matrix Algebra.- Systems of Linear Equations.- Complex Numbers and Matrices.- Vector Spaces.- Vectors in a Three-Dimensional Space.- Equation of a Straight Line on a Plane.- Equation of a Plane in Space.- Equation of a Line in Space.- Bilinear and Quadratic Forms.- Curves of the Second-Order.- Elliptic Curves.- Appendix A, Basic Operators in Python and C.- Appendix B, Trigonometric Formulae.- Appendix C, The Greek Alphabet.- References.- Name Index.- Subject Index.\u003cbr\u003e\u003c\/p\u003e","brand":"Springer Nature Switzerland AG","offers":[{"title":"Default Title","offer_id":48743042023767,"sku":"9783030615437","price":54.99,"currency_code":"GBP","in_stock":true}]},{"product_id":"explainable-ai-with-python-9783030686390","title":"Explainable AI with Python","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThis book provides a full presentation of the current concepts and available techniques to make “machine learning” systems more explainable. The approaches presented can be applied to almost all the current “machine learning” models: linear and logistic regression, deep learning neural networks, natural language processing and image recognition, among the others.\u003c\/p\u003e\u003cp\u003eProgress in Machine Learning is increasing the use of artificial agents to perform critical tasks previously handled by humans (healthcare, legal and finance, among others). While the principles that guide the design of these agents are understood, most of the current deep-learning models are \"opaque\" to human understanding. \u003ci\u003eExplainable AI with Python\u003c\/i\u003e fills the current gap in literature on this emerging topic by taking both a theoretical and a practical perspective, making the reader quickly capable of working with tools and code for Explainable AI.\u003c\/p\u003e\u003cp\u003eBeginning with examples of what Explainable AI (XAI) is and why it is needed in the field, the book details different approaches to XAI depending on specific context and need.  Hands-on work on interpretable models with specific examples leveraging Python are then presented, showing how intrinsic interpretable models can be interpreted and how to produce “human understandable” explanations. Model-agnostic methods for XAI are shown to produce explanations without relying on ML models internals that are “opaque.”  Using examples from Computer Vision, the authors then look at explainable models for Deep Learning and prospective methods for the future. Taking a practical perspective, the authors demonstrate how to effectively use ML and XAI in science. The final chapter explains Adversarial Machine Learning and how to do XAI with adversarial examples.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eContents1. The Landscape1.1 Examples of what Explainable AI is1.1.1 Learning Phase1.1.2 Knowledge Discovery1.1.3 Reliability and Robustness1.1.4 What have we learnt from the 3 examples1.2 Machine Learning and XAI1.2.1 Machine Learning tassonomy1.2.2 Common Myths1.3 The need for Explainable AI1.4 Explainability and Interpretability: different words to say the same thing or not?1.4.1 From World to Humans1.4.2 Correlation is not causation1.4.3 So what is the difference between interpretability and explainability?1.5 Making Machine Learning systems explainable1.5.1 The XAI flow1.5.2 The big picture1.6 Do we really need to make Machine Learning Models explainable?1.7 Summary1.8 References2. Explainable AI: needs, opportunities and challenges2.1 Human in the loop2.1.1 Centaur XAI systems2.1.2 XAI evaluation from “Human in The Loop perspective”2.2 How to make Machine Learning models explainable2.2.1 Intrinsic Explanations2.2.2 Post-Hoc Explanations2.2.3 Global or Local Explainability2.3 Properties of Explanations2.4 Summary2.5 References3 Intrinsic Explainable Models3.1.Loss Function3.2.Linear Regression3.3.Logistic Regression3.4.Decision Trees3.5.K-Nearest Neighbors (KNN)3.6.Summary3.7 References4. Model-agnostic methods for XAI4.1 Global Explanations: permutation Importance and Partial Dependence Plot4.1.1 Ranking features by Permutation Importance4.1.2 Permutation Importance on the train set4.1.3 Partial Dependence Plot4.1.4 Properties of Explanations4.2 Local Explanations: XAI with Shapley Additive explanations4.2.1 Shapley Values: a game-theoretical approach4.2.2 The first use of SHAP4.2.3 Properties of Explanations4.3 The road to KernelSHAP4.3.1 The Shapley formula4.3.2 How to calculate Shapley values4.3.3 Local Linear Surrogate Models (LIME)4.3.4 KernelSHAP is a unique form of LIME4.4 Kernel SHAP and interactions4.4.1 The NewYork Cab scenario4.4.2 Train the Model with preliminary analysis4.4.3 Making the model explainable with KernelShap4.4.4 Interactions of features4.5 A faster SHAP for boosted trees4.5.1 Using TreeShap4.5.2 Providing explanations4.6 A naïve criticism to SHAP4.7 Summary4.8 References5. Explaining Deep Learning Models5.1 Agnostic Approach5.1.1 Adversarial Features5.1.2 Augmentations5.1.3 Occlusions as augmentations5.1.4 Occlusions as an Agnostic XAI Method5.2 Neural Networks5.2.1 The neural network structure5.2.2 Why the neural network is Deep? (vs shallow)5.2.3 Rectified activations (and Batch Normalization)5.2.4 Saliency Maps5.3 Opening Deep Networks5.3.1 Different layer explanation5.3.2 CAM (Class Activation Maps) and Grad-CAM5.3.3 DeepShap \/ DeepLift5.4 A critic of Saliency Methods5.4.1 What the network sees5.4.2 Explainability batch normalizing layer by layer5.5 Unsupervised Methods5.5.1 Unsupervised Dimensional Reduction5.5.2 Dimensional reduction of convolutional filters5.5.3 Activation Atlases: How to tell a wok from a pan5.6 Summary5.7 References6. Making science with Machine Learning and XAI6.1 Scientific method in the age of data6.2 Ladder of Causation6.3 Discovering physics concepts with ML and XAI6.3.1 The magic of autoencoders6.3.2 Discover the physics of damped pendulum with ML and XAI6.3.3 Climbing the ladder of causation6.4 Science in the age of ML and XAI6.5 Summary6.6 References7. Adversarial Machine Learning and Explainability7.1 Adversarial Examples (AE) crash course7.1.2 Hands-on Adversarial Examples7.2 Doing XAI with Adversarial Examples7.3 Defending against Adversarial Attacks with XAI7.4 Summary7.5 References8. A proposal for a sustainable model of Explainable AI8.1 The XAI \"fil rouge\"8.2 XAI and GDPR8.2.1 FAST XAI8.3 Conclusions8.4 Summary8.5 ReferencesIndex\u003cbr\u003e","brand":"Springer Nature Switzerland AG","offers":[{"title":"Default Title","offer_id":48743045300567,"sku":"9783030686390","price":52.24,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783030686390.jpg?v=1720063869"},{"product_id":"julia-bit-by-bit-programming-for-beginners-9783030739355","title":"Julia - Bit by Bit: Programming for Beginners","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThe main goal of this book is to teach fundamental programming principles to beginners using \u003ci\u003eJulia\u003c\/i\u003e, one of the fastest growing programming languages today. \u003ci\u003eJulia \u003c\/i\u003ecan be classified as a \"modern\" language, possessing many features not available in more popular languages like C and Java.\u003c\/p\u003e  \u003cp\u003eThe book is organized in 10 chapters. Chapter 1 gives an overview of the programming process. It shows how to write a first \u003ci\u003eJulia \u003c\/i\u003eprogram and introduces some of the basic building blocks needed to write programs. Chapter 2 is all about numbers—integers, floating-point, operators, expressions—how to work with them and how to print them. Chapter 3 shows how to write programs which can make decisions. It explains how to use if and if…else statements. Chapter 4 explains the notion of ‘looping’, implemented using for and while statements. It also explains how to read data from a file and write results to a file. Chapter 5 formally treats with functions, enabling a (large) program to be broken up into smaller manageable units which work together to solve a given problem. Chapter 6 is devoted to characters and strings. In \u003ci\u003eJulia\u003c\/i\u003e, we can work with them as seamlessly as we do with numbers. Chapter 7 tackles array processing, which is significantly easier in \u003ci\u003eJulia\u003c\/i\u003e than other languages. Chapter 8 is about sorting and searching techniques. Sorting puts data in an order that can be searched more quickly\/easily, and makes it more palatable for human consumption. Chapter 9 introduces structures\u003ci\u003e,\u003c\/i\u003e enabling us to group data in a form that can be manipulated more easily as a unit. Chapter 10 deals with two useful data structures—dictionaries and sets. These enable us to solve certain kinds of problems more easily and conveniently than we can without them.\u003c\/p\u003e  \u003cp\u003eThis book is intended for anyone who is learning programming for the first time. The presentation is based on the fact that many students (though not all) have difficulties in learning programming. To overcome this, the book uses an approach which provides clear examples, detailed explanations of very basic concepts and numerous interesting problems (not just artificial exercises whose only purpose is to illustrate some language feature).\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e1. Elementary Concepts.- 2. Numbers.- 3. Selection Logic.- 4. The for and while Statements.- 5. Functions.- 6. Characters \u0026amp; Strings.- 7. Arrays.- 8. Searching, Sorting and Merging.- 9. Structures.- 10. Dictionaries \u0026amp; Sets.","brand":"Springer Nature Switzerland AG","offers":[{"title":"Default Title","offer_id":48743047889239,"sku":"9783030739355","price":44.99,"currency_code":"GBP","in_stock":true}]},{"product_id":"beginners-guide-to-kotlin-programming-9783030808921","title":"Beginner's Guide to Kotlin Programming","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThis textbook assumes very little knowledge of programming so whether you have dabbled with a little JavaScript, played with a bit of Python, written Java or have virtually no programming experience at all you will find that it is for you.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eThe first part of the book introduces Kotlin program structures as well as conditional flow of control features such as if and when expressions as well as iteration loops such as for, while and do-while. Subsequent chapters explain how functions are implemented in Kotlin and introduce concepts from functional programming such as higher order functions and curried functions.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003eThe second part focusses on object oriented programming techniques, these include classes, inheritance, abstraction and interfaces. The third part presents container data types such as Arrays, and collections including Lists, Sets and Maps and the fourth part considers concurrency and parallelism using Kotlin coroutines. The book concludes with an introduction to Android mobile application development using Kotlin.\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eClear steps are provided explaining how to set up your environment and get started writing your own Kotlin programs.\u003cbr\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eAn important aspect of the book is teaching by example and there are many examples presented throughout the chapters. These examples are supported by a public GitHub repository that provides complete working code as well as sample solutions to the chapter exercises. This helps illustrate how to write well structured, clear, idiomatic Kotlin to build real applications.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eIntroduction.- Part 1: Kotlin Programming.- A First Kotlin Program.- Flow of Control.- Number Guessing Game.- Functions in Kotlin.- Higher Order Functions.- Curried Functions.- Part 2: Object Oriented Kotlin.- Kotlin Classes.- Objects and Companion Objects,- Further Kotlin Properties.- Scope and Conditional Functions.- Class Inheritance.- Abstract Classes.- Interfaces, Delegation and Enumerated Types.- Packages.- Nested and Inner Types.- Data Classes.- Sealed and Inline Classes and Typealias.- Operator Overloading.- Error and Exception Handling.- Extension Functions and Properties.- Part 3: Data Containers.- Arrays.- Collections.-  Lists.- Sets.- Maps.- Pairs and Triples.- Generic Types.- Functional Programming and Containers.- Part 4: Concurrent Kotlin.- Coroutines.- Coroutine Channel Communications.- Part 5: Android Development.- Android Overview.- Applications and Activities.- Android Layouts and Events.- Android Tic Tac Toe.\u003cp\u003e\u003c\/p\u003e","brand":"Springer Nature Switzerland AG","offers":[{"title":"Default Title","offer_id":48743051493719,"sku":"9783030808921","price":49.99,"currency_code":"GBP","in_stock":true}]},{"product_id":"programming-language-concepts-9783319607887","title":"Programming Language Concepts","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eThis book uses a functional programming language (F#) as a metalanguage to present all concepts and examples, and thus has an operational flavour, enabling practical experiments and exercises. It includes basic concepts such as abstract syntax, interpretation, stack machines, compilation, type checking, garbage collection, and real machine code. Also included are more advanced topics on polymorphic types, type inference using unification, co- and contravariant types, continuations, and backwards code generation with on-the-fly peephole optimization. \u003c\/p\u003e  This second edition includes two new chapters. One describes compilation and type checking of a full functional language, tying together the previous chapters. The other describes how to compile a C subset to real (x86) hardware, as a smooth extension of the previously presented compilers.The examples present several interpreters and compilers for toy languages, including compilers for a small but usable subset of C, abstract machines, a garbage collector, and ML-style polymorphic type inference.  Each chapter has exercises.  \u003cp\u003e\u003c\/p\u003e  \u003cp\u003e\u003ci\u003eProgramming Language Concepts\u003c\/i\u003e covers practical construction of lexers and parsers, but not regular expressions, automata and grammars, which are well covered already.  It discusses the design and technology of Java and C# to strengthen students’ understanding of these widely used languages.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eIntroduction.- Interpreters and Compilers.- From Concrete Syntax to Abstract Syntax.- A First-Order Functional Language.- Higher-Order Functions.- Polymorphic Types.- Imperative Languages.- Compiling Micro-C.- Real-World Abstract Machines.- Garbage Collection.- Continuations.- A Locally Optimizing Compiler.- Compiling Micro-SML.- Real Machine Code.- A Crash Course in F#.\u003c\/p\u003e","brand":"Springer International Publishing AG","offers":[{"title":"Default Title","offer_id":48743099859287,"sku":"9783319607887","price":38.69,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783319607887.jpg?v=1720064108"},{"product_id":"test-your-c-skills-9788183331180","title":"Test Your C++ Skills","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"BPB Publications","offers":[{"title":"Default Title","offer_id":48743200620887,"sku":"9788183331180","price":17.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9788183331180.jpg?v=1720064553"}],"url":"https:\/\/bookcurl.com\/collections\/programming-and-scripting-languages-general.oembed?page=55","provider":"Book Curl","version":"1.0","type":"link"}