| 3.1 ParametersThe Mechanics of Parameters | p.165#1, p.166#5 |
| Limitations of Parameters (byVal byRef) | |
| Multiple Parameters | |
| Parameters Versus Constants | |
| Overloading of Methods (signatures) | |
| 3.2 Methods that Return Values | p. 167#7 |
| The Math Class p.132-3 table3.1-2 | |
| Defining Methods that Return Values | |
| 3.3 Using Objects | p. 169#14, #16 |
| String Objects | |
| Point Objects | |
| Reference Semantics | |
| Multiple Objects | |
| Objects as Parameters to Methods | |
| 3.4 Interactive Programs (console input) | p. 170#19 |
| Scanner Objects (p.153 table 3.5) | |
| A Sample Interactive Program | |
| 3.5 Case Study: Projectile Trajectory | p172#1(code)with required: prompt, segment, base,loop in main |
| An Unstructured Solution | |
| A Structured Solution | |
| Supplement 3G: Graphics (optional) | |
| 3G.1 Introduction to Graphics | p.197#2, p. 198#3 |
| DrawingPanel | |
| Lines and Shapes | |
| Colors | |
| Text and Fonts | |
| 3G.2 Procedural Decomposition with Graphics | p.198#4, p.199#1,#2 MickeyBox, p.201#5 |
| A Larger Example: DrawDiamonds | |
| Summary of Graphics Methods | |
| 3G.3 Case Study: Pyramids | p. 205#4 Projectile |
| An Unstructured Solution | |
| Generalizing the Drawing of Pyramids | |
| A Complete Structured Solution | |
| Chapter 4: Conditional Execution | |
| 4.1 Loop Techniques | p.260-261#1,3 |
| Cumulative Sum | |
| Fencepost Loops (aka "loop and a half") | |
| 4.2 if/else Statements | p.261-262#4,5,6 ,7 |
| Relational Operators | |
| Cumulative Sum with if | |
| Fencepost with if | |
| Nested if/else | |
| 4.3 Subtleties of Conditional Execution | p.262-4#10,11,12,13,14,15 |
| Object Equality | |
| Roundoff Errors | p. 263#11 redesign main to show structure, trade designs with another team, code their design |
| Factoring if/else Statements | |
| Min/Max Loops | p.233-235 redesign main to show structure, trade, code their design |
| 4.4 Text Processing | p.265#19,20,21,22 |
| The char Type | |
| System.out.printf | |
| 4.5 Methods with Conditional Execution | p.266#25,26 |
| Preconditions and Postconditions | |
| Throwing Exceptions | p.266#27 |
| Revisiting Return Values | code a two parameter integer min function; p.248: code a two parameter integer indexOf function. |
| 4.6 Case Study: Body Mass Index (BMI) | |
| One-person Unstructured Solution | p. 254 redesign BMI1 so main calls I-P-O methods; write signatures & javadoc comments |
| Two-person Unstructured Solution | |
| Two-person Structured Solution | p. 258 redesign BMI2 so getBMI calls I-P-O methods; write signatures & javadoc comments |
| 19 | |
| Chapter 5: Program Logic and Indefinite Loops | |
| 5.1 The while Loop | p.318-320#1,2,7,8 |
| A Loop to Find the Smallest Divisor | |
| Sentinel Loops | |
| Random Numbers | |
| 5.2 The boolean Type | p.321-322#11,12,14 |
| Logical Operators | |
| Short-Circuited Evaluation | |
| boolean Variables and Flags | |
| Boolean Zen | p.321-322#15,16 |
| 5.3 User Errors | |
| Scanner Lookahead | p. 293 trace with debugger, redesign to loop until "the answer is 42." is entered |
| Handling User Errors | p.322-323#18,20 |
| 5.4 Indefinite Loop Variations | p.323-324#22,24 |
| The do/while Loop | |
| Break and "forever" Loops | Do not use for this class. |
| 5.5 Assertions and Program Logic | p.325#26, |
| Reasoning About Assertions | |
| A Detailed Assertions Example | |
| The Java assert Statement | p. 304 code with Java assertions, enable assertions and test |
| 5.6 Case Study: NumberGuess | |
| Initial Version without Hinting | |
| Randomized Version with Hinting | p. 313-314 redesign to use I-P-O methods; write signatures & javadoc comments, trade, code their design |
| Final Robust Version | |
| Chapter 6: File Processing | |
| 6.1 File Reading Basics | p.369#2 |
| Data, Data Everywhere | |
| File Basics | |
| Reading a File with a Scanner | |
| 6.2 Details of Token-Based Processing | p.369#4 |
| Structure of Files and Consuming Input | |
| Scanner Parameters | |
| Paths and Directories | |
| A More Complex Input File | |
| 6.3 Line-Based Processing | p.370#7,8,11 |
| String Scanners and Line/Token Combinations | |
| 6.4 Advanced File Processing | p.370-371#12,13 |
| Output Files with PrintStream | |
| Try/Catch Statements | |
| 6.5 Case Study: Weighted GPA | p.367-368 redesign to use I-P-O methods; write signatures & javadoc comments, trade, code their design |
| Chapter 7: Arrays | |
| 7.1 Array Basics | p. 430#1,3,4,5,7,8 |
| Constructing and Accessing an Array | |
| A Useful Application of Arrays | |
| Random Access | |
| Arrays and Methods | |
| The For-Each Loop | |
| Limitations of Arrays | |
| 7.2 Advanced Arrays | p.431#10,12,14,15 |
| Shifting Values in an Array | |
| Initializing Arrays | |
| Arrays in the Java Class Libraries | |
| Arrays of Objects | |
| Command Line Arguments | |
| 7.3 Multidimensional Arrays (optional) | p.431-432#17,18 |
| Rectangular Two-Dimensional Arrays | p. 416 redesign print to show column and row totals: use I-P-O methods; write signatures & javadoc comments, trade, code their design |
| Jagged Arrays | p. 419-420 redesign use I-P-O methods; write signatures & javadoc comments, trade, code their design |
| 7.4 Case Study: Hours Worked | |
| The transferFrom Method | |
| The sum Method | |
| The addTo Method | |
| The print Method | |
| The Complete Program | p. 428-429 redesign use I-P-O methods; write signatures & javadoc comments, trade, code their design |
| 21 | |
| Chapter 8: Defining Classes | |
| 8.1 Object-Oriented Programming Concepts | |
| Classes and Objects | |
| 8.2 Object State: Fields | p. 491#6 |
| 8.3 Object Behavior: Methods | p. 491#8,9 |
| A Detailed Example | |
| Mutators and Accessors | |
| 8.4 Object Initialization: Constructors | p.492#10,11 |
| 8.5 Encapsulation | p.492#13,14,15,16 |
| Private Data Fields | |
| Class Invariants | |
| 8.6 More Instance Methods | p.492#18,19,20 |
| The toString Method | |
| The equals Method | |
| 8.7 The this Keyword | p.492#22,23,24 |
| Multiple Constructors | |
| 8.8 More Classes | p.493#25,26, |
| 8.9 Case Study: Designing a Stock Class | p.493#29,30,31 |
| Stock Behavior | |
| Stock Fields | |
| Stock Constructor | |
| Stock Method Implementation | |
| The Complete Stock Class | |
| Chapter 9: Inheritance and Interfaces | |
| 9.1 Inheritance Concepts | p.550#1,2,3,4 |
| Non-programming Hierarchies | |
| 9.2 Polymorpism | p550#5,6 |
| Overriding Methods | |
| Polymorphism | |
| 9.3 Interacting with the Superclass | p.553#10,11,12,14 |
| Inherited Fields | |
| Calling a Superclass's Constructor | |
| Calling Overridden Methods | |
| A Larger Example: Point3D | |
| 9.4 Inheritance and design | p.554#15,16 |
| 9.5 Interfaces | p.554#19,20,21 |
| An Interface for Shape Classes | |
| Implementing the Shape Interface | |
| Benefits of Interfaces | |
| Interfaces in the Java Class Libraries | |
| 9.6 Case Study: Designing a Hierarchy of Financial Classes | p.554#24 |
| Class Design | |
| Initial Redundant Implementation | |
| Abstract Classes | |
| 14 | |