The schedule below represents my current best estimate concerning due dates (and everything else). I am providing this information to give you a general idea of the pace and timing of the class. This schedule will certainly change as the semester progresses.

Readings should be completed before class on the day they are listed. Readings followed by (s) are supplemental. You are not required to complete the supplemental readings, but you may find them useful.

Note that all Programming Assignments are due on the Sunday following the date indicated on the schedule. For example, PA#1 is due on Sunday, January 22nd at 11:00 PM.

Unless otherwise noted, all readings below are from Starting Out With Java, 4th edition, by Tony Gaddis.

WEEK DATE TOPIC/LAB READING DUE
1. Warm-Up 01-09 BASH Shell
Typographic Conventions
University of Surrey Linux Tutorial (s)

01-10 Review Data Types/Structures
Clicker Questions (.pdf)
2, 3,
4.1-4.7, 4.9


01-11 Experience with Objects


01-12 Object Review
Exercises (.pdf)
Point.java, Rectangle.java
5, 6.1-6.5
8.1 - 8.3, 9


2. Exceptions and I/O 01-16 MLK Day - No Lab


01-17 Exceptions (.pdf)
Calculator.java
CalculatorLoop.java
12.1

01-18 Experimenting with Exceptions


01-19 I/O Basics (.pdf)
SimpleEditor.java
NumberFormatDemo.java
4.10
Java I/O Tutorial (s)


3. Multidimensional
Arrays
01-23 Experimenting with I/O


01-24 Multidimensional Arrays
Handout.txt
Matrix.java
LTMatrix.java
8.9-8.10

01-25 Experimenting with MD-Arrays
PA1
YUtil.java

01-26 MD-Array Exercises


4. Software Design 01-30 Practice with MD-Arrays
Array2D.java



01-31 Clicker Questions
Enumerated Types Worksheet
9.9, 12.2
Java Tutorial (s)


02-01 Experimenting with Enumerated Types


02-02 Designing Classes
Design Worksheet
6.7

5. Software Design and OOP 02-06 Practice with Design
PA2
YGame.java
YPlayer.java
TextDriver.java

02-07 Design Discussion
UMLPA1.pdf
Introduction to Testing



02-08 Review


02-09 EXAM 1


6. Testing 02-13 Testing Lab 1 JUnit Cookbook
XP Unit Testing


02-14 Assessment Day


02-15 Testing Lab 2


02-16 More Testing (.pdf)
PA3
7. Polymorphism 02-20 Exam Follow-Up Lab
DocumentTest.java



02-21 Inheritance (.pdf) 11.1-11.3

02-22 Experimenting with Specialization


02-23 Polymorphism
Clicker Questions (.pdf)
Instruments.txt
11.4-11.7

8. Inheritance 02-27 Experimenting with Polymorphism through Inheritance


02-28 Abstract Classes
Clicker Questions (.pdf)
Safari Design Exercise
11.8

02-29 Experimenting with Abstract Classes


03-01 Inheritance Wrap-Up, Generics
Review quiz (.pdf)
Solutions (.pdf)
8.13,
ArrayList



03-05 SPRING BREAK


03-06 SPRING BREAK


03-07 SPRING BREAK


03-08 SPRING BREAK


9. Interfaces 03-12 Debugging Lab


03-13 Interfaces
Clicker Quiz (.pdf)
Interface Worksheet (solutions)
Rank.java
11.9

03-14 Experimenting with Interfaces


03-15 Design, Generics, Varargs
Spinner.java
SpinDriver.java
safari.png
Generics Tutorial (s) PA4 (3/18)
Ingredient.java
IngredientList.java
Unit.java
IngredientTest.java
UnitTest.java

10. Recursion 03-19 Polymorphism Through Interfaces


03-20 Recursion (.pdf) 15

03-21 Tracing Recursive Methods


03-22 Recursion Clicker Questions (.pdf)
Recursion Worksheet (.pdf)
Coding Bat Site



11. Recursion 03-26 Experimenting with Recursion


03-27 Midterm Review


03-28 CodingBat Recusion Lab


03-29 EXAM 2


12. Collections 04-02 Using the JAR Utility


04-03 Introduction to Collections (.pdf)
PA5
04-04 Experimenting with Collections I


04-05 Stacks and Queues


13. Collections 04-09 Experience With Data Structures
RectangularArray.java



04-10 Collection Design Exercise (.pdf)


04-11 Collection Implementation
RectangularArray.java



04-12 User Interfaces (.pdf)
GUIDemo.java
7.1-7.2, 13.1, 13.5 PA6 (4/15)
14. GUI 04-16 User Interfaces Lab


04-17 Layout and
2D Graphics (Dr. Bernstein's slides)
Sketcher.java
SketchCanvas.java
7.4
Java Layout Tutorial (s)


04-18 Experimenting with 2D Graphics


04-19 Revisit Linked Structures
ArrayQueue Visualization
LinkedQueue Visualization



15. Wrap Up 04-23 Experimenting with Collections II
START WITH SECTION 3!



04-24 Work Day for PA7


04-25
Final Exam - Coding



04-26 Review
Sample Questions (Bernstein)

PA7 (4/29)
16. Exam Week




05-01 Written Final (1:00-3:00)