Preface Organization of the Text
The book is still organized into three main parts. Part I (Chapters 0-4) introduces the basic concepts of object orientation and the basic features of the Java language. Part II (Chapters 5-9) focuses on remaining language elements, including data types, control structures, string and array processing, and inheritance and polymorphism. Part III (Chapters 10-16) which will be added later to Runestone 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 functionality in terms of control structures and data types, the priority is placed 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 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 10 through 16) covers a variety of advanced topics. 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 language details, programming examples are carefully developed with an emphasis on the principles of object-oriented design.
The table below provides an example syllabus from a one-semester CS1 course, where the instructor can pick and choose from among the advanced topics during the last weeks of the course, depending on the interests and skill levels of the students.
Weeks | Topics | Chapters |
1 | Object Orientation, UML, Program Design and Development | Chapter 0, 1 |
2 | Objects and Class Definitions | Chapter 2 |
3 | Methods and Parameters,Selection structure (if-else) | Chapter 3 |
4 | User Interfaces and I/O | Chapter 4 |
5 | Data Types and Operators | Chapter 5 |
6-7 | Control Structures (Loops) | Chapter 6 |
8 | String Processing (loops) | Chapter 7 |
9 | Inheritance and Polymorphism | Chapter 8 |
10 | Array Processing | Chapter 9 |
11 | Advanced Topic (Recursion) | Chapter 12 |
12 | Advanced Topic (Exceptions) | Chapter 10 |
13 | Advanced Topic (GUIs) | Chapter 11 |
14 | Advanced Topic (Threads) | Chapter 15 |