|
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:
questions,
slides
Reading
Due: Liskov,
Chapters 3 and 9.
Week 3 (10/12/14 Sept):
Exceptions, Data Abstraction
Monday 10 Sept:
Handouts:
questions,
slides
Reading
Due: Liskov,
Chapters 4, 5 (thru section 5.2) and 10 (thru section 10.2)
Wednesday 12 Sept:
Handouts:
questions,
slides
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:
questions,
slides,
Problem Set #3
Reading
Due: Finish Liskov, chapter 5.
Wednesday 19 Sept:
Handouts:
questions/notes,
slides (bring paper copy of notes to class)
Reading
Due: None
Friday 21 Sept:
Handouts:
questions/notes,
slides
Reading
Due: None
Week 5 (24/26/28 Sept): Subtyping, Inheritance, Hierarchy
Monday 24 Sept:
Handouts:
questions,
slides
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,
slides,
problem 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)
|