Introduction to Java Programming, AP Version
Publisher: Pearson
Published: 2017
Language: eng
Format: hardcover
Number of pages: 532
ISBN-13: 9780134304748
Description: Written for AP students, Introduction to Java Programming: AP Edition covers all Java programming material and concepts required as part of the AP Computer Science A curriculum. Daniel Liang teaches concepts of problem-solving and object-oriented programming using a fundamentals-first approach and effectively communicates critical problem-solving techniques to beginning programmers. The text focuses on problem solving through Java programming and emphasizes both imperative and object-oriented problem solving and design. It is divided into two parts: in the first, students learn the fundamental concepts and techniques of selection statements, loops, methods, and arrays, before building on this foundation in the second part, as the text introduces concepts of object-oriented programming. Because knowledge is cumulative, the early chapters provide the conceptual basis for understanding programming, guiding students through simple examples and exercises; subsequent chapters progressively present programming and problem solving in more detail, culminating with the development of comprehensive applications. Throughout the text, understanding of Java concepts is supported by frequent practice and the use of relevant examples -- Amazon.com
Table of contents: label: Chapter 1
title: Introduction to Computers, Programs, and Java
pagenum: 1; label: 1.1
title: Introduction
pagenum: 2; label: 1.2
title: What Is a Computer?
pagenum: 2; label: 1.3
title: Programming Languages
pagenum: 6; label: 1.4
title: Operating Systems
pagenum: 8; label: 1.5
title: Java, the World Wide Web, and Beyond
pagenum: 10; label: 1.6
title: The Java Language Specification, API, JDK, JRE, and IDE
pagenum: 11; label: 1.7
title: A Simple Java Program
pagenum: 11; label: 1.8
title: Creating, Compiling, and Executing a Java Program
pagenum: 14; label: 1.9
title: Programming Style and Documentation
pagenum: 17; label: 1.10
title: Programming Errors
pagenum: 18; label: 1.11
title: Developing Java Programs Using NetBeans
pagenum: 21; label: 1.12
title: Developing Java Programs Using Eclipse
pagenum: 23; label: Chapter 2
title: Elementary Programming
pagenum: 31; label: 2.1
title: Introduction
pagenum: 32; label: 2.2
title: Writing a Simple Program
pagenum: 32; label: 2.3
title: Reading Input from the Console
pagenum: 35; label: 2.4
title: Identifiers
pagenum: 37; label: 2.5
title: Variables
pagenum: 38; label: 2.6
title: Assignment Statements and Assignment Expressions
pagenum: 39; label: 2.7
title: Named Constants
pagenum: 40; label: 2.8
title: Naming Conventions
pagenum: 41; label: 2.9
title: Numeric Data Types and Operations
pagenum: 41; label: 2.10
title: Numeric Literals
pagenum: 45; label: 2.11
title: Evaluating Expressions and Operator Precedence
pagenum: 46; label: 2.12
title: Case Study: Displaying the Current Time
pagenum: 48; label: 2.13
title: Augmented Assignment Operators
pagenum: 50; label: 2.14
title: Increment and Decrement Operators
pagenum: 51; label: 2.15
title: Numeric Type Conversions
pagenum: 52; label: 2.16
title: Software Development Process
pagenum: 54; label: 2.17
title: Case Study: Counting Monetary Units
pagenum: 58; label: 2.18
title: Common Errors and Pitfalls
pagenum: 60; label: Chapter 3
title: Selections
pagenum: 71; label: 3.1
title: Introduction
pagenum: 72; label: 3.2
title: Boolean Data Type
pagenum: 72; label: 3.3
title: if Statements
pagenum: 74; label: 3.4
title: Two-Way if-else Statements
pagenum: 76; label: 3.5
title: Nested if and Multi-Way if-else Statements
pagenum: 77; label: 3.6
title: Common Errors and Pitfalls
pagenum: 78; label: 3.7
title: Generating Random Numbers
pagenum: 81; label: 3.8
title: Case Study: Computing Body Mass Index
pagenum: 82; label: 3.9
title: Case Study: Computing Taxes
pagenum: 84; label: 3.10
title: Logical Operators
pagenum: 87; label: 3.11
title: Case Study: Determining Leap Year
pagenum: 89; label: 3.12
title: Case Study: Lottery
pagenum: 90; label: 3.13
title: switch Statements
pagenum: 92; label: 3.14
title: Conditional Operators
pagenum: 95; label: 3.15
title: Operator Precedence and Associativity
pagenum: 96; label: 3.16
title: Debugging
pagenum: 97; label: Chapter 4
title: Mathematical Functions, Characters, and Strings
pagenum: 111; label: 4.1
title: Introduction
pagenum: 112; label: 4.2
title: Common Mathematical Functions
pagenum: 112; label: 4.3
title: Character Data Type and Operations
pagenum: 116; label: 4.4
title: The String Type
pagenum: 120; label: 4.5
title: Case Studies
pagenum: 128; label: 4.6
title: Formatting Console Output
pagenum: 135; label: Chapter 5
title: Loops
pagenum: 147; label: 5.1
title: Introduction
pagenum: 148; label: 5.2
title: The while Loop
pagenum: 148; label: 5.3
title: The do-while Loop
pagenum: 157; label: 5.4
title: The for Loop
pagenum: 159; label: 5.5
title: Which Loop to Use?
pagenum: 161; label: 5.6
title: Nested Loops
pagenum: 162; label: 5.7
title: Minimizing Numeric Errors
pagenum: 163; label: 5.8
title: Case Studies
pagenum: 165; label: 5.9
title: Keywords break and continue
pagenum: 169; label: 5.10
title: Case Study: Checking Palindromes
pagenum: 172; label: 5.11
title: Case Study: Displaying Prime Numbers
pagenum: 173; label: Chapter 6
title: Methods
pagenum: 187; label: 6.1
title: Introduction
pagenum: 188; label: 6.2
title: Defining a Method
pagenum: 188; label: 6.3
title: Calling a Method
pagenum: 190; label: 6.4
title: void Method Example
pagenum: 193; label: 6.5
title: Passing Arguments by Value
pagenum: 195; label: 6.6
title: Modularizing Code
pagenum: 197; label: 6.7
title: Case Study: Converting Hexadecimals to Decimals
pagenum: 199; label: 6.8
title: Overloading Methods
pagenum: 201; label: 6.9
title: The Scope of Variables
pagenum: 203; label: 6.10
title: Case Study: Generating Random Characters
pagenum: 204; label: 6.11
title: Method Abstraction and Stepwise Refinement
pagenum: 206; label: Chapter 7
title: Single-Dimensional Arrays
pagenum: 227; label: 7.1
title: Introduction
pagenum: 228; label: 7.2
title: Array Basics
pagenum: 228; label: 7.3
title: Case Study: Analyzing Numbers
pagenum: 234; label: 7.4
title: Case Study: Deck of Cards
pagenum: 235; label: 7.5
title: Copying Arrays
pagenum: 237; label: 7.6
title: Passing Arrays to Methods
pagenum: 238; label: 7.7
title: Returning an Array from a Method
pagenum: 241; label: 7.8
title: Case Study: Counting the Occurrences of Each Letter
pagenum: 241; label: 7.9
title: Variable-Length Argument Lists
pagenum: 244; label: 7.10
title: Searching Arrays
pagenum: 245; label: 7.11
title: Sorting Arrays
pagenum: 249; label: 7.12
title: The Arrays Class
pagenum: 252; label: 7.13
title: Command-Line Arguments
pagenum: 253; label: Chapter 8
title: Multidimensional Arrays
pagenum: 267; label: 8.1
title: Introduction
pagenum: 268; label: 8.2
title: Two-Dimensional Array Basics
pagenum: 268; label: 8.3
title: Processing Two-Dimensional Arrays
pagenum: 271; label: 8.4
title: Passing Two-Dimensional Arrays to Methods
pagenum: 272; label: 8.5
title: Case Study: Grading a Multiple-Choice Test
pagenum: 273; label: 8.6
title: Case Study: Finding the Closest Pair
pagenum: 275; label: 8.7
title: Case Study: Sudoku
pagenum: 277; label: 8.8
title: Multidimensional Arrays
pagenum: 280; label: Chapter 9
title: Objects and Classes
pagenum: 299; label: 9.1
title: Introduction
pagenum: 300; label: 9.2
title: Defining Classes for Objects
pagenum: 300; label: 9.3
title: Example: Defining Classes and Creating Objects
pagenum: 302; label: 9.4
title: Constructing Objects Using Constructors
pagenum: 307; label: 9.5
title: Accessing Objects via Reference Variables
pagenum: 307; label: 9.6
title: Using Classes from the Java Library
pagenum: 311; label: 9.7
title: Static Variables, Constants, and Methods
pagenum: 314; label: 9.8
title: Visibility Modifiers
pagenum: 319; label: 9.9
title: Data Field Encapsulation
pagenum: 320; label: 9.10
title: Passing Objects to Methods
pagenum: 323; label: 9.11
title: Array of Objects
pagenum: 325; label: 9.12
title: Immutable Objects and Classes
pagenum: 327; label: 9.13
title: The Scope of Variables
pagenum: 328; label: 9.14
title: The this Reference
pagenum: 329; label: Chapter 10
title: Object-Oriented Thinking
pagenum: 337; label: 10.1
title: Introduction
pagenum: 338; label: 10.2
title: Class Abstraction and Encapsulation
pagenum: 338; label: 10.3
title: Thinking in Objects
pagenum: 342; label: 10.4
title: Class Relationships
pagenum: 345; label: 10.5
title: Case Study: Designing the Course Class
pagenum: 348; label: 10.6
title: Case Study: Designing a Class for Stacks
pagenum: 350; label: 10.7
title: Processing Primitive Data Type Values as Objects
pagenum: 352; label: 10.8
title: Automatic Conversion between Primitive Types and Wrapper Class Types
pagenum: 355; label: 10.9
title: The BigInteger and BigDecimal Classes
pagenum: 355; label: 10.10
title: The String Class
pagenum: 356; label: Chapter 11
title: Inheritance and Polymorphism
pagenum: 371; label: 11.1
title: Introduction
pagenum: 372; label: 11.2
title: Superclasses and Subclasses
pagenum: 372; label: 11.3
title: Using the super Keyword
pagenum: 378; label: 11.4
title: Overriding Methods
pagenum: 381; label: 11.5
title: Overriding vs. Overloading
pagenum: 381; label: 11.6
title: The Object Class and Its toString() Method
pagenum: 382; label: 11.7
title: Polymorphism
pagenum: 383; label: 11.8
title: Dynamic Binding
pagenum: 384; label: 11.9
title: Casting Objects and the instanceof Operator
pagenum: 386; label: 11.10
title: The Object's equals Method
pagenum: 388; label: 11.11
title: The ArrayList Class
pagenum: 389; label: 11.12
title: Useful Methods for Lists
pagenum: 394; label: 11.13
title: Case Study: A Custom Stack Class
pagenum: 395; label: 11.14
title: The protected Data and Methods
pagenum: 396; label: 11.15
title: Preventing Extending and Overriding
pagenum: 398; label: Chapter 12
title: Exception Handling and Text I/O
pagenum: 405; label: 12.1
title: Introduction
pagenum: 406; label: 12.2
title: Exception-Handling Overview
pagenum: 406; label: 12.3
title: Exception Types
pagenum: 410; label: 12.4
title: More on Exception Handling
pagenum: 412; label: 12.5
title: The finally Clause
pagenum: 419; label: 12.6
title: When to Use Exceptions
pagenum: 419; label: 12.7
title: Rethrowing Exceptions
pagenum: 420; label: 12.8
title: Chained Exceptions
pagenum: 420; label: 12.9
title: Defining Custom Exception Classes
pagenum: 421; label: 12.10
title: The File Class
pagenum: 424; label: 12.11
title: File Input and Output
pagenum: 426; label: 12.12
title: Reading Data from the Web
pagenum: 431; label: 12.13
title: Case Study: Web Crawler
pagenum: 432; label: Chapter 13
title: Abstract Classes and Interfaces
pagenum: 443; label: 13.1
title: Introduction
pagenum: 444; label: 13.2
title: Abstract Classes
pagenum: 444; label: 13.3
title: Case Study: The Abstract Number Class
pagenum: 448; label: 13.4
title: Case Study: Calendar and GregorianCalendar
pagenum: 450; label: 13.5
title: Interfaces
pagenum: 452; label: 13.6
title: The Comparable Interface
pagenum: 456; label: 13.7
title: Interfaces vs. Abstract Classes
pagenum: 459; label: 13.8
title: Example: The List and Collection Interfaces
pagenum: 462; label: 13.9
title: Case Study: The Rational Class
pagenum: 463; label: 13.10
title: Class Design Guidelines
pagenum: 468; label: Chapter 14
title: Recursion
pagenum: 477; label: 14.1
title: Introduction
pagenum: 478; label: 14.2
title: Case Study: Computing Factorials
pagenum: 478; label: 14.3
title: Case Study: Computing Fibonacci Numbers
pagenum: 481; label: 14.4
title: Problem Solving Using Recursion
pagenum: 483; label: 14.5
title: Recursive Helper Methods
pagenum: 485; label: 14.6
title: Case Study: Finding the Directory Size
pagenum: 487; label: 14.7
title: Case Study: Tower of Hanoi
pagenum: 489; label: 14.8
title: Merge Sort
pagenum: 492; label: 14.9
title: Recursion vs. Iteration
pagenum: 495; label: 14.10
title: Tail Recursion
pagenum: 496; title: Appendixes; label: Appendix A
title: Java Keywords
pagenum: 503; label: Appendix B
title: The ASCII Character Set
pagenum: 506; label: Appendix C
title: Operator Precedence Chart
pagenum: 508; label: Appendix D
title: Java Modifiers
pagenum: 510; label: Appendix E
title: Special Floating-Point Values
pagenum: 512; label: Appendix F
title: Number Systems
pagenum: 513; title: Index
pagenum: 517