The following table gives the topics we will cover in the class and the approximate number of lectures to be spent on each topic. The "Reading" column lists the reading material for the class. You should do the reading for a class or lab before you attend it.
The rows in gray are the labs.
| Date | Topic | Skills | Readings |
| 8/22 | Overview | ||
| 8/24 | Lab 1: Using Eclipse with Java: Creating a Java project, writing a simple class, and running it |
Thinking in Java, Chapter 1 (until
"Inheritance") Read Ch.5 Sections 1&2 of Introduction to programming using Java Optional: Java for C programmers |
|
| 8/26 | The difficulty of writing software | 1 | No Silver Bullet, Fred Brooks |
| 8/29 | Extreme programming: what and why | 2 |
Read about the
waterfall model, an older software development model Fully read this web site (clicking the Red "XP" buttons will walk you through it) |
| 8/31 |
Lab 2:
Inheritance and subtyping Assignment 1 due |
Read Ch.5 Sections 3&4 of Introduction to programming using Java | |
| 9/2 | Extreme programming example | ||
| 9/5 | No class: labor day | ||
| 9/7 |
Lab 3:
Unit tests and JUnit Assignment 2 due |
||
| 9/9 | Testing | 3 | Read this overview and this web page (ignore the "Other Measures" section) |
| 9/12 | Testing | Read this high-level overview of black-box testing | |
| 9/14 |
Lab 4:
Polymorphism Assignment 3 due |
Read Ch. 5 Section 5 of Introduction to programming using Java | |
| 9/16 |
Guest speaker: Nancy Rassbach, Sun Microsystems |
Click here for her slides | |
| 9/19 | Black Box testing | ||
| 9/21 |
Java topics (review) |
||
| 9/23 | Introduction
to patterns; terminology Assignment 4 due |
4 | Chapter 1 of Design Patterns. This may be one of the hardest readings this semester since it introduces many terms and references things that aren't covered till later in the text. Be sure to use the "skills" while reading so you do not get bogged down with detail. |
| 9/26 | Composite pattern | 5 | Chapter 2 of Design Patterns upto and including 2.2; Composite pattern (page 163-173 inclusive). |
| 9/28 | Lab 5: Debugging | ||
| 9/30 |
Strategy pattern Assignment 5 due |
6 | Section 2.3 of Design Patterns; Strategy pattern (pages 315-323 inclusive). |
| 10/3 | Decorator and abstract factory patterns | 7, 8 |
Section 2.4 of Design Patterns; Decorator pattern (pages 175-184
inclusive) Section 2.5 of Design Patterns; Abstract factory pattern (pages 87-95 inclusive) |
| 10/5 | Lab 6: Debugging continued | ||
| 10/7 |
Abstract factory and bridge patterns Assignment 6 due |
9 | Section 2.6 of Design Patterns; Bridge Pattern (pages 151-161 inclusive) |
| 10/10 | Command pattern and review | 10 | Section 2.7 of Design Patterns; Command Pattern (pages 233-242) |
| 10/12 | Lab 7: Version control and cvs | ||
| 10/14 | Fall Break | ||
| 10/17 |
Help session Assignment 7 due |
||
| 10/19 | Help session with TA | ||
| 10/21 | Midterm exam (in class) | ||
| 10/24 | Iterator and visitor patterns | 11, 12 | Section 2.8 of Design Patterns; Iterator pattern (pages 257-271); Visitor pattern (pages 331-344) |
| 10/26 | Lab 8: Ant | ||
| 10/28 | Observer pattern | 13 | Observer pattern (page 293-299) |
| 10/31 | Extract method refactoring | 14 | Refactoring book: pages 1-15 and 110-116 (both inclusive) |
| 11/2 | Lab 9: Swing | ||
| 11/4 |
Move method and rename method refactorings Assignment 8 due |
15 | Refactoring book: pages 16-20, 142-148, 273-274 (all inclusive) |
| 11/7 | Replace temp with query, inline temporary, and split temporary variable | 16 | Refactoring book: page 21, 119-123, 128-130 (all inclusive) |
| 11/9 | No lab | ||
| 11/11 |
Decompose conditional, Replace conditional with polymorphism, Pull-up
method, Push-down method Assignment 9 due |
17 | Refactoring book: pages 238-239, 255-259, 322-324, 328 |
| 11/14 |
When to refactor |
18 | Refactoring book, Chapter 3 |
| 11/16 | Lab 10: Swing continued | ||
| 11/18 |
Pre and post conditions, loop invariants Assignment 10 due |
19 | Gries Chapter 13 (available as E-Reserve from the library) |
| 11/21 | Developing programs and specifications hand in hand | 20 | Gries Chapter 14 (available at E-Reserve from the library) |
| 11/23 |
Introduction to loops and loop invariants Assignment 11 due |
21 | |
| 11/28 | Introduction to loops and loop invariants (cont) | ||
| 12/2 | Developing loops from invariants and bounds | 21 | Gries Chapter 15 (available from E-Reserves from the library) |
| 12/5 |
Assignment 12 due Practice questions |
||
| 12/13 | Final exam 10:30 to 1:00. You must bring a blue book with you |