Schedule of topics covered in class (with lecture slides/notes)

Week Topics Examples Reading Assignment
Aug 27-31 Intro to Java, intro to software design. First lecture slides, First lecture slides (black & white)
Java crash course notes, slides
Git setup
Object Oriented Modeling (notes) (slides)
Tic-tac-toe user stories created in class.
Circle.java
CircleTest.java
CircleCopy.java

Horstmann Ch 1.1-1.6
Horstmann Ch 2.1-2.4
Initial Assessment Survey
Sep 3 NO CLASS: Labor day
Sep 5-7 Object Oriented Modeling: part2 (slides), notes CRC Cards for Tic Tac Toe Horstmann Ch 2.5-2.8 Homework 1 is posted
Sep 9-21 Practice in Object Oriented Modeling

Review models designed in class



Astract classes


Exception Handling in Java

Intro to Java SWING interface


Java SWING event handling
Quiz Software Project

Requirements Review
UML Diagram

Question.java
QuestionMultipleChoice.java
TestQuestion.java

BoardPosition.java

IScoreBoard.java
ScoreBoard.java
Game.java

EventDemo.java
EventDemoLocal.java



Horstmann Ch 6.5
Sep 24-28 (Sep 24) Review: class interface concept
SWING action listeners

(Sep 26) Inheritance


(Sep 28) Polymorphism
Number.java
NumberGUI.java

Circle.java Cylinder.java TestCylinder.java
Point2D.java Point3D.java TestPoint2DPoint3D.java


Homework 2 is posted
Oct 1 Icon interface, Movable shapes

Example 1: Snowman.java, SnowmanDisplay.java
Example 2: MeltingSnowman.java, SnowmanAnimation.java, MovableShape.java, ShapeIcon.java
Example 3: Car.java, CarAnimation.java, RedCar.png
Oct 3 Guidelines for class design (notes) (slides) Example 1: Day.java DayTester.java
Example 2: Day.java DayTester.java
Example 3: Day.java DayTester.java
Horstmann Ch 3
Oct 5 Unit testing Example: Day.java DayTest.java
Write a test class for the Baloon class
Download Balloon.java and run your tests.
Horstmann Ch 3 Homework 3 is posted
Oct 8 Unit testing 2 Updated Balloon.java. Horstmann Ch 3
Oct 10 Bank Account Simulation Interface
Oct 12 Custom packages and jar files
Bank account testing continued
User.java Student.java PackageTest.java
Updated Interface
source set_classpath.sh
bankAccount.jar
Oct 15 Design patterns (notes). Board Iterator
Const Position Board Iterator
Horstmann Ch 5
Oct 17 Midterm exam
Oct 19 Iterator Design Pattern (continued) Book Shelf Iterator
Iterable Book Shelf
Horstmann Ch 5
Oct 22 Midterm Break
Oct 24 Group Project
Project ideas
Observer Pattern Example (using bank account siumulation) Java docs
Observer Pattern Homework 4 is assigned (group project)
Oct 26 Decorator Pattern (using slides/notes from Oct 15). Example (using bank account siumulation) Java docs Decorator Pattern
Oct 29 Strategy and Factory Patterns Strategy Example (Shopping Cart)
Factory Example (Shopping Cart)
Oct 31 Serializable objects
Requirements review
Serializable Bank Account Ch 7 Requirements revision
Nov 2 Design Artifacts, Designing for requirements
Nov 5 Guest lecture Project design assigned
Nov 7 SOLID Design Principles
Nov 9 Finish SOLID Principles
Discuss "conceptual integrity"
Communication games
Team work with GIT
Nov 12 In class work on group project design Group project class implementation/unit tests assigned
Nov 14 SOLID exercises DIP
ISP
Peer evaluation assigned
Nov 16 DesignPatterns:Singleton and Template patterns Singleton
Nov 19 Multi-threading in Java Runnable
Thread
Nov 21-23 Thanksgiving Break
Nov 26 Client Server Applications Serializable Text Message
JSON Text Message
Nov 28 Group Project work
Nov 30 Basic Chat application: iterative design improvements Server reads one message from each client
Server reads many messages from each client
Basic Chat
Dec 3 Basic chat improvmememtns, Chat application with GUI Improved Basic Chat
GUI Chat
Dec 5 Group Project work
Dec 7 Group Project Presentations: Video Poker, Snake, Sliding Puzzle
Dec 10 Group Project Presentations
Dec 12 FINAL EXAM: 12:00pm - 1:50pm.