Week Date Class Number Subject Readings Assignment
1 MON 7/2 1 Course overview
Introduction: computers, programming, Java
Lab 0: Set up lab accounts
1.1
MON 7/2 LAB 1 Lab 1: Intro to DrJava,
Understanding programming errors
TUE 7/3 2 Introduction to Java programming
Example: HelloWorld.java
Procedural decomposition
Example: ProceduralDecomposition.java
Simple input and output
Example: InputFromKeyboard.java
Example: Calculator.java
1.2, 1.3, 1.4 HW1: Standard Output (due 7/5)
THU 7/5 3 Binary Numbers
Primitive data types and variables
Example: DataTypesAndVariables.java
Example: Arithmetic.java
Example: FunWithCasting.java
Repetition with definite loop
Example: DefiniteLoop.java
The accumulator design pattern
Example: AccumulatorPattern.java
2.1, 2.2, 2.3, 2.4
THU 7/5 LAB 2 Lab 2: Variables and definite loop HW2: Computing with Numbers (due 7/9)
Week Date Class Number Subject Readings Assignment
2 MON 7/9 4 QUIZ 1
Higher math
Example: NumericFormatting.java
Example: HigherMath.java
Overview of vector graphics
Using the Java Graphics API
Starter Code: Drawing.java
3G.1, 3G.2
MON 7/9 LAB 3 Lab 3: Using classes from the API (Graphics) HW 3: Using the Graphics API (due 7/11)
TUE 7/10 5 Review Graphics; creating objects
Example: Drawing.java
Notes about drawArc method.
Creating objects from the API
Example: InputFromKeyboard.java
Example: ReadingFromFile.java
Writing methods with return values
Example: MethodsWithReturnValues.java
3.1, 3.2, 3.3, 3.4
THU 7/11 6 Conditional execution
Example: LogicalOperators.java
Example: Grading.java
Example: Minof3Ints.java
Selection: some special cases
Example: FloatingDecisions.java
Example: GuessingGame.java
4.1, 4.2, 4.3
THU 7/11 LAB 4 Lab 4: Conditional execution HW4: Selection (due 7/16)
Week Date Class Number Subject Readings Assignment
3 MON 7/16 7 QUIZ 2
Repetition with indefinite loop
Example: Average01.java [definite loop version]
Example: Average02.java [indefinite loop; counter pattern]
Example: Average03.java [indefinite loop; interactive pattern]
Example: Average04.java [definite loop; sentinel pattern]
5.1, 5.2, 5.3, 5.4
MON 7/16 LAB 5 Lab 5: Repetition HW5: Repetition (due 7/19)
TUE 7/17 8 Indefinite Loop (continued)
Validating User Input
Example: ValidatingUserInput.java
Text processing
Example: YesOrNo.java
Example: BusyLoop.java
Example: StringManipulation.java
ch 6
THU 7/19 9 Arrays
Example: IntroArrays.java
Example: ArrayOperations.java
Example: ArrayDeclarations.java
Reading from text files
Example: ReadingFromFile.java
7.1, 7.2, 7.3, 7.4
THU 7/19 LAB 6 Lab 6: Arrays HW 6: Arrays (due 7/23)
Week Date Class Number Subject Readings Assignment
4 MON 7/23 10 QUIZ 3
Arrays (cont.)
Example: CopyingArrays.java
Example: MoreArrays.java
Recursion (overview and discussion)
Example: RecursionExamples.java
12.1, 12.2
MON 7/23 LAB 7 Lab 7: Recursion HW 7: Recursion (due 7/26)
TUE 7/24 11 Recursion (continued)
Example: RecursionExamples.java
Towers of Hannoi
Example: TowersOfHannoi.java
Towers of Hannoi
THU 7/26 12 Writing used-defined "blueprint" classes
Example: Die.java
Example: TestingDice.java
chapter 8
THU 7/26 LAB 8 Lab 8: Writing used defined classes HW8: Used-defined class (due 7/30)
Week Date Class Number Subject Readings Assignment
5 MON 7/30 13 QUIZ 4
Multi-dimensional arrays
Examples:MultiDimArrays.java
9.1, 9.2, 9.3 HW9: Multi-dimensional arrays
(due 8/2)
MON 7/30 LAB 9 Lab 9:  Multi-dimensional arrays
TUE 7/31 14 Computer games
Discuss final game project
Game Project (due THU 8/9 at midnight)
THU 8/2 15 Inheritance and Polymorphism
Example: LotsOfVehicles.java
13.1, 13.2
THU 8/2 LAB 10 Lab10: Inheritance and Polymorphism HW10: Inheritance (due 8/4)
Week Date Class Number Subject Readings Assignment
6 MON 8/6 16 QUIZ 5
Algorithm analysis: searching
Example: ScrabbleDictionary.java
Work on game project
MON 8/6 Lab 11 Lab11: Help with game project
TUE 8/7 17 Algorithm  analysis: sorting
Review/Q&A for exam
Work game project
THU 8/9 18 Final exam in class (2 hours)
THU 8/9 LAB EXAM Lab exam during scheduled lab time