Lecture Calendar

Week Sun Mon Tue Wed Thu Fri Sat
1

3/28
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

2


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

3


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

4


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

5


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

6


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

7


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

8


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

9


hash codes; annotations

icon slides (icon PDF)

icon code: example 1, example 2, Time

READ: Horstmann pp. 196-198

Java Tutorial: annotations



generics

icon slides (icon PDF)

icon code: List, ArrayList

READ: Horstmann Ch. 12

Java Tutorial: generics, annotations


Section 9


reflection

icon slides (icon PDF)

icon code: Example, TimeStyleTest

READ: Horstmann pp. 217-237

Java Tutorial: reflection

10


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

F


FINAL EXAM
8:30 - 10:20am, in class