Schedule of topics

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
  • Defining an Interface
  • Implementing an Interface
  • Using an interface as a type
  • Evolving interfaces
  • Default Methods
  • Summary of Interfaces
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