Lecture Calendar

Week Sun Mon Tue Wed Thu Fri Sat

icon syllabus; intro to OOP/OOD

icon slides (icon PDF) on Java review
icon slides (icon PDF) on introduction and OOP/OOD

READ: Horstmann Ch. 1-3

classes; inheritance; collections

icon slides (icon PDF)

icon code: BankAccount, CheckingAccount, Point, Main

READ: Horstmann Ch. 4-5, 13

Java API: List, Set, Map, Queue

Assigned: Homework 1

Section 1

the Object class; equality

icon slides (icon PDF)

icon code: Point, Point3D, Main

READ: Horstmann pp. 192-204

Java API: Object


comparing objects; cloning

icon slides (icon PDF) on comparing
icon slides (icon PDF) on cloning

icon code: BankAccount, Point, Rectangle,
RectangleAreaComparator, RectangleXYComparator, Main

READ: Horstmann pp. 672-675

Java API: Comparable, Comparator, Cloneable, Object.clone

enumerated types; exceptions

icon slides (icon PDF) on enum
icon slides (icon PDF) on exceptions

icon code: Coin, Planet, Suit, UseCoins, UsePlanet, Wallet

READ: Horstmann pp. 215-217, 687-689; Ch. 11

Java Tutorial: enum, exceptions
Java language spec: enum
Java API: Enum, Exception, Throwable

Assigned: Homework 2

Section 2

programming by contract; Javadoc

icon slides (icon PDF)

icon code: Point (Javadoc)

READ: Horstmann pp. 162-166

Java Tutorial: Javadoc, assertions


mutation and immutability

icon slides (icon PDF)

icon code: Fraction, UseFraction, StringPlay

READ: Horstmann p. 132

Java API: String, StringBuilder

tutorials: final

guidelines for class design

icon slides (icon PDF)

READ: Horstmann Ch. 4, and pp. 167-171

Section 3

unit testing w/ JUnit
(presenter: TA Michael Erickson)

icon slides (icon PDF)

icon code: Date, DateTest

links: JUnit.org, Javadoc, tutorial 1, tutorial 2

Assigned: Homework 3


design patterns 1:
Iterator, Adapter, Singleton, Flyweight

icon slides (icon PDF)

icon code: RestaurantTextUI, Date, DateMain

Java API: Iterator, String.intern

design patterns 2:
Prototype, Factory Method, Abstract Factory

icon slides (icon PDF)

icon code: DrawingPanel, ImageFactory, client

Java API: DateFormat, Graphics, Color, Font, Border, BorderFactory, Image, Toolkit, MediaTracker

Section 4

object-oriented design heuristics

icon slides (icon PDF)

Assigned: Homework 4


specifications; subtyping

icon slides (icon PDF) on specs
icon slides (icon PDF) on subtyping

event-driven programming and GUIs

icon slides (icon PDF) on GUIs;
icon slides (icon PDF) on components

icon code: GUI, main

READ: Horstmann Ch. 7 pp. 281-294;
Ch. 8 pp. 324-338; Ch. 9 pp. 368-377

Java Tutorial: Creating a GUI

Java API: JComponent, JFrame, JButton, FlowLayout, BorderLayout, GridLayout, ActionListener, ActionEvent

Section 5

Composite, Decorator patterns

icon slides (icon PDF)

icon code: TextEditorGUI, main

READ: Horstmann Ch. 9 pp. 377-493

Java API: JPanel, JScrollPane, JOptionPane


MVC and Observer pattern

icon slides (icon PDF)

icon code: RockPaperScissorsGui, Game, Weapon, main, images

Java API: Observable, Observer

Assigned: Homework 5

multiple views

icon code: View, ImageView, TextView, Gui, Game

Section 6

2D graphics
(presenter: Michael Erickson)

icon slides (icon PDF)

icon code: PaintedView

Java API: Graphics2D, Image, BufferedImage, Paint, Shape, Stroke

Java Tutorial: 2D Graphics


Strategy and State patterns

icon slides (icon PDF)

icon code: CascadingLayout, Game, RPSStrategy, RandomStrategy, RockStrategy, LearningStrategy

More events

icon slides (icon PDF)

icon code: LineCanvas, LineGui, LineMain

READ: Horstmann Ch. 8

Java Tutorial: Event Listeners

Assigned: Homework 6

Section 7

packages; JAR archives

icon slides (icon PDF)

icon code: LineCanvas, DebugKeyListener, rps.zip

READ: Horstmann pp. 153-159, 494-501

Java Tutorial: packages, JAR


Memento pattern; serialization

icon slides (icon PDF)

icon code: Game, GUI, Strategy, rps.zip

Java Tutorial: serialization

timers, threads, and concurrency

icon slides (icon PDF)

icon balls: Main, GUI, Canvas, Ball
icon threads: Counter, Runner, Main

READ: Horstmann Ch. 14

Java Tutorial: concurrency, threads/processes

Section 8

discuss project; working in teams

icon slides (icon PDF)

Assigned: Group Project


hash codes; annotations

icon slides (icon PDF)

icon code: example 1, example 2, Time

READ: Horstmann pp. 196-198

Java Tutorial: annotations


icon slides (icon PDF)

icon code: List, ArrayList

READ: Horstmann Ch. 12

Java Tutorial: generics, annotations

Section 9


icon slides (icon PDF)

icon code: Example, TimeStyleTest

READ: Horstmann pp. 217-237

Java Tutorial: reflection


no school;
Memorial Day holiday

wrap-up of Java features;
project early demos

icon slides (icon PDF)

Java Tutorial: keywords, packages

Section 10

demo final projects;
course evaluations


8:30 - 10:20am, in class