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. |