CS205: Engineering Software
  Fall 2007                         Olsson 009                   M/W/F 1 - 1:50PM

 

 

 

 

 

 

 

 

 

Schedule, Assignments and Notes, Fall 2007 

version 2007-12-05 10:51

  Your goal is to master how computer scientists manage complexity in software design and implementation.  (That's my goal for you too!)  You'll find that most issues faced and tools employed by computer scientists have analogs in other disciplines and pursuits as well.  Each week, you'll have reading, questions to address and an ongoing project. 

You are expected to have done your reading, and tested your skills by attempting the questions assigned for the day, before class.  The quality of class discussion (and of your final evaluation) will depend on your preparation.

This page will be changing as I add material for the rest of the semester.  Track the version number above.


Note: Work is to be completed by the day it is listed below.

 

This Week

 


 

 

Week 1 (29 / 31 Aug): Engineering Software, Java

 

     Wednesday 29 Aug:

        Handouts:  Syllabus, Course pledge, questions, Problem Set #1

 

        Reading Due:    None, but see next two days.

 

 

     Friday 31 Aug:

        Handouts:  questions, slides

 

        Reading Due:    Bob Colwell: Complexity in Design

 

        Other Items Due:  Course Pledge

 

 


 

Week 2 (3/5/7 Sept): Semantics, Procedures, Validation

 

     Monday 3 Sept:

        Handouts:  questions, slides

 

        Reading Due:    Liskov, Chapters 1 and 2.

 

        Problem Set Due:  Problem Set #1

 

 

     Wednesday 5 Sept:

        Handouts:  questions,   slides,     Problem Set #2

 

        Reading Due:   None

 

 

     Friday 7 Sept:

        Handouts:  questionsslides

 

        Reading Due:   Liskov, Chapters 3 and 9.

 

 

 


Week 3 (10/12/14 Sept): Exceptions, Data Abstraction

 

     Monday 10 Sept:

        Handouts:  questionsslides

 

        Reading Due:   Liskov, Chapters 4, 5 (thru section 5.2) and 10 (thru section 10.2)

 

 

     Wednesday 12 Sept:

        Handouts:  questionsslides

 

        Reading Due:   None

 

 

     Friday 14 Sept:

        Handouts:  questions, slides (no slides, no questions; covered ps2)

 

        Reading Due:   None

 

        Problem Set Due:  Problem Set #2

 

 


 

Week 4 (17/19/21 Sept): Reasoning, Invariants

 

     Monday 17 Sept:

        Handouts:  questionsslides, Problem Set #3

 

        Reading Due:   Finish Liskov, chapter 5.

 

 

     Wednesday 19 Sept:

        Handouts:  questions/notesslides   (bring paper copy of notes to class)

 

        Reading Due:   None

 

 

     Friday 21 Sept:

        Handouts:  questions/notesslides

 

        Reading Due:   None

 

 


 

Week 5 (24/26/28 Sept): Subtyping, Inheritance, Hierarchy

 

     Monday 24 Sept:

        Handouts:  questionsslides

 

        Reading Due:   None

 

        Problem Set Due:  Problem Set #3

 

 

     Wednesday 26 Sept:

        Handouts:  slides

 

        Reading Due:   Liskov, Chapter 7

 

 

     Friday 28 Sept:

        Handouts:  questions, Problem Set #4

 

        Reading Due:   None

 

 

 


 

Week 6 (1/3/5 Oct): Documenting, OO Programming, Design

 

     Monday 1 Oct:

        Handouts:  slides

 

        Reading Due:   Read Bertrand Meyer's Static Typing and Other Mysteries of Life

 

 

     Wednesday 3 Oct:

        Handouts:  questions

 

        Reading Due:   None

 

 

     Friday 5 Oct:

        Handouts:  questions, slides

 

        Reading Due:   None

 

        Problem Set Due: Problem Set #4 (Questions 1-4)

 

 


 

Week 7 (10/12 Oct): Reading Day, Review, Midterm

 

     Monday 8 Oct:   Reading Day, No Class.

 

 

     Wednesday 10 Oct: Review

        Handouts:  questions, slides

 

        Reading Due:   Liskov, Chapter 13

 

        Problem Set Due:  Problem Set #4 (Questions  5-7)

 

 

     Friday 12 Oct:  In-class, closed materials, Midterm

 

 

 


 

Week 8 (15/17/19 Oct): Midterm review, Design

 

     Monday 15 Oct:

        Handouts:  Your graded midterms, stats

 

        Reading Due:   none

 

 

     Wednesday 17 Oct:

        Handouts:   questions, slidesproblem set 5 (with links fixed)

 

        Reading Due:   Chapter 13

 

 

     Friday 19 Oct:

        Handouts:  slides, questions

 

        Reading Due:   Sun tutorial on concurrency 

 

 


 

Week 9 (22/24/26 Oct): Concurrency, Design reviews, Atomicity

 

     Monday 22 Oct: Chris Batten talk; class will not meet; see you at the talk

        Handouts:   None

 

        Reading Due:    None

 

 

     Wednesday 24 Oct:   ps5 design reviews

        Handouts:  None

 

        Reading Due:  None

 

 

     Friday 26 Oct:

        Handouts: Slides, questions

 

        Reading Due:   Java API on Atomic and Condition classes

 

 

 


 

Week 10 (29/31 Oct,  2 Nov): ps5 Review, Priorities, Networking

 

     Monday 29 Oct: Ps5, step 3, concurrency

        Handouts:  none

 

        Reading Due:    None

 

 

     Wednesday 31 Oct (Halloween):   Priorities, Networking

        Handouts:  slides, questions

 

        Strongly Recommended Reading :  http://java.sun.com/docs/books/tutorial/networking/

 

 

     Friday 2 Nov: More Networking

        Handouts: See 24 Oct slides and questions

 

        Reading Due:   Sun network tutorial; See 24 Oct.

 

 

 


 

Week 11 (5/7/9 Nov): Project Challenge Presentations, GUIs

 

     Monday 5 Nov (Guy Fawkes Day): Project Challenge Presentations; Intro to GUIs    

        Handouts:  slides

        Reading Due:    None

 

 

     Wednesday 7 Nov:   GUIs

        Handouts: slides

        Reading : None

 

 

     Friday 9 Nov: GUIs, Swing, AWT

        Handouts: slides

        Reading Due:   None.

 

 


 

Week 12 (12/14/16 Nov):

 

     Monday 12 Nov: Project Design reviews

        Handouts:  none

        Reading Due:    None

 

 

     Wednesday 14 Nov:   Finish Design Reviews; Managing a small software team

        Handouts: slides (MIT 6.170 lecture)

        Reading : None

 

 

     Friday 16 Nov: Concurrency in GUIs & GUI Builders

        Handouts: slides

        Reading Due:   none.

 

 


 

Week 13 (19 Nov):

 

     Monday 19 Nov

        Handouts:  Programming Lore Slides;  Lunch at the Garden Room

        Reading Due:    Take a look at this (up to his questionable multiprocessor suggestion) and this (primarily first half) recent talk.

 

 

     Thursday 22 Nov: Thanksgiving

 

 


 

Week 14 (26/28/30 Nov): Equality, Hashing, Programming Tools, Security

 

     Monday 26 Nov Equality and Hashing

        Handouts:  slides

        Reading Due:    Liskov: review sections 5.4 and 7.9.3 and read 8.3

 

 

     Wednesday 28 Nov:   Programming tools

        Handouts: slides

        Reading : Liskov 10.7 and 10.8

 

 

     Friday 30 Nov:  FORTRESS

        Handouts:     http://research.sun.com/projects/plrg/Publications/allen-fortress-intro.pdf

        Reading Due:   None.

 


 

Week 15 (3/5/7 Dec): Tools, Software disasters, and project final reports

 

     Monday 3 Dec: JUnit and other Programming Tools

        Handouts:  slides

        Reading Due:    None

 

 

     Wednesday 5 Dec: Software disasters (no suggested connection to your projects)   

        Handouts: slides

        Reading : None

 

 

     Friday 7 Dec: Projects, final reports

 

 

10 Dec 10:30AM to noon:  In-class, closed materials, Exam II (in Olsson 009, our classroom)