The book is still organized into three main parts. Part I (Chapters 04 introduces the basic concepts of object orientation and the basic features of the Java language. Part II (Chapters 59) focuses on the remaining language elements, including data types, control structures, string and array processing, and inheritance and polymorphism. Part III (Chapters 1016) 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 04) 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 one another 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 functionality in terms of control structures and data types, the priority is placed on how objects are constructed and how they interact with one another through method calls and parameter passing. The second part (Chapters 59) focuses on the remaining language 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 1016) 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, that are used as a running example throughout the text. Our pedagogical approach focuses on design. Rather than starting off with language details, programming examples are carefully developed with an emphasis on the principles of object-oriented design. Table 2 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 |