2. Preface to the Third Edition

2.4. Organization of the Text

The book is still organized into three main parts. Part I (Chapters 0-4) in- troduces the basic concepts of object orientation and the basic features of the Java language. Part II (Chapters 5-9) focuses on remaining language el- ements, including data types, control structures, string and array process- ing, and inheritance and polymorphism. Part III (Chapters 10-16) covers advanced topics, including exceptions, file I/O, recursion, GUIs, threads and concurrent programming, sockets and networking, data structures, servlets, and Java Server Pages.

The first two parts make up the topics that are typically covered in an introductory CS1 course. The chapters in Part III are self-contained and can be selectively added to the end of a CS1 course if time permits.

The first part (Chapters 0 through 4) introduces the basic concepts of object orientation, including objects, classes, methods, parameter passing, information hiding, and a little taste of inheritance, and polymorphism. The primary focus in these chapters is on introducing the basic idea that an object-oriented program is a collection of objects that communicate and cooperate with each other to solve problems. Java language elements are introduced as needed to reinforce this idea. Students are given the basic building blocks for constructing Java programs from scratch.

Although the programs in the first few chapters have limited function- ality in terms of control structures and data types, the priority is placed

 

Table 2: A one-semester course.

 

Weeks

Topics

Chapters

1

Object Orientation, UML

Chapter 0

 

Program Design and Development

Chapter 1

2-3

Objects and Class Definitions

Chapter 2

 

Methods and Parameters

Chapter 3

 

Selection structure (if-else)

 

4

User Interfaces and I/O

Chapter 4

5

Data Types and Operators

Chapter 5

6–7

Control Structures (Loops)

Chapter 6

 

Structured Programming

 

8

String Processing (loops)

Chapter 7

9

Inheritance and Polymorphism

Chapter 8

10

Array Processing

Chapter 9

11

Recursion

Chapter 12

12

Advanced Topic (Exceptions)

Chapter 10

13

Advanced Topic (GUIs)

Chapter 11

 

Advanced Topic (Threads)

Chapter 15

 

on how objects are constructed and how they interact with each other through method calls and parameter passing.

The second part (Chapters 5 through 9) focuses on the remaining lan- guage elements, including data types and operators (Chapter 5), control structures (Chapter 6), strings (Chapter 7), and arrays (Chapter 9). It also provides thorough coverage of inheritance and polymorphism, the primary mechanisms of object orientation: (Chapter 8).

Part three (Chapters 10 through 16) covers a variety of advanced topics (Table 1). Topics from these chapters can be used selectively depending on instructor and student interest.

Throughout the book, key concepts are introduced through simple, easy-to-grasp examples. Many of the concepts are used to create a set of games, which are used as a running example throughout the text. Our pedagogical approach focuses on design. Rather than starting of with lan- guage details, programming examples are carefully developed with an emphasis on the principles of object-oriented design.

Table2 provides an example syllabus from our one-semester CS1 course. Our semester is 13 weeks (plus one reading week during which classes do not meet). We pick and choose from among the advanced topics during the last two weeks of the course, depending on the interests and skill levels of the students.

 

Ralph Morelli June 25, 2017