Register your product to gain access to bonus material or receive a coupon.
The authors have produced a variety of best-sellers that really show students how to solve problems. Ex.___
A “use it, then build it” approach. Students receive extensive exposure to concepts underlying basic constructs, reducing the learning curve when the time comes to actually build their own. Ex.__
Exposes students to the state of the art features of Java 2, including the Swing components. Ex. Section 2.5-GUI greeter, Section 6.5-Dutch Flag GUI and applet, and Section 9.5-pie chart. Ex.___
Object-oriented programming is quickly becoming a standard industry practice, and this book exposes the introductory student to object-oriented programming early and consistently. Ex. Section 3.1-Einstein's Equation, Section 4.1-Old MacDonald had a Farm, and Section 9.1-test scores analysis. Ex.___
Good documentation techniques and habits are modeled in examples to help students learn the importance of writing maintainable programs. Ex.___
Teaches Graphical User Interface (GUI) design, presenting both applications and applets, an essential part of the Java 2 language. Ex. Section 1.3-greeting applet, Section 6.5-raise the flag, and Section 13.4-phases of the moon animation. Ex.___
Provide students with good program design and style guidelines as well as warn of potential pitfalls. Ex.___
Provide a handy reference for Java classes. Ex.___
These sections introduce students to discipline of Computer Science-e.g., ethics, history, AI, and architecture. Ex. Ch. 1, Ethics and Computing, and Ch. 6, Artificial Intelligence. Ex.___
Students can review and apply the concepts they learn in each chapter. Instructors have a large variety of programming problems from which to choose. Ex.___
Help students identify important points of a chapter. Ex.___
Helps students spot important code in a program, important parts of diagrams, general forms, important principles, warnings, etc. Ex.___
In their introductory book, these best-selling authors provide the beginning computer science student or professional with a thorough introduction to computing with Java and Object-Oriented Programming. Java: An Introduction to Computing teaches traditional and graphical/internet programming. This text provides a solid introduction to computer science as a discipline with an object-oriented approach to Java. The following features and benefits make this text an invaluable tool for learning Java.
FEATURES/BENEFITS:
(NOTE: Each chapter begins with Chapter Objectives and ends with Chapter Summary and Programming Pointers and/or Programming Problems.)
Beginning Snapshots.
1. Problem Solving and Software Engineering.
A Brief History of OOP and Java. Introduction to Java Application Programs. Introduction to Java Applet Programs. Problem Solving through Software Engineering.
Example: A Payroll Program. Types, Variables, and Constants. Some Basic Program Features. Java Documentation—API. Introduction to GUIs: A GUI Greeter.
Introductory Example: Einstein's Equation. Primitive Types and Reference Types. Numeric Types and Expressions. Assignment Expressions. Java's boolean Type and Expressions. Java's Character-Related Types and Expressions. Graphical/Internet Java: Einstein's Equation.
Introductory Example: Old MacDonald Had a Farm… Getting Started with Methods. Example: The Volume of a Sphere. Methods: A Summary. Graphical/Internet Java: Old MacDonald…Applet.
Example: An Improved Payroll Program. Methods That Use Selection. Methods That Use Repetition. Graphical/Internet Java: Old MacDonald…Applet Revisited.
Introductory Example: Modeling Temperatures. Designing a Class. Implementing Class Attributes. Implementing Class Operations. Graphical/Internet Java: Raise the Flag.
Introductory Example: The Mascot Problem. Selection: The if Statement Revisited. Selection: The Switch Statement. Selection: Conditional Expressions. Graphical/Internet Java: Event-Driven Programming.
Introductory Example: The Punishment of Gauss. Repetition: The For Loop Revisited. Repetition: The While Loop. Repetition: The Do Loop. Choosing the Right Loop. Introduction to Recursion. Graphical/Internet Java: A Guessing Game.
Introductory Example: Ms. White's Test Score Analyzer. Arrays. Sorting. Searching. Processing Command-Line Arguments. Multidimensional Arrays. Graphical/Internet Java: A Pie-Chart Class.
Introductory Example: Weather Data Analysis. Java's I/O System: Readers, Writers, and Streams. Exceptions. More about I/O Streams. Example: Scanning for a Virus. Example: Retrieving Student Information. Graphical/Internet Java: Student Data Retrieval GUI.
Introductory Example: A Trip to the Aviary. Inheritance and Polymorphism. Example: Geological Classification. Example: An O-O Payroll Program. Graphical/Internet Java: A Function Plotter.
Introductory Example: Counting Internet Addresses. The ArrayList and LinkedList Classes. Example: A Stack Application and Class. Example: Building a Queue Class. An Introduction to Trees. Graphical/Internet Java: A PolygonSketcher Class.
Introductory Example Sorting a List. Topic: Multithreading. Topic: Client-Server Networking. Graphical/Internet Java: Moon Animation. The End?
A: Unicode Character Set. B: Java Keywords. C: Java Operators. D: Java Packages and Classes. E: Number Systems. F: Answers to Quick Quizzes.
To properly introduce students to computing, we believe that the first computing course should accomplish two goals:
The aim of this textbook is to accomplish both of these goals, the latter using Java.
The first goal grows out of an important theme of curriculum recommendations of the Association of Computing Machinery (ACM) that an introductory course in computing should introduce the various knowledge areas of the discipline:
To accomplish the first goal, we include the Part of the Picture sections, several of which are written by experts in various areas of computing. These sections introduce these areas, trying to capture the spirit of these curriculum guidelines in a natural, unobtrusive way. They have been carefully selected to provide an overview of the discipline of computer science and to provide a foundation for further study in theoretical and/or applied computer science. Titles include:
What is Computer Science?
The History of Computing
Introduction to Computer Systems
Ethics and Issues (by Anne Marchant)
Data Representation
Computability Theory
Boolean Logic and Digital Design
Computer Architecture (by William Stallings)
Introduction to Algorithm Analysis
Numerical Methods
Database Systems (by Keith VanderLinden)
Artificial Intelligence (by Keith VanderLinden)
The TCP/IP Communications Architecture (by William Stallings)
Data Structures
A solid base is thus established for later courses in theoretical and/or applied computer science.
To help with accomplishing the second goal, a sequel to this book is planned. This first text will introduce the essential ideas of Java programming and the breadth of the discipline of computing, making it ideal for a one-semester course in computer science. The second text will be available in two flavors:
Both will introduce elementary data structures and their implementations as well as other topics that are traditionally taught in the second course including sorting, searching, and algorithm analysis. Together, this text followed by one of those listed above will provide a solid introduction to the discipline of computer science.
A popular feature of other texts we have written is to use a problem at the beginning of each chapter to introduce the subject of that chapter (e.g., methods, control, structures, inheritance, and so on). Following this example, the concepts and theory behind those ideas are explored, and other examples given to reinforce the ideas. In this approach, students see the practice of a new topic before the abstract definitions and theory that underlie that topic, providing them with a framework in which those abstract aspects can be organized and understood.
We also continue the "use it, then build it" approach with respect to the more difficult topics for beginning programmerse.g., methods, classes, and graphical programminga kind of spiral approach that revisits topics in increasingly greater detail. For example, to show students how methods are used, predefined methods are used in Chapters 2 and 3 as components of expressions. Once students have experience using (predefined) methods, Chapters 4 and 5 teach them to build simple methods, and subsequent chapters show how to build increasingly sophisticated methods. Similarly, students are introduced to classes in Chapter 1, with more practice following in subsequent chapters. Once students are firmly grounded in building and using classes, they explore inheritance and polymorphism in detail in Chapter 11. Through this "use it, then build it" approach, students receive extensive exposure to the concepts underlying each of these constructs, reducing the learning curve when the time comes to actually build those constructs.
We have added chapter objectives and expanded the end-of-chapter features to include a chapter summary that contains key terms and concepts along with documentation for some of the key Java classes used in the chapter. These augment the popular programming pointers used in others of our texts to provide students with good program design and style guidelines as well as warn of potential pitfalls.
This text also exposes the introductory student to object-oriented programming early and consistently. We have included many examples of developing a program to solve a problem, all of which use a design strategy that we have termed object-centered design (OCD). This gives the students a problem-solving methodology to follow. The example programs all model good documentation techniques and habits to help students learn the importance of writing maintainable programs.
New to this text are the Graphical/Internet Java sections designed to introduce students to graphics programming. The approach here also is a spiral one. Chapter 1 contains a simple greeting applet, Chapter 2 gives a simple GUI greeting application. In each chapter thereafter, the applet and/or GUI application being built is increasingly more sophisticatedfor example, event-driven programming is introduced in Chapter 7 and using threads in animations in Chapter 13. The examples all make use of Java's Swing components. There is one such section per chapter, but if desired, they can be passed over in a first look at "text-based" Java programming and then covered later.
We have used the specification of Java 2 published by Sun as our primary reference in preparing this text. This language specification along with the API documentation can be found at Sun's website (java.sun.com/docs).
The authors welcome feedback, both positive and negative. Comments on features of the text that work especially well as well as those that could be improved will aid us in the preparation of subsequent editions. We would also appreciate being notified of errors. Such comments can be directed to any of the authors at adams@calvin.edu, nyhl@calvin.edu, or jnyhoff@calvin.edu via the Internet, or at the following address:
Department of Computer Science
Calvin College
3201 Burton SE
Grand Rapids, MI 49546
USA
We express our sincere appreciation to all who helped in any way in the preparation of this text, especially Alan Apt, Scott Disanno, Toni Holm, Nick Murray, Heather Scott, Ana Terry, and Jake Warde. We also appreciate the valuable comments and suggestions made by the following reviewers: Donald Cooley (Utah State Univ.), Mike Davarpanah (Cal Poly Pomona), Brian Durney (Brigham Young Univ., Hawaii), Henry Ettinger (Rochester Institute of Technology), Pedro Larios (Metrowerks), Ralph Sanford (Bristol Community College), and Pam Vermeer (Washington and Lee Univ.) We also thank Ann Marchant, William Stallings, and Keith VanderLinden for contributing Part of the Picture sections. And, of course, we must also thank our families-Barb, Roy, and Ian; Shar, Jeff, Jim, Greg, Julie, Joshua, Derek, Tom, Joni, and Abigail; Dawn, Rebecca, Megan, and Sara- for encouraging and supporting us, and for being understanding and patient when we slighted their needs and wants. Above all, we give thanks to God for giving us the opportunity, ability, and stamina to prepare this text.
JOEL ADAMS
LARRY NYHOFF
JEFFREY NYHOFF