The below table is the guide to the entire semester listing the topics and reading material. The syllabus is tentative; changes might be made to the syllabus according to the progress made by the class.

Students are responsible for the readings. Assignments and exams will cover the reading material.

Lecture Date Topics Readings
1 1/14
  • Class Logistics
  • Java: Getting Started
  • Classes and Objects
2 1/21
  • Packages
  • Methods (Static, Dynamic), method visibility
  • Unit Tests
3 1/28
  • Inheritance, Abstract Classes, Interfaces
  • Abstract Data Types (ADT)
Same as last weeks.
4 2/4
  • Abstract Data Types (ADT) (continued)
  • Exceptions
  • Generics
5 2/11
  • Generics (continued)
  • Design by Contract. Invariants, Pre- and Post-conditions.
  • Mutation
6 2/18
  • Arrays
  • Mutation and circular data structures
  • I/O
7 2/25
  • Nested Classes
  • Anonymous Classes
  • Midterm Review
8 3/4 Midterm
9 3/11 No Class:Spring Break.
10 3/18
  • Design Patterns

The Design Pattern's book listed under Textbooks contains a catalogue of design patterns. We will be discussing some but not all of the patterns found in the book. The first link below contains almost the same catalogue with examples in Java.

11 3/25
  • AWT
  • Swing
  • MVC & Observer pattern
12 4/1 Networking in Java
13 4/8 Java Threads and Concurrency
14 4/15
  • Jar files.
  • Java's Robot class.
  • Class Project grading criteria.
15 4/22
16 4/29 Final's Week Project Demos and Codewalks