1. Introduction to Computers, Problem Solving, and Programming. Overview of Computers.
Computer Components.
Computer Software.
Processing a High-Level Language Program.
The Software Development Method.
Professional Ethics for Computer Programming.
2. Using Primitive Data Types and Using Classes. Primitive Data Types.
Processing Numeric Data.
Introduction to Methods.
The String Class.
Input/Output with Class JOptionPane and Method println().
Problem Solving in Action.
Anatomy of a Java Program.
Numerical Computations with Class Math.
Common Errors and Debugging.
3. Object-Oriented Design and Writing Worker Classes. A First Worker Class: Class FoodItem.
A Worker Class that Manipulates String Objects.
A Worker Class that Processes Integers.
Review of Methods.
Simplifying a Solution Using Multiple Classes.
Formatting Output and Class KeyIn (Optional).
Applets, AWT, and the Graphics Class (Optional).
Common Programming Errors.
4. Control Structures: Decisions and Loops. Control Structures.
boolean Expressions.
The if Statement.
Decision Steps in Algorithms.
Multiple-Alternative Decisions: Nested if and switch.
Counting Loops, while and for statements.
State-Controlled Loops.
Putting It All Together.
Debugging and Testing Programs with Decisions and Loops.
Common Programming Errors.
5. Arrays and Vectors. Array Declarations.
Processing Arrays and Array Elements.
Operations on Whole Arrays.
Searching and Sorting an Array.
Arrays of Objects.
Multidimensional Arrays-Arrays of Arrays.
Vectors.
Wrapper Classes for Primitive Type Data.
Arrays and ArrayList Collection Classes (Optional).
Common Programming Errors.
6. Class Hierarchies, Inheritance, and Interfaces. Class Hierarchies and Inheritance.
Operations in a Class Hierarchy.
Polymorphism.
Interfaces.
Abstract Classes.
Drawing Figures Using an Abstract Class and Interface.
Packages and Visibility (Optional).
Testing a Program System.
Common Programming Errors.
7. Graphical User Interfaces (GUIs). AWT, Swing, and Browser-Applet Interaction.
Designing a First GUI.
The Java Event Model.
Using a GUI in an Application.
Components for Making Choices.
Designing a GUI for an Existing Class.
Listener Classes as Inner Classes.
Layout Managers.
Common Programming Errors.
8. Exceptions, Streams, and Files. Exceptions.
Streams and Text Files.
Using Text Files.
A GUI for Processing the DVD Collection.
Binary Files.
Common Programming Errors.
9. Recursion. Recursive Methods.
Recursive Mathematical Methods.
Use of the Stack in Recursion.
Recursive Methods with Arrays, Vectors, and Strings.
Binary Search.
Solving Towers of Hanoi with Recursion.
A Recursive Program with a GUI.
Common Programming Errors.
10. Linked Data Structures. Linked Lists.
Stacks.
Queues.
Binary Trees.
A Binary Search Tree Class.
LinkedList Collection Class and List Iterators (Optional).
Common Programming Errors.
Appendix A. Java Resources, Package psJava, Jbuilder, and HTML Resources. Appendix B. Java Language Summary. Appendix C. Packages java.lang and java.util. Appendix D. Package java.io. Appendix E. Package java.awt. Appendix F. Package javax.swing. Answers to Odd Self-Check Exercises. Index.