|
This book is an introductory text in computer science, focusing on the principles of
programming and software engineering. Here are its key features:
• Teach objects gradually.
In Chapter 2, students learn how to use objects and classes from the standard
library. Chapter 3 shows the mechanics of implementing classes from a given
specification. Students then use simple objects as they master branches, loops, and
arrays. Object-oriented design starts in Chapter 8. This gradual approach allows
students to use objects throughout their study of the core algorithmic topics,
without teaching bad habits that must be un-learned later.
• Reinforce sound engineering practices.
A focus on test-driven development encourages students to test their programs
systematically. A multitude of useful tips on software quality and common errors
encourage the development of good programming habits.
• Help students with guidance and worked examples.
Beginning programmers often ask “How do I start? Now what do I do?” Of
course, an activity as complex as programming cannot be reduced to cookbookstyle
instructions. However, step-by-step guidance is immensely helpful for
building confidence and providing an outline for the task at hand. The book contains
a large number of “How To” guides for common tasks, with pointers to
additional worked examples on the Web.
• Focus on the essentials while being technically accurate.
An encyclopedic coverage is not helpful for a beginning programmer, but neither
is the opposite—reducing the material to a list of simplistic bullet points that give
an illusion of knowledge. In this book, the essentials of each subject are presented
in digestible chunks, with separate notes that go deeper into good practices or language
features when the reader is ready for the additional information.
• Use standard Java.
The book teaches the standard Java language—not a specialized “training
wheels” environment. The Java language, library, and tools are presented at a
depth that is sufficient to solve real-world programming problems.
• Provide an optional graphics track.
Graphical shapes are splendid examples of objects. Many students enjoy writing
programs that create drawings or use graphical user interfaces. If desired, these
topics can be integrated into the course by using the materials at the end of
Chapters 2, 3, 9, and 10. |