Object-oriented programming (OOP) Books
Packt Publishing Limited Mastering Java for Data Science
Book SynopsisUse Java to create a diverse range of Data Science applications and bring Data Science into productionAbout This Book An overview of modern Data Science and Machine Learning libraries available in Java Coverage of a broad set of topics, going from the basics of Machine Learning to Deep Learning and Big Data frameworks. Easy-to-follow illustrations and the running example of building a search engine. Who This Book Is ForThis book is intended for software engineers who are comfortable with developing Java applications and are familiar with the basic concepts of data science. Additionally, it will also be useful for data scientists who do not yet know Java but want or need to learn it. If you are willing to build efficient data science applications and bring them in the enterprise environment without changing the existing stack, this book is for you!What You Will Learn Get a solid understanding of the data processing toolbox available in Java Explore the data science ecosystem available in Java Find out how to approach different machine learning problems with Java Process unstructured information such as natural language text or images Create your own search engine Get state-of-the-art performance with XGBoost Learn how to build deep neural networks with DeepLearning4j Build applications that scale and process large amounts of data Deploy data science models to production and evaluate their performanceIn DetailJava is the most popular programming language, according to the TIOBE index, and it is a typical choice for running production systems in many companies, both in the startup world and among large enterprises. Not surprisingly, it is also a common choice for creating data science applications: it is fast and has a great set of data processing tools, both built-in and external. What is more, choosing Java for data science allows you to easily integrate solutions with existing software, and bring data science into production with less effort. This book will teach you how to create data science applications with Java. First, we will revise the most important things when starting a data science application, and then brush up the basics of Java and machine learning before diving into more advanced topics. We start by going over the existing libraries for data processing and libraries with machine learning algorithms. After that, we cover topics such as classification and regression, dimensionality reduction and clustering, information retrieval and natural language processing, and deep learning and big data. Finally, we finish the book by talking about the ways to deploy the model and evaluate it in production settings. Style and approachThis is a practical guide where all the important concepts such as classification, regression, and dimensionality reduction are explained with the help of examples.
£37.99
Packt Publishing Limited Java Data Science Cookbook
Book SynopsisRecipes to help you overcome your data science hurdles using JavaAbout This Book This book provides modern recipes in small steps to help an apprentice cook become a master chef in data science Use these recipes to obtain, clean, analyze, and learn from your data Learn how to get your data science applications to production and enterprise environments effortlesslyWho This Book Is ForThis book is for Java developers who are familiar with the fundamentals of data science and want to improve their skills to become a pro. What You Will Learn Find out how to clean and make datasets ready so you can acquire actual insights by removing noise and outliers Develop the skills to use modern machine learning techniques to retrieve information and transform data to knowledge. retrieve information from large amount of data in text format. Familiarize yourself with cutting-edge techniques to store and search large volumes of data and retrieve information from large amounts of data in text format Develop basic skills to apply big data and deep learning technologies on large volumes of data Evolve your data visualization skills and gain valuable insights from your data Get to know a step-by-step formula to develop an industry-standard, large-scale, real-life data product Gain the skills to visualize data and interact with users through data insightsIn DetailIf you are looking to build data science models that are good for production, Java has come to the rescue. With the aid of strong libraries such as MLlib, Weka, DL4j, and more, you can efficiently perform all the data science tasks you need to. This unique book provides modern recipes to solve your common and not-so-common data science-related problems. We start with recipes to help you obtain, clean, index, and search data. Then you will learn a variety of techniques to analyze, learn from, and retrieve information from data. You will also understand how to handle big data, learn deeply from data, and visualize data. Finally, you will work through unique recipes that solve your problems while taking data science to production, writing distributed data science applications, and much morethings that will come in handy at work. Style and approachThis book contains short yet very effective recipes to solve most common problems. Some recipes cater to very specific, rare pain points. The recipes cover different data sets and work very closely to real production environments
£37.99
Springer Nature Switzerland AG Fundamentals of Java Programming
Book SynopsisMaking extensive use of examples, this textbook on Java programming teaches the fundamental skills for getting started in a command-line environment. Meant to be used for a one-semester course to build solid foundations in Java, Fundamentals of Java Programming eschews second-semester content to concentrate on over 180 code examples and 250 exercises.Key object classes (String, Scanner, PrintStream, Arrays, and File) are included to get started in Java programming. The programs are explained with almost line-by-line descriptions, also with chapter-by-chapter coding exercises.Teaching resources include solutions to the exercises, as well as digital lecture slides.Table of Contents1) Programming Basics 1 a) Java and the Java Virtual Machine 3 1.1 Computers and Their Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 The computer programs in your machine . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Java Virtual Machines - JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3 Code editing and code compiling . . . . . . . . . . . . . . . . . . . . . . . . . 6 b) Our First Programs 13 2.1 The First Program, “Hello, World!” . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.1 Method declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.3 System.out.println and System.out.print . . . . . . . . . . . . . . . . . . 17 2.1.4 Spacing in the source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Commenting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Using Multiple Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 • println versus print revisited . . . . . . . . . . . . . . . . . . . . . . . . . . 23 • Printing multiple-line texts on the screen . . . . . . . . . . . . . . . . . . . . 25 2.4.3 Escaping characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.4 Printing shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 c) Using Data for Computation 39 3.1 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.1 Data and their taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.2 Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.3 Variable declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.1.4 Naming variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.5 Value assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 The primitive data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.1 Quarterbacks program again . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3 Using Variables for Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.1 Number arithmetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.2 Formula evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.3 Our first calculation program . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.4 Mixing different number types . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.5 Computing the Body-Mass Index . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.3.6 Sum of integers from 1 to 100 `a la Gauss . . . . . . . . . . . . . . . . . . . . 61 3.3.7 Simplified expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.4 An Introduction to String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.4.1 String objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.4.2 String additions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.4.3 Escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.4 Connection with other types . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4 Reading Keyboard Input 83 4.1 The Class Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2 Reading input with a Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5 Decomposing Code into Components 99 5.1 Code Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1.1 Printing rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1.2 Quadrangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.3 Old MacDonald Had a Farm . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 5.1.4 The benefits of code decomposition . . . . . . . . . . . . . . . . . . . . . . . . 114 5.2 Using Multiple Program Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6 Passing Values to and from Methods 123 6.1 Passing Values to Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.1.1 Methods that work with parameters . . . . . . . . . . . . . . . . . . . . . . . 123 6.1.2 Method overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.2 Receiving a Value from a Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.3 Class Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.3.1 Mathematical functions in Java . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.3.2 Application using Math methods . . . . . . . . . . . . . . . . . . . . . . . . . 146 2) Loops and Conditional Execution 157 7 For-Loops 159 7.1 Repetitive Code Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.2 Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.2.1 Simple iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.2.2 Iteration with an auxiliary variable . . . . . . . . . . . . . . . . . . . . . . . . 173 7.3 Double For-Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8 Using Conditions to Control the Flow 187 8.1 Condition and its evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 8.2 The If Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 8.2.1 If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 8.2.2 Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 8.2.3 Special conditional evaluation rules . . . . . . . . . . . . . . . . . . . . . . . . 209 8.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.3.1 Computing max and min in a series of numbers . . . . . . . . . . . . . . . . . 211 8.3.2 A betting game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9 Formatted Printing using printf 225 9.1 Formatted Printing of Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.2 Formatted Printing of Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.3 Formatted Printing of Floating Point Numbers . . . . . . . . . . . . . . . . . . . . . 229 10 String Methods for Text Processing 237 10.1 String Methods for Information Extraction . . . . . . . . . . . . . . . . . . . . . . . 237 10.2 String Methods for Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 10.3 String methods for Pattern Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 10.4 String methods for creating new String objects . . . . . . . . . . . . . . . . . . . . 246 10.5 Class StringBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 11 Branching Using Switch Statements 259 11.1 Switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 11.2 Switching on a Char or a String Value . . . . . . . . . . . . . . . . . . . . . . . . . . 266 12 While and Do-while Loops 277 12.1 The While Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 12.1.1 What is a while-loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 12.1.2 Collect numbers until the total reaches a target . . . . . . . . . . . . . . . . . 279 12.1.3 Integer overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 12.1.4 Vending machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 12.1.5 The Collatz Conjecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 12.1.6 From decimal to binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 12.2 Do-while statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 12.2.1 Do-while versus while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 12.2.2 Waiting for Godot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 12.2.3 Converting to binary, again . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 12.3 Terminating a Scanner of Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 12.4 Approximating the Square Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 III Arrays 311 13 Arrays 313 13.1 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.1.1 What is an array? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 13.1.2 Counting the number of occurrences . . . . . . . . . . . . . . . . . . . . . . . 314 13.2 Offset Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 13.2.1 Offset indexing to avoid wasteful use of array elements . . . . . . . . . . . . . 322 13.2.2 Offset indexing for BMI calculation . . . . . . . . . . . . . . . . . . . . . . . . 323 13.2.3 Character occurrence counting . . . . . . . . . . . . . . . . . . . . . . . . . . 325 13.2.4 Negative offset indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 13.3 Primality Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 13.4 Using Multiple Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 13.5 ArrayIndexOutOfBoundsException . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 14 Class Arrays, Resizing Arrays, and Arrays with Capacity 347 14.1 Class Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 14.2 Coordinated Array Modifications with Sustained Length . . . . . . . . . . . . . . . . 351 14.2.1 Reversing element order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 14.2.2 Cyclic shifting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 14.3 Modifications That Require Resizing . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 14.3.1 Insertion and deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 14.3.2 Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 14.4 args - the Argument Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 14.5 Searching in an Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 14.5.1 Sequential search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 14.5.2 Sequential search in an array with elements in order . . . . . . . . . . . . . . 370 14.5.3 Binary search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 14.6 Arrays with Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 15 Multidimensional Arrays 385 15.1 Two-dimensional Rectangular Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 15.1.1 Multi-dimensional arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 15.1.2 Summation of over subsequences . . . . . . . . . . . . . . . . . . . . . . . . . 386 15.2 Matrix multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 15.2.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 15.2.2 Two dimensional rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 15.3 Jagged Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 IV Object Classes 401 16 Class File 403 16.1 An Introduction to Object Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 16.2 File Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 16.3 File methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 16.3.1 List of File methods we may use . . . . . . . . . . . . . . . . . . . . . . . . . 405 16.3.2 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 16.3.3 Listing of File objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 16.4 Scanner of a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 16.5 Writing to Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 17 Designing Object Classes 435 17.1 Using Object Classes for Packaging Data Elements . . . . . . . . . . . . . . . . . . . 435 17.1.1 The position of a game piece . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 17.1.2 Private instance variables and the toString method . . . . . . . . . . . . . . 440 17.1.3 Using constants in an object class . . . . . . . . . . . . . . . . . . . . . . . . 442 17.1.4 Information hiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 17.2 Bank Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 17.3 Array with Capacity (as an Object Class) . . . . . . . . . . . . . . . . . . . . . . . . 461 18 Interfaces, Subclasses, Inheritance, and Polymorphism 471 18.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 18.1.1 Interface as a template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 18.1.2 A simple pizza application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 18.1.3 The “simple” pizza collection class . . . . . . . . . . . . . . . . . . . . . . . . 473 18.1.4 The pizza collection main class . . . . . . . . . . . . . . . . . . . . . . . . . . 478 18.2 Subclasses and Superclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 18.2.1 Extending existing classes and interfaces . . . . . . . . . . . . . . . . . . . . . 480 18.2.2 Writing extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 18.3 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 18.4 Interface Comparable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 V Advanced Concepts 499 19 Cumulative Algorithms 501 19.1 What is a Cumulative Algorithm? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 19.2 Computing Recurrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 19.3 Computing the Factorial Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 20 Recursive Algorithms 513 20.1 The Factorial Again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 20.2 GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 20.3 The Tower of Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
£44.99
BPB Publications C 13 and .NET 9
Book Synopsis
£40.40
John Wiley & Sons Inc Beginning Java Programming
Book SynopsisA comprehensive Java guide, with samples, exercises, case studies, and step-by-step instruction Beginning Java Programming: The Object Oriented Approach is a straightforward resource for getting started with one of the world''s most enduringly popular programming languages. Based on classes taught by the authors, the book starts with the basics and gradually builds into more advanced concepts. The approach utilizes an integrated development environment that allows readers to immediately apply what they learn, and includes step-by-step instruction with plenty of sample programs. Each chapter contains exercises based on real-world business and educational scenarios, and the final chapter uses case studies to combine several concepts and put readers'' new skills to the test. Beginning Java Programming: The Object Oriented Approach provides both the information and the tools beginners need to develop Java skills, from the general concepts of object-oriented Trade Review"Learning Java is a big subject, and this is a big book to match. I would recommend this book top anyone who is serioys in learning to program in Java." (BCS - The Chartered Institute for IT, February 2017)Table of ContentsIntroduction xxii Chapter 1: A General Introduction To Programming 1 The Programming Process 2 Object-Oriented Programming: A Sneak Preview 5 Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors 6 Logic/Semantic Errors 7 Principles of Software Testing 7 Software Maintenance 8 Adaptive Maintenance 8 Perfective Maintenance 8 Corrective Maintenance 8 Preventive Maintenance 9 Principles of Structured Programming 9 Chapter 2: Getting To Know Java 11 A Short Java History 12 Features of Java 13 Looking Under the Hood 13 Bytecode 14 Java Runtime Environment (JRE) 15 Java Application Programming Interface (API) 16 Class Loader 17 Bytecode Verifier 18 Java Virtual Machine (JVM) 18 Java Platforms 19 Java Applications 19 Standalone Applications 19 Java Applets 20 Java Servlets 20 Java Beans 21 Java Language Structure 21 Classes 22 Identifiers 22 Java Keywords 22 Variables 23 Methods 23 Comments 24 Naming Conventions 26 Java Data Types 27 Primitive Data Types 27 Literals 28 Operators 29 Arithmetic Operators 29 Assignment Operators 30 Bitwise Operators 31 Logical Operators 32 Relational Operators 34 Arrays 34 Type Casting 37 Summary 40 Chapter 3: Setting Up Your Development Environment 41 Integrated Development Environments 42 Coding in Text Editors 42 Choosing an IDE 46 Eclipse 47 NetBeans 47 IntelliJ IDEA 47 Continuing with One IDE 47 Installing Eclipse on Your Computer 48 Downloading and Installing Eclipse 48 Using Eclipse 50 Chapter 4: Moving Toward Object‐Oriented Programming 61 Basic Concepts of Object‐Oriented Programming 62 Classes and Objects in Java 63 Defining Classes in Java 63 Creating Objects 71 Storing Data: Variables 76 Instance Variables 76 Class Variables 80 Final Variables 82 Variable Scope 87 Defining Behavior: Methods 91 Instance Methods 91 Class Methods 94 Constructors 95 The Main Method 100 Method Argument Passing 109 Java SE Built‐in Classes 115 Classes in the java.lang Package 115 Classes in the java.io and java.nio Packages 117 Classes in the java.math Package 118 Classes in the java.net, java.rmi, javax.rmi, and org.omg.CORBA Packages 118 Classes in the java.awt and javax.swing Packages 118 Classes in the java.util Package 118 Collections 119 Other Utility Classes 126 Other Classes and Custom Libraries 127 Chapter 5: Controlling the Flow of Your Program 129 Comparisons Using Operators and Methods 130 Comparing Primitive Data Types with Comparison Operators 130 Comparing Composite Data Types with Comparison Methods 132 Understanding Language Control 135 Creating if-then Statements 135 Nesting if-then Statements 137 Creating for Loops 138 What is an Enhanced for Loop? 143 Nesting for Loops 146 Creating while Loops 148 What is a do while Loop? 152 Comparing for and while Loops 156 Creating Switches 156 Comparing Switches and if-then Statements 161 Reviewing Keywords for Control 162 Controlling with the return Keyword 162 Controlling with the break Keyword 163 Controlling with the continue Keyword 164 Specifying a Label for break or continue Control 164 Reviewing Control Structures 168 Chapter 6: Handling Exceptions and Debugging 171 Recognizing Error Types 172 Identifying Syntax Errors 172 Identifying Runtime Errors 175 Identifying Logical Errors 176 Exceptions 180 Common Exceptions 181 Catching Exceptions 187 Debugging Your Applications 195 Using a Debugger Tool 195 Using a Logging API 200 Testing Your Applications 210 Summary 219 Chapter 7: Delving Further Into Object‐Oriented Concepts 221 Annotations 222 Overloading Methods 222 The this KeyWord 224 Information Hiding 229 Access Modifiers 230 Getters 231 Setters 232 Class Inheritance 240 The Keyword super 241 Method Overriding 243 Polymorphism 243 Static Binding 244 Dynamic Binding 244 The Superclass Object 245 Abstract Classes and Methods 246 Packages 251 Interfaces 252 Garbage Collection 259 Chapter 8: Handling Input and Output 261 General Input and Output 262 Input and Output in Java 266 Streams 268 Byte Streams 269 Character Streams 275 Buffered Streams 276 Data and Object Streams 278 Other Streams 281 Scanners 281 Input and Output from the Command-Line 283 Input and Output from Files 290 Java NIO2 File Input and Output 291 The Path Interface 291 The Files Class 293 Checking Existence 293 Legacy File Input and Output 304 A Word on FileUtils 305 Conclusion 305 Chapter 9: Working With Databases in Java 307 Covering the Basics of Relational Databases 308 Accessing Relational Databases from Java 315 Java Database Connectivity (JDBC) 315 SQLJ 321 Ensuring Object Persistence 324 Hibernate 325 Object-Oriented Database Access from Java 341 Comparing Java Database Access Technologies 343 What’s Ahead 344 Chapter 10: Accessing Web Sources 347 A Brief Introduction to Networking 348 Web Services 360 RPC and RMI 360 SOAP 364 REST 366 Accessing Web Services and Sources with Java 368 Accessing SOAP Services 368 Installing JAX‐WS 368 Accessing SOAP Services with JAX‐WS Without WSDL 369 Accessing SOAP Services with JAX‐WS with WSDL 395 Accessing REST Services 406 Accessing REST Services Without Authentication 408 Accessing REST Services with Authentication 421 Screen Scraping 449 Screen Scraping Without Cookies 451 Screen Scraping with Cookies 453 Creating Your Own Web Services with Java 457 Setting Up an HTTP Server 457 Providing REST Services 461 Chapter 11: Designing Graphical Interfaces 463 Covering the Basics of GUIs in Java 464 Highlighting the Built‐In GUI Libraries 464 Abstract Window Toolkit (AWT) 464 Swing 464 Standard Widget Toolkit (SWT) 465 JavaFX 465 Other Toolkits and Libraries 466 Choosing a GUI Library 466 Building with Containers and Components 467 Looking at the Full Picture 472 Comparing Layout Managers 473 FlowLayout 474 BorderLayout 476 GridLayout 478 GridBagLayout 482 CardLayout 486 BoxLayout 489 GroupLayout and SpringLayout 493 Absolute Positioning (No Layout Manager) 494 Understanding Events 496 Introduction to Events 496 Event Listeners 497 On Threading and Swing 514 Closing Topics 524 Best Practices: Keeping Looks and Logic Separated 524 Let’s Draw: Defining Custom Draw Behavior 525 Visual GUI Designers: Making Life Easy? 540 JavaFX: The Road Ahead? 545 Chapter 12: Using Object‐Oriented Patterns 557 Introduction to Patterns 558 Object‐Oriented Patterns 558 Creational Patterns 559 Singleton Pattern and Static Utility Class 559 Service Provider Pattern and Null Object Pattern 565 (Abstract) Factory Pattern 566 Structural Patterns 568 Adapter Pattern 568 Bridge Pattern 570 Decorator Pattern 571 Facade Pattern 574 Composite Pattern 575 Type Pattern and Role Pattern 583 Behavioral Patterns 591 Chain‐of‐Responsibility Pattern 591 Observer Pattern and Model‐View‐Controller Pattern 592 Iterator Pattern 605 Visitor Pattern 607 Template Method Pattern 610 Strategy Pattern 612 Helpful Libraries 614 Apache Commons 614 Google Guava 615 Trove 615 Colt 615 Lombok 616 OpenCSV 616 HTML and JSON Libraries 616 Hibernate and Other JPA‐Compliant Libraries 617 Joda‐Time 617 Charting Libraries 617 3D Graphics Libraries 617 Financial Libraries 618 Index 619
£30.60
Dover Publications Inc. An Introduction to Functional Programming Through
Book Synopsis
£25.07
Mike Murach & Associates Inc. Murach's Java Programming (6th Edition)
Book Synopsis
£51.84
Pearson Education (US) Python Programming with Design Patterns
Book SynopsisJames W. Cooper 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 Flameout: The Rise and Fall of IBM Instruments (2019) and Food Myths Debunked (2014). James holds 11 patents and has written 60 columns for JavaPro Magazine. 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. He is also involved in local theater groups and is the treasurer for Troupers Light Opera, where he performs regularly.Table of ContentsPreface xxi PART I: INTRODUCTION 1 The tkinter Library 2 GitHub 2 Chapter 1 Introduction to Objects 5 The Class __init__ Method 6 Variables Inside a Class 6 Collections of Classes 7 Inheritance 8 Derived Classes Created with Revised Methods 8 Multiple Inheritance 8 Drawing a Rectangle and a Square 10 Visibility of Variables 12 Properties 13 Local Variables 13 Types in Python 13 Summary 14 Programs on GitHub 15 Chapter 2 Visual Programming in Python 17 Importing Fewer Names 19 Creating an Object-Oriented Version 19 Using Message Boxes 21 Using File Dialogs 22 Understanding Options for the Pack Layout Manager 23 Using the ttk Libraries 24 Responding to User Input 25 Adding Two Numbers 26 Catching the Error 26 Applying Colors in tkinter 27 Creating Radio Buttons 27 Using a Class-Level Variable 30 Communicating Between Classes 30 Using the Grid Layout 30 Creating Checkbuttons 32 Disabling Check Boxes 32 Adding Menus to Windows 35 Using the LabelFrame 39 Moving On 40 Examples on GitHub 40 Chapter 3 Visual Programming of Tables of Data 41 Creating a Listbox 42 Displaying the State Data 44 Using a Combobox 46 The Treeview Widget 47 Inserting Tree Nodes 50 Moving On 51 Example Code on GitHub 51 Chapter 4 What Are Design Patterns? 53 Defining Design Patterns 54 The Learning Process 55 Notes on Object-Oriented Approaches 56 Python Design Patterns 57 References 57 PART II: CREATIONAL PATTERNS 59 Chapter 5 The Factory Pattern 61 How a Factory Works 61 Sample Code 62 The Two Subclasses 62 Building the Simple Factory 63 Using the Factory 63 A Simple GUI 64 Factory Patterns in Math Computation 65 Programs on GitHub 65 Thought Questions 66 Chapter 6 The Factory Method Pattern 67 The Swimmer Class 68 The Event Classes 69 Straight Seeding 70 Circle Seeding 71 Our Seeding Program 72 Other Factories 74 When to Use a Factory Method 74 Programs on GitHub 74 Chapter 7 The Abstract Factory Pattern 75 A GardenMaker Factory 75 How the User Interface Works 77 Consequences of the Abstract Factory Pattern 77 Thought Questions 78 Code on GitHub 78 Chapter 8 The Singleton Pattern 79 Throwing the Exception 80 Creating an Instance of the Class 80 Static Classes As Singleton Patterns 81 Finding the Singletons in a Large Program 81 Other Consequences of the Singleton Pattern 82 Sample Code on GitHub 82 Chapter 9 The Builder Pattern 83 An Investment Tracker 84 Calling the Builders 86 The List Box Builder 87 The Checkbox Builder 88 Displaying the Selected Securities 89 Consequences of the Builder Pattern 89 Thought Questions 89 Sample Code on GitHub 89 Chapter 10 The Prototype Pattern 91 Cloning in Python 91 Using the Prototype 92 Consequences of the Prototype Pattern 94 Sample Code on GitHub 94 Chapter 11 Summary of Creational Patterns 95 PART III: STRUCTURAL PATTERNS 97 Chapter 12 The Adapter Pattern 99 Moving Data Between Lists 99 Making an Adapter 101 The Class Adapter 103 Two-Way Adapters 103 Pluggable Adapters 103 Programs on GitHub 103 Chapter 13 The Bridge Pattern 105 Creating the User Interface 107 Extending the Bridge 108 Consequences of the Bridge Pattern 109 Programs on GitHub 110 Chapter 14 The Composite Pattern 111 An Implementation of a Composite 112 Salary Computation 112 The Employee Classes 112 The Boss Class 113 Building the Employee Tree 114 Printing the Employee Tree 114 Creating a Treeview of the Composite 116 Using Doubly Linked Lists 117 Consequences of the Composite Pattern 118 A Simple Composite 119 Other Implementation Issues 119 Dealing with Recursive Calls 119 Ordering Components 120 Caching Results 120 Programs on GitHub 120 Chapter 15 The Decorator Pattern 121 Decorating a Button 121 Using a Decorator 122 Using Nonvisual Decorators 123 Decorated Code 124 The dataclass Decorator 125 Using dataclass with Default Values 126 Decorators, Adapters, and Composites 126 Consequences of the Decorator Pattern 126 Programs on GitHub 127 Chapter 16 The Facade Pattern 129 Building the Façade Classes 131 Creating Databases and Tables 135 Using the SQLite Version 136 Consequences of the Façade 137 Programs on GitHub 137 Notes on MySQL 137 Using SQLite 138 References 138 Chapter 17 The Flyweight Pattern 139 What Are Flyweights? 139 Example Code 140 Selecting a Folder 142 Copy-on-Write Objects 143 Program on GitHub 143 Chapter 18 The Proxy Pattern 145 Using the Pillow Image Library 145 Displaying an Image Using PIL 146 Using Threads to Handle Image Loading 146 Logging from Threads 149 Copy-on-Write 149 Comparing Related Patterns 149 Programs on GitHub 150 Chapter 19 Summary of Structural Patterns 151 PART IV: BEHAVIORAL PATTERNS 153 Chapter 20 Chain of Responsibility Pattern 155 When to Use the Chain 156 Sample Code 156 The Listboxes 159 Programming a Help System 160 Receiving the Help Command 161 The First Case 162 A Chain or a Tree? 163 Kinds of Requests 164 Consequences of the Chain of Responsibility 164 Programs on GitHub 165 Chapter 21 The Command Pattern 167 When to Use the Command Pattern 167 Command Objects 168 A Keyboard Example 168 Calling the Command Objects 170 Building Command Objects 171 The Command Pattern 172 Consequences of the Command Pattern 172 Providing the Undo Function 172 Creating the Red and Blue Buttons 175 Undoing the Lines 175 Summary 176 References 176 Programs on GitHub 176 Chapter 22 The Interpreter Pattern 177 When to Use an Interpreter 177 Where the Pattern Can Be Helpful 177 A Simple Report Example 178 Interpreting the Language 179 How Parsing Works 180 Sorting Using attrgetter() 181 The Print Verb 182 The Console Interface 182 The User Interface 183 Consequences of the Interpreter Pattern 184 Programs on GitHub 185 Chapter 23 The Iterator Pattern 187 Why We Use Iterators 187 Iterators in Python 187 A Fibonacci Iterator 188 Getting the Iterator 189 Filtered Iterators 189 The Iterator Generator 191 A Fibonacci Iterator 191 Generators in Classes 192 Consequences of the Iterator Pattern 192 Programs on GitHub 193 Chapter 24 The Mediator Pattern 195 An Example System 195 Interactions Between Controls 197 Sample Code 198 Mediators and Command Objects 199 Consequences of the Mediator Pattern 200 Single Interface Mediators 200 Programs on GitHub 201 Chapter 25 The Memento Pattern 203 When to Use a Memento 203 Sample Code 204 Consequences of the Memento Pattern 209 Programs on GitHub 209 Chapter 26 The Observer Pattern 211 Example Program for Watching Colors Change 212 The Message to the Media 215 Consequences of the Observer Pattern 215 Programs on GitHub 215 Chapter 27 The State Pattern 217 Sample Code 217 Switching Between States 221 How the Mediator Interacts with the State State Transitions 224 Programs on GitHub 224 Chapter 28 The Strategy Pattern 225 Why We Use the Strategy Pattern 225 Sample Code 226 The Context 227 The Program Commands 227 The Line and Bar Graph Strategies 228 Consequences of the Strategy Pattern 230 Programs on GitHub 231 Chapter 29 The Template Pattern 233 Why We Use Template Patterns 233 Kinds of Methods in a Template Class 234 Sample Code 234 Drawing a Standard Triangle 235 Drawing an Isosceles Triangle 236 The Triangle Drawing Program 237 Templates and Callbacks 238 Summary and Consequences 238 Example Code on GitHub 238 Chapter 30 The Visitor Pattern 239 When to Use the Visitor Pattern 239 Working with the Visitor Pattern 241 Sample Code 241 Visiting Each Class 242 Visiting Several Classes 242 Bosses Are Employees, Too 243 Double Dispatching 245 Traversing a Series of Classes 245 Consequences of the Visitor Pattern 245 Example Code on GitHub 245 PART V: A BRIEF INTRODUCTION TO PYTHON 247 Chapter 31 Variables and Syntax in Python 249 Data Types 250 Numeric Constants 250 Strings 250 Character Constants 251 Variables 252 Complex Numbers 253 Integer Division 253 Multiple Equal Signs for Initialization 254 A Simple Python Program 254 Compiling and Running This Program 255 Arithmetic Operators 255 Bitwise Operators 255 Combined Arithmetic and Assignment Statements 256 Comparison Operators 256 The input Statement 257 PEP 8 Standards 258 Variable and Function Names 258 Constants 258 Class Names 258 Indentation and Spacing 259 Comments 259 Docstrings 259 String Methods 260 Examples on GitHub 261 Chapter 32 Making Decisions in Python 263 elif is “else if” 263 Combining Conditions 264 The Most Common Mistake 264 Looping Statements in Python 265 The for Loop and Lists 265 Using range in if Statements 266 Using break and continue 266 The continue Statement 267 Python Line Length 267 The print Function 267 Formatting Numbers 268 C and Java Style Formatting 269 The format string Function 269 f-string Formatting 269 Comma-Separated Numbers 270 Strings 270 Formatting Dates 271 Using the Python match Function 271 Pattern Matching 272 Reference 273 Moving On 273 Sample Code on GitHub 273 Chapter 33 Development Environments 275 IDLE 275 Thonny 275 PyCharm 276 Visual Studio 276 Other Development Environments 276 LiClipse 276 Jupyter Notebook 277 Google Colaboratory 277 Anaconda 277 Wing 278 Command-Line Execution 278 CPython, IPython, and Jython 278 Chapter 34 Python Collections and Files 279 Slicing 279 Slicing Strings 280 Negative Indexes 281 String Prefix and Suffix Removal 281 Changing List Contents 281 Copying a List 282 Reading Files 282 Using the with Loop 283 Handling Exceptions 284 Using Dictionaries 284 Combining Dictionaries 286 Using Tuples 286 Using Sets 287 Using the map Function 287 Writing a Complete Program 288 Impenetrable Coding 288 Using List Comprehension 289 Sample Programs on GitHub 290 Chapter 35 Functions 291 Returning a Tuple 292 Where Does the Program Start? 292 Summary 293 Programs on GitHub 293 Appendix A Running Python Programs 295 If You Have Python Installed 295 Shortcuts 295 Creating an Executable Python Program 296 Command-Line Arguments 297 Index 299
£36.09
Pearson Education (US) ObjectOriented Analysis and Design with
Book SynopsisGrady Booch is an IBM fellow and author of six best-selling books on object-oriented programming. He is world-reknowned as an originator of OO and founder of UML. Robert A. Maksimchuk, as Research Director in the Unisys CTO Office, focuses on emerging modeling technologies to advance the strategic direction of the Unisys 3D-Visual Enterprise modeling framework. Bob brings an abundance of systems engineering, modeling, and object-oriented analysis and design expertise, in numerous industries, to this mission. He is the coauthor of the books UML for Mere Mortals and UML for Database Design, has written various articles, has traveled worldwide as a featured speaker in numerous technology forums, and led workshops and seminars on UML and object-oriented development. Michael W. Engle is a principal member of the engineering staff with the Lockheed Martin Corporation. He has extensive technical and management experience across theTable of ContentsSidebars xiPreface xiiiAcknowledgments xixAbout the Authors xxi Section I: Concepts 1 Chapter 1: Complexity 3 1.1 The Structure of Complex Systems 41.2 The Inherent Complexity of Software 71.3 The Five Attributes of a Complex System 121.4 Organized and Disorganized Complexity 141.5 Bringing Order to Chaos 181.6 On Designing Complex Systems 24 Chapter 2: The Object Model 29 2.1 The Evolution of the Object Model 292.2 Foundations of the Object Model 372.3 Elements of the Object Model 432.4 Applying the Object Model 71 Chapter 3: Classes and Objects 75 3.1 The Nature of an Object 753.2 Relationships among Objects 883.3 The Nature of a Class 923.4 Relationships among Classes 963.5 The Interplay of Classes and Objects 1113.6 On Building Quality Classes and Objects 112 Chapter 4: Classification 121 4.1 The Importance of Proper Classification 1214.2 Identifying Classes and Objects 1264.3 Key Abstractions and Mechanisms 138 Section II: Method 145 Chapter 5: Notation 147 5.1 The Unified Modeling Language 1475.2 Package Diagrams 1555.3 Component Diagrams 1635.4 Deployment Diagrams 1715.5 Use Case Diagrams 1755.6 Activity Diagrams 1855.7 Class Diagrams 1925.8 Sequence Diagrams 2065.9 Interaction Overview Diagrams 2135.10 Composite Structure Diagrams 2155.11 State Machine Diagrams 2185.12 Timing Diagrams 2315.13 Object Diagrams 2355.14 Communication Diagrams 238 Chapter 6: Process 247 6.1 First Principles 2486.2 The Macro Process: The Software Development Lifecycle 2566.3 The Micro Process: The Analysis and Design Process 272 Chapter 7: Pragmatics 303 7.1 Management and Planning 3047.2 Staffing 3087.3 Release Management 3127.4 Reuse 3147.5 Quality Assurance and Metrics 3167.6 Documentation 3207.7 Tools 3227.8 Special Topics 3247.9 The Benefits and Risks of Object-Oriented Development 326 Section III: Applications 331 Chapter 8: System Architecture: Satellite-Based Navigation 333 8.1 Inception 3348.2 Elaboration 3478.3 Construction 3708.4 Post-Transition 371 Chapter 9: Control System: Traffic Management 375 9.1 Inception 3769.2 Elaboration 3859.3 Construction 3969.4 Post-Transition 411 Chapter 10: Artificial Intelligence: Cryptanalysis 413 10.1 Inception 41410.2 Elaboration 42110.3 Construction 42710.4 Post-Transition 446 Chapter 11: Data Acquisition: Weather Monitoring Station 449 11.1 Inception 45011.2 Elaboration 46311.3 Construction 47411.4 Post-Transition 487 Chapter 12: Web Application: Vacation Tracking System 489 12.1 Inception 49012.2 Elaboration 49412.3 Construction 50612.4 Transition and Post-Transition 534 Appendix A: Object-Oriented Programming Languages 537 A.1 Language Evolution 537A.2 Smalltalk 541A.3 C++ 546A.4 Java 551 Appendix B: Further Reading 557 Notes 567Glossary 591Classified Bibliography 603Index 677
£999.99
John Wiley & Sons Inc Karel the Robot A Gentle Introduction to the Art
Book SynopsisUses a creative approach to teach the basic skills and concepts of programming quickly. This edition offers excellent insights into problem solving and program design processes. It will also improve comprehension of such computer science considerations as loop invariants and recursion. Includes 60 color line drawings.Table of ContentsThe Robot World. Primitive Instructions and Simple Programs. Extending Karel's Vocabulary. Conditionally Executing Instructions. Instructions That Repeat. Advanced Techniques for Karel. Appendix. Indexes.
£26.52
Cambridge University Press IntegrationReady Architecture and Design
a huge range and FREE tracked UK delivery on ALL orders.
£85.49
Cambridge University Press Design Optimization using MATLAB and SOLIDWORKS
Book SynopsisA unique text integrating numerics, mathematics and applications to provide a hands-on approach to using optimization techniques, this mathematically accessible textbook emphasises conceptual understanding and importance of theorems rather than elaborate proofs. It allows students to develop fundamental optimization methods before delving into MATLAB''s optimization toolbox, and to link MATLAB''s results with the results from their own code. Following a practical approach, the text demonstrates several applications, from error-free analytic examples to truss (size) optimization, and 2D and 3D shape optimization, where numerical errors are inevitable. The principle of minimum potential energy is discussed to highlight the deep relationship between engineering and optimization. MATLAB code in every chapter illustrates key concepts and the text demonstrates the coupling between MATLAB and SOLIDWORKS for design optimization. A wide variety of optimization problems are covered including conTrade Review'Design Optimization using MATLAB and SOLIDWORKS by Dr. Suresh provides an excellent review of various optimization methods, especially for structural problems. Its introduction to MATLAB would help students who have had little experience with this software to become familiar with it quickly and apply it to some of the basic optimization problems.' Hamid Torab, Gannon University'Dr. Suresh's text brings his contributions to shape optimization into the classroom by connecting optimization, MATLAB, SOLIDWORKS, and SOLIDLAB into a single textbook. This text enables the reader to build upon this research accomplishment. I look forward to seeing what my students can achieve with this textbook at their fingertips.' Cameron Turner, Clemson UniversityTable of ContentsPreface; Table of Contents; 1. Introduction; 2. Modeling; 3. Introduction to MATLAB; 4. Unconstrained Optimization: Theory; 5. Unconstrained Optimization: Algorithms; 6. MATLAB Optimization Toolbox; 7. Constrained Optimization; 8. Special Classes of Problems; 9. Truss Analysis; 10. Size Optimization of Trusses; 11. Gradient Computation; 12. Finite Element Analysis in 2D; 13. Shape Optimization in 2D; 14. Finite Element Analysis in 3D; 15. SOLIDLAB: A SOLIDWORKS-MATLAB Interface; 16. Shape Optimization using SOLIDLAB; 17. Appendix; 18. References.
£75.99
McGraw-Hill Education Software Engineering An Agile Unified Methodology
Book SynopsisThe new edition of Software Engineering presents a step-by-step methodology that integrates Modeling and Design, UML, Patterns, Test-Driven Development, Quality Assurance, Configuration Management, and Agile Principles throughout the life cycle. The overall approach is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as real-world stories to help the reader understand software design principles, patterns, and other software engineering concepts. The book also provides stimulating exercises that go far beyond the type of question that can be answered by simply copying portions of the text.The new edition of Software Engineering is now available for the first time in McGraw Hill Connect! Connect for this course features the MHeBook, Writing Tool, Proctorio, and the Connect authoring tool that offers the ability to create your own questions.Table of ContentsPart 1: Introduction and System EngineeringChapter 1: IntroductionChapter 2: Software Process and MethodologyChapter 3: System EngineeringPart 2: Analysis and Architectural DesignChapter 4: Software Requirements ElicitationChapter 5: Domain ModelingChapter 6: Architectural DesignPart 3: Modeling and Design of InteractiveChapter 7: Deriving Use Cases from RequirementsChapter 8: Actor-System Interaction ModelingChapter 9: Object Interaction ModelingChapter 10: Applying Responsibility-Assignment PatternsChapter 11: Deriving a Design Class DiagramChapter 12: User Interface DesignPart 4: Modeling and Design of Other Types of SystemsChapter 13: Object State Modeling for Event-Driven SystemsChapter 14: Activity Modeling for TransformationalChapter 15: Modeling and Design of Rule-Based SystemsPart 5: Applying Situation-Specific PatternsChapter 16: Applying Patterns to Design a State Diagram EditorChapter 17: Applying Patterns to Design a Persistence FrameworkPart 6: Implementation and Quality AssuranceChapter 18: Implementation ConsiderationsChapter 19: Software Quality AssuranceChapter 20: Software TestingPart 7: Maintenance and Configuration ManagementChapter 21: Software MaintenanceChapter 22: Software Configuration ManagementPart 8: Project Management and Software SoftwareChapter 23: Software Project ManagementChapter 24: Software Security
£53.99
Nova Science Publishers Inc Design of Object-Oriented Applications: The
Book Synopsis
£76.49
Mike Murach & Associates Inc. Murach's C++ Programming: 2018
Book SynopsisIn the beginning, C++ was a hard language to learn because it required programmers to master low-level techniques to work with memory. Over the years, C++ has evolved to provide higher-level techniques that make it much easier to write effective code. But most C++ books havent evolved with the language. Until now. Now, this book uses modern C++ to get you off to a fast start, and then builds out your coding and OOP skills to the professional level. At that point, it also covers older techniques so youll be able to maintain the vast amount of legacy code thats out there, as well as work with embedded systems that dont support the newer techniques.
£999.99
PHI Learning Object-oriented Database Systems: Approaches and
Book SynopsisJava's rise led to Java-based OODBMS like Ozone and enhanced ORDBMS like Oracle 9i and DB2. Second Edition discusses these developments, offering insights on object database systems and various approaches. Includes exercises for analytical practice, beneficial for computer pros and postgrad students in database systems.
£8.09
Prentice-Hall of India Pvt.Ltd Programming in C++
Book SynopsisC++ is a high-level programming language, considered a superset of C. It covers structured and object-oriented programming, with programs and exercises for each concept. The book explains language fundamentals and gradually introduces object-oriented programming concepts, making it ideal for computer science and IT students.
£16.12
BPB Publications Let Us Java
Book SynopsisLet Us Java introduces basic to complex Java concepts in a simple format, aiding beginners with step-by-step solutions. It covers topics like data types, OOP, arrays, interfaces, inheritance, exceptions, I/O, and more with exercises and examples for practical understanding.
£11.24
BPB Publications 100+ Solutions in Java: Everything you need to
Book Synopsis
£33.24
BPB Publications Implementing Design Patterns in C# 11 and .NET 7
Book Synopsis
£29.92
SIGS ObjectOriented COBOL
Book SynopsisThis is the only book that walks COBOL users through the next phase of COBOL: Object-Oriented COBOL (OOCOBOL). Written by experts in COBOL programming, Object-Oriented COBOL teaches you how to integrate COBOL with object-oriented methodologies. It provides explanations and roadmaps that will help you understand, navigate, and successfully integrate analysis and design concepts with enabling OOCOBOL constructs. Designed for current COBOL users and based on the authors' experience teaching Object-Oriented COBOL, experienced COBOL programmers can use Object-Oriented COBOL to begin programming effectively with objects in as little as twelve weeks, significantly less than the steep learning curve of twelve to twenty-four months for Smalltalk and C++. Object-Oriented COBOL also includes extensive examples and experiences, written in OOCOBOL, that explain the defining traits of an object-oriented language, such as encapsulation, inheritance, and polymorphism.Trade Review"I would recommend this book for those interested in seeing how an object-oriented structure can be imposed on a flat language like COBOL." Computing ReviewsTable of ContentsPart I. Concepts: 1. COBOL and objects; 2. An object-oriented COBOL model; Part II. Constructs: 3. Classes - a matter of structure; 4. Objects; 5. Inheritance; Part III. Objects in Action: 6. Messages; 7. Creating and destroying objects; 8. Working with objects; 9. Collections; Part IV. Putting Objects to Work: 10. Object-oriented analysis and design; 11. Migrating Legacy Systems; Appendix A. Object-oriented COBOL vendors: Hitachi, IBM, and Micro Focus; Appendix B. The Library Application; Appendix C. COBOL reserved words; Appendix D. New COBOL reserved words; Appendix E. Intrinsic functions; Appendix F. COBOL 85/89 features.
£67.99
Lulu Press Java Design Pattern Essentials
£14.96
£19.95
Lulu Press PHP Design Pattern Essentials
a huge range and FREE tracked UK delivery on ALL orders.
£19.95
Rational Forge Prince of Programming
£44.62
Amazon Digital Services LLC - Kdp Dobre Praktyki i Wzorce Projektowe w Python
£22.32
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Beginning COBOL for Programmers
Book SynopsisBeginning COBOL for Programmers is a comprehensive, sophisticated tutorial and modular skills reference on the COBOL programming language for established programmers. This book is for you if you are a developer who would like to—or must—add COBOL to your repertoire. Perhaps you recognize the opportunities presented by the current COBOL skills crisis, or are working in a mission critical enterprise which retains legacy COBOL applications. Whatever your situation, Beginning COBOL for Programmers meets your needs as an established programmer moving to COBOL.Beginning COBOL for Programmers includes comprehensive coverage of ANS 85 COBOL features and techniques, including control structures, condition names, sequential and direct access files, data redefinition, string handling, decimal arithmetic, subprograms, and the report writer. The final chapter includes a substantial introduction to object-orienteTable of Contents1. Introduction to COBOL 2. COBOL Foundation3. Data Declaration In COBOL4. Procedure Division Basics5. Control Structures: Selection6. Control Structures: Iteration 7. Introduction to Sequential Files8. Advanced Sequential Files9. Edited Pictures10. Processing Sequential Files11. Creating Tabular Data 12. Advanced Data Declaration13. Searching Tabular Data14. Sorting and Merging15. String Manipulation16. Creating Large Systems17. Direct Access Files18. The COBOL Report Writer 19. OO-COBOL
£80.99
Mercury Learning and Information CSS3 and SVG with Gemini
Book Synopsis
£36.90
Packt Publishing Limited Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries
Book SynopsisA comprehensive guide to exploring modern Python through data structures, design patterns, and effective object-oriented techniquesKey Features Build an intuitive understanding of object-oriented design, from introductory to mature programs Learn the ins and outs of Python syntax, libraries, and best practices Examine a machine-learning case study at the end of each chapter Book DescriptionObject-oriented programming (OOP) is a popular design paradigm in which data and behaviors are encapsulated in such a way that they can be manipulated together. Python Object-Oriented Programming, Fourth Edition dives deep into the various aspects of OOP, Python as an OOP language, common and advanced design patterns, and hands-on data manipulation and testing of more complex OOP systems. These concepts are consolidated by open-ended exercises, as well as a real-world case study at the end of every chapter, newly written for this edition. All example code is now compatible with Python 3.9+ syntax and has been updated with type hints for ease of learning. Steven and Dusty provide a comprehensive, illustrative tour of important OOP concepts, such as inheritance, composition, and polymorphism, and explain how they work together with Python's classes and data structures to facilitate good design. In addition, the book also features an in-depth look at Python's exception handling and how functional programming intersects with OOP. Two very powerful automated testing systems, unittest and pytest, are introduced. The final chapter provides a detailed discussion of Python's concurrent programming ecosystem. By the end of the book, you will have a thorough understanding of how to think about and apply object-oriented principles using Python syntax and be able to confidently create robust and reliable programs.What you will learn Implement objects in Python by creating classes and defining methods Extend class functionality using inheritance Use exceptions to handle unusual situations cleanly Understand when to use object-oriented features, and more importantly, when not to use them Discover several widely used design patterns and how they are implemented in Python Uncover the simplicity of unit and integration testing and understand why they are so important Learn to statically type check your dynamic code Understand concurrency with asyncio and how it speeds up programs Who this book is forIf you are new to object-oriented programming techniques, or if you have basic Python skills and wish to learn how and when to correctly apply OOP principles in Python, this is the book for you. Moreover, if you are an object-oriented programmer coming from other languages or seeking a leg up in the new world of Python, you will find this book a useful introduction to Python. Minimal previous experience with Python is necessary.Table of ContentsTable of Contents Object-Oriented Design Objects in Python When Objects Are Alike Expecting the Unexpected When to Use Object-Oriented Programming Abstract Base Classes and Operator Overloading Python Data Structures The Intersection of Object-Oriented and Functional Programming Strings, Serialization, and File Paths The Iterator Pattern Common Design Patterns Advanced Design Patterns Testing Object-Oriented Programs Concurrency
£63.06
Packt Publishing Limited Minimal APIs in ASP.NET 9
£26.99
Packt Publishing Limited C 13 and .NET 9 Modern CrossPlatform Development Fundamentals
£46.96
Packt Publishing Limited Debunking C Myths
£29.99
Packt Publishing Limited C 14 and .NET 10 Modern CrossPlatform Development Fundamentals
£41.99
Packt Publishing Limited Python ObjectOriented Programming
£39.89
Packt Publishing JavaScript from Beginner to Professional
£54.14
Biblebyte Books Introduction to Unity 3D with C The Exodus Adventure
£52.20
Drip Digital Learn JavaScript Quickly: A Complete Beginner's Guide to Learning JavaScript, Even If You're New to Programming
£12.34
Payload Media, Inc. C 13 Programming Essentials .NET 9 Edition
£22.79
Payload Media, Inc. Jetpack Compose 1.7 Essentials
£38.94
BoD - Books on Demand Building Application with Spec 2.0
£32.20
Springer Nature Switzerland AG Concise Guide to Object-Oriented Programming: An Accessible Approach Using Java
Book SynopsisThis engaging textbook provides an accessible introduction to coding and the world of Object-Oriented (OO) programming, using Java as the illustrative programming language. Emphasis is placed on what is most helpful for the first-time coder, in order to develop and understand their knowledge and skills in a way that is relevant and practical. The examples presented in the text demonstrate how skills in OO programming can be used to create applications and programs that have real-world value in daily life.Topics and features: presents an overview of programming and coding, a brief history of programming languages, and a concise introduction to programming in Java using BlueJ; discusses classes and objects, reviews various Java library objects and packages, and introduces the idea of the Application Programming Interface (API); highlights how OO design forms an essential role in producing a useful solution to a problem, and the importance of the concept of class polymorphism; examines what to do when code encounters an error condition, describing the exception handling mechanism and practical measures in defensive coding; investigates the work of arrays and collections, with a particular focus on fixed length arrays, the ArrayList, HashMap and HashSet; describes the basics of building a Graphical User Interface (GUI) using Swing, and the concept of a design pattern; outlines two complete applications, from conceptual design to implementation, illustrating the content covered by the rest of the book; provides code for all examples and projects at an associated website.This concise guide is ideal for the novice approaching OO programming for the first time, whether they are a student of computer science embarking on a one-semester course in this area, or someone learning for the purpose of professional development or self-improvement. The text does not require any prior knowledge of coding, software engineering, OO, or mathematics.Table of ContentsThe Origins of Programming Procedural Programming Basics in Java Getting Into Object Oriented Programming Library Classes and Packages Modelling the World the Object-Oriented Way Dealing with Errors Deeper Into Arrays and Collections Adding a Graphical User Interface Example Applications
£29.99
tredition Objektorientierte Programmierung in Java
£17.95
tredition Objektorientierte Programmierung in Java
£24.99
Books on Demand Multilinguale Anwendungsentwicklung für Delphi
Book Synopsis
£34.10
Books on Demand Use of the SOLID principles with the IEC 61131-3: 5 Principles for Object-Oriented Software Design in the PLC Programming
£11.10
Bruckner Tomas. Repin OOP - Learn Object Oriented Thinking and Programming
£33.25
£30.99
£35.09