Calendar

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