| Week | Day | Topics | Examples | 
|---|---|---|---|
| 1 | Jan 14 | Introduction, course information. Read prior to next class: | HelloWorld.java | 
| Jan 16 | Java Basics. Lab 1 and 2. Read prior to next class: | Linux Commands Cheat Sheet | |
| Jan 18 | Java Classes. Read Prior to next class: | Line2D | |
| 2 | Jan 21 | MLK Day: NO CLASS | |
| Jan 23 | Java Objects and References. Read prior to next class: | Compare Strings | |
| Jan 25 | Breaking a Problem into Classes | Book catalog | |
| 3 | Jan 28 | Java Inheritance Concepts - POGIL Activity. Read prior to next class: | |
| Jan 30 | Inheritance.Read prior to next class: | ||
| Feb 1 | Java Inheritance Details POGIL Activity | ||
| 4 | Feb 4 | Inheritance DOs and Don'ts | |
| Feb 6 | Polymorphism with abstract classes. Read Abstract Class in Java example | ||
| Feb 8 | 
                       Interfaces. Read Chapter on Interfaces including
                       
  | 
                    Projector Example | |
| 5 | Feb 11 | Exception Handling. Read | Coding standards | 
| Feb 13 | Object Oriented Design Practice | UML Diagram | |
| Feb 15 | Introduction to Java SWING API | swingIntro directory in git | |
| 6 | Feb 18 | SWING Event Handling | EventDemo.java, EventDemoLocal.java | 
| Feb 20 | Building Tic Tac Toe with SWING API | Check tic_tac_toe directory in your git repos | |
| Feb 22 | Building Tic Tac Tow with SWING API Part 2 | ||
| 7 | Feb 25 | Finishing the Tic Tac Toe | |
| Feb 27 | Practical Examples of Java Interfaces. Additional reading: | ||
| March 1 | Java Generics and Collections POGIL | ||
| 8 | March 4 | Java Generics exercises. Read Java Generics Totorial | |
| March 6 | Midterm Exam | ||
| March 8 | Iterator Design Pattern Additional Reading  | 
                    ||
| 9 | March 11-15 | SPRING BREAK: No Classes | |
| 10 | March 18 | 
                       Model View Controller Design Pattern Additional Reading with Example  | 
                    mathQuizMVC in git repos | 
| March 20 | 
                       Observer Design Pattern Additional Reading with Example  | 
                    mathQuizObserver in git repos | |
| March 22 | 
                       Strategy Design Pattern Additional Reading with Example  | 
                    Shopping Cart | |
| 11 | March 25 | Team Project Kick-off Form project teams. Team work and communication. Project Ideas  | 
                    Requirements Document Example | 
| March 27 | Factory, Abstract Factory, Decorator design patterns | Payment Strategy Factory | |
| March 29 | [Initial requirements document is due] Requirements peer-review. | ||
| 12 | April 1 | 
                       [Updated requirements document is due] Java Unit Testing 1 POGIL (link in your email)  | 
                    |
| April 3 | 
                        Unit Testing. Additional Reading. Set up JUnit testing environment prior to next class.  | 
                    ||
| April 5 | 
                       Team work with git Unit Test Challenge: test the Balloon class.  | 
                    Check balloonTest directory in your git repos. | |
| 13 | April 8 | 
                        Guest speaker [Prototypes and design are due]  | 
                    |
| April 10 | 
                       Serializable objects Additional Reading  | 
                    tic_tac_toe/serializablePlayer in your git repos | |
| April 12 | Team project interface design. | ||
| 14 | April 15 | Interface Segregation Principle (ISP) | ISP Exersise | 
| April 17 | 
                        Dependency Inversion Principle (DIP) [Core logic and unit tests are due]  | 
                    DIP Exersise | |
| April 19 | EASTER BREAK: No Class | ||
| 15 | April 22 | EASTER BREAK: No Class | |
| April 24 | Multi-Threaded Applications with Java | 
                       Runnable Thread  | 
                 |
| April 26 | Client-Server Applications | ||
| 16 | April 29 | Basic Chat Application | Project Presentation Information | 
| May 1 | More improvements to the Chat Application | ||
| May 3 | 
                        [FULLY FUNCTIONAL PROJECTS ARE DUE] Team project demos  | 
                    ||
| 17 | May 6 | Team project demos | |
| May 10 | 
                       Take home final exam is due by 2pm. Final Exam Information CSCI 2300 Spring 2019: Take Home Final Exam Agreement  |