{"product_id":"big-java-isbn-9781119398721","title":"Big Java","description":"\u003cp\u003e\u003cb\u003e\u003ci\u003eBig Java: Late Objects, 2nd Edition\u003c\/i\u003e\u003c\/b\u003e focuses on the essentials of effective learning and is suitable for a two-semester introduction to programming sequence. This text requires no prior programming experience and only a modest amount of high school algebra.  It provides an approachable introduction to fundamental programming techniques and design skills, helping students master basic concepts and become competent coders.  It takes a traditional route, first stressing control structures, procedural decomposition and array algorithms. Objects are used where appropriate in early sections of the text.  Students begin designing and implementing their own classes in Section 9.  The second half covers algorithms and data structures at a level suitable for beginning students.\u003cbr\u003e\u003cbr\u003eChoosing the enhanced eText format allows students to develop their coding skills using targeted, progressive interactivities designed to integrate with the eText.  All sections include built-in activities, open-ended review exercises, programming exercises, and projects to help students practice programming and build confidence. These activities go far beyond simplistic multiple-choice questions and animations. They have been designed to guide students along a learning path for mastering the complexities of programming. Students demonstrate comprehension of programming structures, then practice programming with simple steps in scaffolded settings, and finally write complete, automatically graded programs.\u003c\/p\u003e \u003cp\u003eThe perpetual access VitalSource Enhanced eText, when integrated with your school’s learning management system, provides the capability to monitor student progress in VitalSource SCORECenter and track grades for homework or participation.\u003c\/p\u003e \u003cp\u003e*Enhanced eText and interactive functionality available through select vendors and may require LMS integration approval for SCORECenter.\u003c\/p\u003e \u003cp\u003ePreface iii\u003c\/p\u003e \u003cp\u003eSpecial Features xxiv\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Computer Programs 2\u003c\/p\u003e \u003cp\u003e1.2 The Anatomy of a Computer 3\u003c\/p\u003e \u003cp\u003e1.3 The Java Programming Language 6\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 7\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003e1.6 Errors 14\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING Algorithm Design 15\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Fundamental Data Types 31\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Variables 32\u003c\/p\u003e \u003cp\u003e2.2 Arithmetic 43\u003c\/p\u003e \u003cp\u003e2.3 Input and Output 50\u003c\/p\u003e \u003cp\u003e2.4 PROBLEM SOLVING First Do it By Hand 59\u003c\/p\u003e \u003cp\u003e2.5 Strings 61\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Decisions 83\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 The if Statement 84\u003c\/p\u003e \u003cp\u003e3.2 Comparing Numbers and Strings 90\u003c\/p\u003e \u003cp\u003e3.3 Multiple Alternatives 98\u003c\/p\u003e \u003cp\u003e3.4 Nested Branches 102\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING Flowcharts 107\u003c\/p\u003e \u003cp\u003e3.6 PROBLEM SOLVING Test Cases 110\u003c\/p\u003e \u003cp\u003e3.7 Boolean Variables and Operators 113\u003c\/p\u003e \u003cp\u003e3.8 APPLICATION Input Validation 118\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Loops 142\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 The while Loop 142\u003c\/p\u003e \u003cp\u003e4.2 PROBLEM SOLVING Hand-Tracing 149\u003c\/p\u003e \u003cp\u003e4.3 The for Loop 152\u003c\/p\u003e \u003cp\u003e4.4 The do Loop 158\u003c\/p\u003e \u003cp\u003e4.5 APPLICATION Processing Sentinel Values 160\u003c\/p\u003e \u003cp\u003e4.6 PROBLEM SOLVING Storyboards 164\u003c\/p\u003e \u003cp\u003e4.7 Common Loop Algorithms 167\u003c\/p\u003e \u003cp\u003e4.8 Nested Loops 174\u003c\/p\u003e \u003cp\u003e4.9 PROBLEM SOLVING Solve a Simpler Problem First 178\u003c\/p\u003e \u003cp\u003e4.10 APPLICATION Random Numbers and Simulations 182\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Methods 211\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Methods as Black Boxes 212\u003c\/p\u003e \u003cp\u003e5.2 Implementing Methods 214\u003c\/p\u003e \u003cp\u003e5.3 Parameter Passing 217\u003c\/p\u003e \u003cp\u003e5.4 Return Values 220\u003c\/p\u003e \u003cp\u003e5.5 Methods Without Return Values 224\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING Reusable Methods 225\u003c\/p\u003e \u003cp\u003e5.7 PROBLEM SOLVING Stepwise Refinement 229\u003c\/p\u003e \u003cp\u003e5.8 Variable Scope 236\u003c\/p\u003e \u003cp\u003e5.9 Recursive Methods (Optional) 240\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 \u003c\/b\u003e\u003cb\u003eArrays and Arraylists 261\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Arrays 262\u003c\/p\u003e \u003cp\u003e6.2 The Enhanced for Loop 269\u003c\/p\u003e \u003cp\u003e6.3 Common Array Algorithms 270\u003c\/p\u003e \u003cp\u003e6.4 Using Arrays with Methods 280\u003c\/p\u003e \u003cp\u003e6.5 PROBLEM SOLVING Adapting Algorithms 284\u003c\/p\u003e \u003cp\u003e6.6 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 291\u003c\/p\u003e \u003cp\u003e6.7 Two-Dimensional Arrays 294\u003c\/p\u003e \u003cp\u003e6.8 Array Lists 301\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Input\/Output and Exception Handling 331\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Reading and Writing Text Files 332\u003c\/p\u003e \u003cp\u003e7.2 Text Input and Output 337\u003c\/p\u003e \u003cp\u003e7.3 Command Line Arguments 345\u003c\/p\u003e \u003cp\u003e7.4 Exception Handling 352\u003c\/p\u003e \u003cp\u003e7.5 APPLICATION Handling Input Errors 361\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Objects and Classes 375\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Object-Oriented Programming 376\u003c\/p\u003e \u003cp\u003e8.2 Implementing a Simple Class 378\u003c\/p\u003e \u003cp\u003e8.3 Specifying the Public Interface of a Class 381\u003c\/p\u003e \u003cp\u003e8.4 Designing the Data Representation 385\u003c\/p\u003e \u003cp\u003e8.5 Implementing Instance Methods 386\u003c\/p\u003e \u003cp\u003e8.6 Constructors 389\u003c\/p\u003e \u003cp\u003e8.7 Testing a Class 393\u003c\/p\u003e \u003cp\u003e8.8 Problem Solving: Tracing Objects 399\u003c\/p\u003e \u003cp\u003e8.9 Object References 403\u003c\/p\u003e \u003cp\u003e8.10 Static Variables and Methods 408\u003c\/p\u003e \u003cp\u003e8.11 PROBLEM SOLVING Patterns for Object Data 410\u003c\/p\u003e \u003cp\u003e8.12 Packages 417\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Inheritance and Interfaces 437\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Inheritance Hierarchies 438\u003c\/p\u003e \u003cp\u003e9.2 Implementing Subclasses 442\u003c\/p\u003e \u003cp\u003e9.3 Overriding Methods 446\u003c\/p\u003e \u003cp\u003e9.4 Polymorphism 452\u003c\/p\u003e \u003cp\u003e9.5 Object: The Cosmic Superclass 463\u003c\/p\u003e \u003cp\u003e9.6 Interface Types 470\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Graphical User Interfaces 493\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Frame Windows 494\u003c\/p\u003e \u003cp\u003e10.2 Events and Event Handling 498\u003c\/p\u003e \u003cp\u003e10.3 Processing Text Input 509\u003c\/p\u003e \u003cp\u003e10.4 Creating Drawings 515\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Advanced User Interfaces 535\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Layout Management 536\u003c\/p\u003e \u003cp\u003e11.2 Choices 538\u003c\/p\u003e \u003cp\u003e11.3 Menus 549\u003c\/p\u003e \u003cp\u003e11.4 Exploring the Swing Documentation 556\u003c\/p\u003e \u003cp\u003e11.5 Using Timer Events for Animations 561\u003c\/p\u003e \u003cp\u003e11.6 Mouse Events 564\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Object-Oriented Design 577\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Classes and Their Responsibilities 578\u003c\/p\u003e \u003cp\u003e12.2 Relationships Between Classes 582\u003c\/p\u003e \u003cp\u003e12.3 APPLICATION Printing an Invoice 589\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Recursion 607\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Triangle Numbers 608\u003c\/p\u003e \u003cp\u003e13.2 Recursive Helper Methods 616\u003c\/p\u003e \u003cp\u003e13.3 The Efficiency of Recursion 618\u003c\/p\u003e \u003cp\u003e13.4 Permutations 623\u003c\/p\u003e \u003cp\u003e13.5 Mutual Recursion 628\u003c\/p\u003e \u003cp\u003e13.6 Backtracking 634\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 \u003c\/b\u003e\u003cb\u003eSorting and Searching 649\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Selection Sort 650\u003c\/p\u003e \u003cp\u003e14.2 Profiling the Selection Sort Algorithm 653\u003c\/p\u003e \u003cp\u003e14.3 Analyzing the Performance of the Selection Sort Algorithm 656\u003c\/p\u003e \u003cp\u003e14.4 Merge Sort 661\u003c\/p\u003e \u003cp\u003e14.5 Analyzing the Merge Sort Algorithm 664\u003c\/p\u003e \u003cp\u003e14.6 Searching 668\u003c\/p\u003e \u003cp\u003e14.7 PROBLEM SOLVING Estimating the Running Time of an Algorithm 673\u003c\/p\u003e \u003cp\u003e14.8 Sorting and Searching in the Java\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 The Java Collections Framework 691\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 An Overview of the Collections Framework 692\u003c\/p\u003e \u003cp\u003e15.2 Linked Lists 695\u003c\/p\u003e \u003cp\u003e15.3 Sets 701\u003c\/p\u003e \u003cp\u003e15.4 Maps 706\u003c\/p\u003e \u003cp\u003e15.5 Stacks, Queues, and Priority Queues 712\u003c\/p\u003e \u003cp\u003e15.6 Stack and Queue Applications 715\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Basic Data Structures 735\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Implementing Linked Lists 736\u003c\/p\u003e \u003cp\u003e16.2 Implementing Array Lists 751\u003c\/p\u003e \u003cp\u003e16.3 Implementing Stacks and Queues 755\u003c\/p\u003e \u003cp\u003e16.4 Implementing a Hash Table 761\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Tree Structures 779\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Basic Tree Concepts 780\u003c\/p\u003e \u003cp\u003e17.2 Binary Trees 784\u003c\/p\u003e \u003cp\u003e17.3 Binary Search Trees 789\u003c\/p\u003e \u003cp\u003e17.4 Tree Traversal 798\u003c\/p\u003e \u003cp\u003e17.5 Red-Black Trees 804\u003c\/p\u003e \u003cp\u003e17.6 Heaps 811\u003c\/p\u003e \u003cp\u003e17.7 The Heapsort Algorithm 822\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Generic Classes 837\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Generic Classes and Type Parameters 838\u003c\/p\u003e \u003cp\u003e18.2 Implementing Generic Types 839\u003c\/p\u003e \u003cp\u003e18.3 Generic Methods 843\u003c\/p\u003e \u003cp\u003e18.4 Constraining Type Parameters 845\u003c\/p\u003e \u003cp\u003e18.5 Type Erasure 849\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Stream Processing 859\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 The Stream Concept 860\u003c\/p\u003e \u003cp\u003e19.2 Producing Streams 862\u003c\/p\u003e \u003cp\u003e19.3 Collecting Results 864\u003c\/p\u003e \u003cp\u003e19.4 Transforming Streams 866\u003c\/p\u003e \u003cp\u003e19.5 Lambda Expressions 869\u003c\/p\u003e \u003cp\u003e19.6 The Optional Type 873\u003c\/p\u003e \u003cp\u003e19.7 Other Terminal Operations 876\u003c\/p\u003e \u003cp\u003e19.8 Primitive-Type Streams 877\u003c\/p\u003e \u003cp\u003e19.9 Grouping Results 880\u003c\/p\u003e \u003cp\u003e19.10 Common Algorithms Revisited 882\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 \u003c\/b\u003e\u003cb\u003eAdvanced Input\/Output 897\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 Readers, Writers, and Input\/Output Streams 898\u003c\/p\u003e \u003cp\u003e20.2 Binary Input and Output 899\u003c\/p\u003e \u003cp\u003e20.3 Random Access 903\u003c\/p\u003e \u003cp\u003e20.4 Object Input and Output Streams 908\u003c\/p\u003e \u003cp\u003e20.5 File and Directory Operations 913\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 Multithreading (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Running Threads\u003c\/p\u003e \u003cp\u003e21.2 Terminating Threads\u003c\/p\u003e \u003cp\u003e21.3 Race Conditions\u003c\/p\u003e \u003cp\u003e21.4 Synchronizing Object Access\u003c\/p\u003e \u003cp\u003e21.5 Avoiding Deadlocks\u003c\/p\u003e \u003cp\u003e21.6 APPLICATION Algorithm Animation\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Internet Networking (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 The Internet Protocol\u003c\/p\u003e \u003cp\u003e22.2 Application Level Protocols\u003c\/p\u003e \u003cp\u003e22.3 A Client Program\u003c\/p\u003e \u003cp\u003e22.4 A Server Program\u003c\/p\u003e \u003cp\u003e22.5 URL Connections\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 Relational Databases (Web Only)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 Organizing Database Information\u003c\/p\u003e \u003cp\u003e23.2 Queries\u003c\/p\u003e \u003cp\u003e23.3 Installing a Database\u003c\/p\u003e \u003cp\u003e23.4 Database Programming in Java\u003c\/p\u003e \u003cp\u003e23.5 APPLICATION Entering an Invoice\u003c\/p\u003e \u003cp\u003eST 2 Transactions\u003c\/p\u003e \u003cp\u003eST 3 Object-Relational Mapping\u003c\/p\u003e \u003cp\u003eWE 1 Programming a Bank Database\u003c\/p\u003e \u003cp\u003e\u003cb\u003e24 XML (WEB ONLY)\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e24.1 XML Tags and Documents\u003c\/p\u003e \u003cp\u003e24.2 Parsing XML Documents\u003c\/p\u003e \u003cp\u003e24.3 Creating XML Documents\u003c\/p\u003e \u003cp\u003e24.4 Validating XML Documents\u003c\/p\u003e \u003cp\u003e25 Web Applications (WEB ONLY)\u003c\/p\u003e \u003cp\u003e\u003cb\u003e25.1 The Architecture of a Web Application\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e25.2 The Architecture of a JSF Application\u003c\/p\u003e \u003cp\u003e25.3 JavaBeans Components\u003c\/p\u003e \u003cp\u003e25.4 Navigation Between Pages\u003c\/p\u003e \u003cp\u003e25.5 JSF Components\u003c\/p\u003e \u003cp\u003e25.6 APPLICATION A Three-Tier Application\u003c\/p\u003e \u003cp\u003eAppendix A The Basic Latin and Latin-1 Subsets of Unicode A-1\u003c\/p\u003e \u003cp\u003eAppendix B Java Operator Summary A-5\u003c\/p\u003e \u003cp\u003eAppendix C Java Reserved Word Summary A-7\u003c\/p\u003e \u003cp\u003eAppendix D The Java Library A-9\u003c\/p\u003e \u003cp\u003eAppendix E Java Language Coding Guidelines A-38\u003c\/p\u003e \u003cp\u003eAppendix F Tool Summary\u003c\/p\u003e \u003cp\u003eAppendix G Number Systems\u003c\/p\u003e \u003cp\u003eAppendix H UML Summary\u003c\/p\u003e \u003cp\u003eAppendix I Java Syntax Summary\u003c\/p\u003e \u003cp\u003eAppendix J HTML Summary\u003c\/p\u003e \u003cp\u003eGlossary G-1\u003c\/p\u003e \u003cp\u003eIndex I-1\u003c\/p\u003e \u003cp\u003eCredits C-1\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988810776805,"sku":"NP9781119398721","price":111.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119398721.jpg?v=1761781683","url":"https:\/\/k12savings.com\/es\/products\/big-java-isbn-9781119398721","provider":"K12savings","version":"1.0","type":"link"}