| Date |
Topics and objectives |
Resources |
| M 8/25 |
Introduction to the course
 | Understand the concept of Java-based open source software
engineering |
 | Understanding course resources, structure, and evaluation |
 | Decide whether this course is for you. |
|
|
| W 8/27 |
Interactive Development Environments
 | What are IDEs, and why use one? |
 | See a demo of Eclipse |
 | Use first programming assignment to get comfortable with Eclipse. |
|
|
| M 9/1 |
Holiday: Labor Day. |
|
| W 9/3 |
Coding standards
 | Why have a coding standard? |
 | What are Java's best practices for coding standards? |
 | Test your ability to see coding standards violations. |
|
|
| M 9/8 |
Lab Day
 | Lab and Eclipse orientation |
 | Assignment review |
|
|
| W 9/10 |
Build Systems
 | Why use a build system? |
 | Why use Ant for building Java systems? |
 | What are Ant best practices? |
|
|
| M 9/15 |
Lab Day
 | Code Rally intro |
|
|
| W 9/17 |
Unit testing
 | Why do unit testing? |
 | Why use JUnit for Java unit testing? |
 | What are unit testing best practices? |
 | What is code coverage? |
|
|
| M 9/22 |
Lab Day
 | Unit testing and code coverage |
 | Code Rally Tournament |
|
|
| W 9/24 |
PageCheck Design and Test review
 | Comments on your submissions |
JBlanket and Extreme Coverage |
|
| M 9/29 |
Review
 | Quiz answers |
 | JBlanket assignment |
 | Midterm |
 | Extra credit programming assignment |
|
|
| W 10/1 |
Midterm 1
 | Tests are open source. You can bring texts, notes, software, etc. |
|
|
| M 10/6 |
(Class cancelled) |
|
| W 10/8 |
Configuration Management Systems
 | Why use a CM system? |
 | What are common CM problems? |
 | What is CVS and how do you use it? |
|
|
| M 10/13 |
Readings Day:
 | Servlets |
 | Web applications |
 | Tomcat |
|
|
| W 10/15 |
Web application development I
 | Understand how to exploit Eclipse, Ant, JUnit, and HTTUnit for web
application development |
|
|
| M 10/20 |
Lab Day
 | Web application development practice |
|
|
| W 10/22 |
Web application development II
 | Session State |
|
|
| M 10/27 |
Lab Day
 | Project Discussion |
|
|
| W 10/29 |
Models of the Software Development Process
 | Understand models used to describe software development. |
 | Be able to compare and contrast different models. |
|
|
| M 11/3 |
Lab Day
 | Project Status Reviews |
|
|
| W 11/5 |
Introduction to Hackystat
 | PSP vs. TSP vs. Hackystat |
 | Sensors, Measures, Analyses |
|
|
| M 11/10 |
Lab Day
 | Project Status Reviews |
 | Project Management Issues |
|
|
| W 11/12 |
Models of the Software Development Process Part
2:
 | Agile Methods |
|
|
| M 11/17 |
Lab Day
 | Project review |
|
|
| W 11/19 |
Software Review: Theory
 | Understand principles of software review. |
 | Understand strengths and weaknesses of various review types. |
|
|
| M 11/24 |
Lab Day
 | Project reviews |
|
|
| W 11/26 |
Persistence
 | Understand various approaches to persistent data in Java, including
properties, XML, serialized output, and relational databases. |
 | Know which persistency mechanism to apply to a given situation. |
|
|
| M 12/1 |
Lab Day
 | Project reviews |
|
|
| W 12/3 |
Debugging
 | Learn about debugging strategies |
|
|
| M 12/8 |
Lab Day
 | Final Project Presentations |
|
|
| W 12/10 |
Lessons Learned
 | Present your top 10 lists to the class |
|
|
| |
|
|
| M 12/15 |
Final Exam, ICS 613, 2:15-4:15pm |
|
| F 12/19 |
Final Exam, ICS 413, 2:15-4:15pm |