Software Development (CS 329)

Fall Semester, 2015


(Last Update: 09/14/2015)

Most readings will be taken from the Liskov/Guttag ("LG"), and you are expected to complete all such readings before the class for which they are indicated. Because it is such a useful book, I have also included readings from Meyer ("M"), though these are optional. The Meyer chapters given refer to the second edition, but where corresponding material exists in the first edition, it is given in parentheses. The "practical interlude" weeks are more informal: usually, you can learn what you need either through the Killer Game Programming (KGP) text, or any number of online tutorial materials.

Week 1
(Aug. 31 - Sep. 5)
introduction; software lifecycle; software quality properties; agile development models B.W. Boehm: "A Spiral Model of Software Development"
L. Williams, "A Survey of Agile Development Methodologies"
Presentation of Project 1 on Friday, 09/05
Week 2
(Sep. 5 - 12)
procedural and data type specification; design by contract; structural invariants; R. C. Martin, "The Open-Closed Principle"
Week 3
(Sep. 13 - 19)
ADTs; abstraction functions; structural invariants; representation exposure; subtyping and substitution R.C. Martin, "The Liskov Subsititution Principle"
Meyer, Chapter 7 (optional)
Week 4
(Sep. 20 - 26)
Version control systems Presentation of Project 2 on Friday, 09/25
Week 5
(Sep. 27 - Oct. 3)
Practical Interlude: Concurrency and Java threads
Week 6
(Oct. 4 - 10)
Testing; JUnit Presentation of Project 3 on Friday, 10/09
Week 7
(Oct. 11 - 17)
Agile testing approaches Wambler: "Agile Testing Strategies"
Wambler: "Introduction to Test-Driven Development"
Ostrof et al: "Agile Specification-Driven Development"
Week 8
(Oct. 18 - 24)
UI Design
Week 9
(Oct. 25 - 31)
UI Design Presentation of Project 5 on Friday, 10/30
Week 10
(Nov. 1 - 7)
Practical Interlude: Network programming in Java Project teams formed this week
Week 11
(Nov. 8 - 14)
Wrap up, Project 6 work, and general slack Presentation of Project 6 on Friday, 11/20
Project proposals due on Saturday, 11/14
Week 12
(Nov. 15 - 21)
Project implementation and review
Week 13
(Nov. 22 - 28)
Project implementation and review Exams collected on Tuesday, 11/24
Week 14
(Nov. 29 - Dec. 5)
Project implementation and review Exam (take-home) distributed on Friday, 12/04
Week 15
(Dec. 6 - 11)
Project implementation and review Exams collected on Monday, 12/07
Final class is Friday, 12/11
Finals Week Exam time is on Tuesday, 12/15, 8:30a - 11:30a Presentations of final projects will be held at the scheduled exam time. Final deliverables are due at this time.