Schedule
Lecture slides will be posted after class.
Most dates are tentative. The schedule will be updated as the semester progresses...
WEEK | DAY | Lectures & Examples | Topic & Reading | Assignments |
1 | Sep 05 | Introduction to Course, Java | Read the pre-class reading for Monday. Use compilejava.net to compile and run the examples. Respond to the Sakai forum question about your development process. If interested, install the JDK for Java 8 on your computer Review Linux commands | |
Sep 07 | ||||
Sep 09 | First day of class | |||
2 | Sep 12 | Introduction to Java, Statically typed variables Common Java classes (Math, String) Creating classes | Assignment 0 | |
Sep 14 | Drop/Add ends | Assignment 1 | ||
Sep 16 | Assignment 2 | |||
3 | Sep 19 | Static Methods (Beginner Guide to Java Static Methods, Variables, Static Block and Class with Example) Creating classes, cont'd Parameter Passing Inheritance, Polymorphism | Assignment 3 | |
Sep 21 | Assignment 4 | |||
Sep 23 | Assignment 5 | |||
4 | Sep 26 | Abstract Classes, Interfaces Packaging JavaDocs Collections, Generics Wrapper Classes | ||
Sep 28 | Assignment 6 | |||
Sep 30 | ||||
5 | Oct 03 | Exceptions Jar files Files Standard Error | ||
Oct 05 | ||||
Oct 07 | Exam | |||
6 | Oct 10 | Comparing Java, Python Introduction to Software Development Software Development Explained with Cars A spiral model of software development and enhancement No Silver Bullet: Essence and Accidents of Software Engineering Agile Is Dead (Long Live Agility) Testing, JUnit | Extra Credit: Regular Expressions (extra credit due by class Nov 18) | |
Oct 12 | ||||
Oct 14 | Reading Days | |||
7 | Oct 17 | Testing, JUnit Collaboration, Subversion | ||
Oct 19 | Work on project | Testing Project (due Wednesday) | ||
Oct 21 | ||||
8 | Oct 24 | Coverage, White-box Testing Eclipse Debugger Eclipse Plug-in (EclEmma) Design in the Small - Open-Closed Principle, Code Smells, Refactoring Readings and Resources: | ||
Oct 26 | ||||
Oct 28 | Refactoring for Readability - bins.tar | |||
9 | Oct 31 | Refactoring for Extensibility - roulette.tar | Liskov Substitution Principle Refactoring for Extensibility Software Quality Metrics Useful Eclipse Plugins: Readings: GUIs Handling events Swing References: | Assignment 8: Roulette - Refactoring for Extensibility |
Nov 02 | ||||
Nov 04 | ||||
10 | Nov 07 | Design Patterns (Factories, Composite, Strategy, Observer, MVC) | ||
Nov 09 | Exam | |||
Nov 11 | Get code for Assignment 9 - Screensavers for in-class discussion. | Design Patterns, continued Animation | Assignment 9: Screensavers | |
11 | Nov 14 | Analysis and Design (Analysis and Design) Understanding a large code base Project Design, Management | ||
Nov 16 | Checkout and explore your team's code, Review the requirements for the project | Final Project Preparation Analysis: Due Friday, November 18 BEFORE CLASS | ||
Nov 18 | ||||
Nov 21 | Thanksgiving Break | |||
Nov 23 | ||||
Nov 25 | ||||
12 | Nov 28 | Project Design, Management Collaboration Tool: Trello | Final Project Initial implementation and demo due Wednesday, November 30 | |
Nov 30 | Preliminary implementation demo | |||
Dec 02 | ||||
13 | Dec 05 | Designing APIs, Design Principles | Final Project Intermediate Implementation due Wednesday, Dec 7 Final implementation due Thursday, Dec 15 Post analysis due Friday, Dec 16 at 5 p.m. | |
Dec 07 | Intermediate implementation demo | |||
Dec 09 | ||||
Dec 12 | Final Exam Period Final Implementation and Analysis Due | |||
Dec 14 | ||||
Dec 16 |