Calendar for CSCI 3308, Fall 2008

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/25 Overview    
8/27 The difficulty of writing software 1 No Silver Bullet, Fred Brooks
8/27 Lab 1: Using Eclipse with Java: Creating a Java project, writing a simple class, and running it   Thinking in Java, Chapter 2 (up to but not including "Comments and Documentation")
9/3 Software life cycle
Assignment 1 due
2 Read wikipedia pages on the waterfall model, iterative development, and formal methods
9/3 Lab 2: Inheritance and subtyping   Thinking in Java, Chapter 6 (up to but not including "The Final Keyword")
9/8 Extreme programming: what and why 3

Fully read this web site (clicking the Red "XP" buttons will walk you through it)

9/10 Extreme programming example (Game of Life)
Assignment 2 due
   
9/10 Lab 3: Dynamic binding   Thinking in Java, Chapter 7 (up to but not including "Constructors and polymorphism")
9/15 Testing: white box 4a Read this overview and this web page (ignore the "Other Measures" and later sections)
9/17 Help session with TAs (Amer is out of town)

Assignment 3 due

   
9/17 Lab 4: Unit tests and coverage    
9/22 Testing: black box
 
4b Read this wikipedia page on equivalence partitioning and this page on boundary value analysis.
9/24 Introduction to patterns; terminology
Assignment 4 due
5 Chapter 1 of Design Patterns (skip 1.3, 1.4.  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/24 Lab 5: Debugging    
9/29 Composite pattern 6 Chapter 2 of Design Patterns up to and including 2.2; Composite pattern (page 163-173 inclusive).   
10/1 Strategy pattern
Assignment 5 due
7 Section 2.3 of Design Patterns; Strategy pattern (pages 315-323 inclusive).
10/1 Lab 6: Debugging continued

 

   
10/6 Decorator and abstract factory patterns 8, 9 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/8 Bridge pattern
Assignment 6 due
10 Section 2.6 of Design Patterns; Bridge Pattern (pages 151-161 inclusive)
10/8 Lab 7: Decorator and Strategy pattern.  NOTE: you should bring your design patterns book with you to the lab.

 

   
10/13 Command pattern 11 Section 2.7 of Design Patterns; Command Pattern (pages 233-242)
10/15 Iterator  pattern
Assignment 7 due
12 Section 2.8 of Design Patterns; Iterator pattern (pages 257-271)
10/15 Help session with TA    
10/20 Exam help session    
10/22 Midterm exam (in class). You must bring a blue book with you.
No assignment due to midterm
   
10/22 Lab 8: Version control and cvs, Bridge pattern    
10/27 Visitor pattern and observer pattern 13, 14 Visitor pattern (pages 331-343) and Observer pattern (page 293-303)
10/29 Guest lecture: Matt Seidl from Google

Assignment 8 due

   
10/29 Lab 9: Continuation of previous lab (cvs and design patterns)   Read up on how exception handling works in Java.  You may read the chapter on exception handling in Thinking in Java or read any other book or web resource on the topic
11/3 Extract and move method refactoring 15 Refactoring book: pages 1-20, 110-116, and 142-145 (all inclusive)
11/5 Decompose conditional, Replace conditional with polymorphism, Pull-up method, Push-down method

(example in class: replacing hairy conditional with strategy design pattern)
Assignment 9 due

17 Refactoring book: pages 238-239, 255-259, 322-324, 328
11/5 Lab 10: Rename method  and move field refactoring

 

16 Refactoring book: pages 146-148, 273-274 (all inclusive)
11/10 Replace temp with query, inline temporary, and split temporary variable

(example in class: replacing numerous methods with visitor design pattern)

18 Refactoring book: page 119-123, 128-130 (all inclusive)
11/12 When to refactor
Assignment 10 due
19 Refactoring book, Chapter 3
11/12 Lab 11: More refactorings    
11/17 Text processing using regular expressions 20 Read this page
11/19 Text processing using context-free grammars
Assignment 11 due
21  
11/19 Lab 12: Regular expressions and grep

 

   
12/1 Text processing: writing a parser 22 Read this web page
12/3 Parser continued
Assignment 12 due
   
12/3 Lab 13: Ant

 

   
12/8 Wrap up parsing: Using design patterns for text processing

Degrees of ignorance

23 Read this paper and come prepared to discuss it
12/10 Degrees of ignorance (continued) and help session
Assignment 13  due
   
12/10 Lab 14: Help session

 

   
12/15 10:30 a.m. Final exam.  You must bring a blue book with you