Course Syllabus

The table below gives the planned syllabus for the course. This syllabus is subject to change. When it becomes necessary to revise the schedule, then this page will be updated to reflect the changes.

The references in the readings are given in the bibliography below.

Dates Topics Exercise or homework due Readings Optional Readings
Aug. 23 Introduction   Handouts, Course Web Site [Booch94] Ch. 1-2, [Budd02] Ch. 1, [Cox-Novobilski91] Ch. 1-3, [Meyer97] Ch. 1-2, [Shalloway-Trott02] Ch. 1
Aug. 25 Introduction   [Larman01] Ch. 1, [Fowler00] Ch. 1
Aug. 27 Introduction Exercise 0 [Larman01] Ch. 1, consensus requirements, revised objectives [Fowler00] Ch. 1
Aug. 27 Running Java   Running Java web page [Walrath-Campione99] Ch 1.
Aug. 30 Running Java   Running Java web page [Walrath-Campione99] Ch 1.
Sep. 1 Exception Handling Exercise 1 [Arnold-Gosling-Holmes00] Ch. 8  
Sep. 3 Objects and Classes (Calculator example code, other example code) Homework 1 [Arnold-Gosling-Holmes00] Ch. 1-2 [Booch94] Ch. 3, [Budd02] Ch. 2-7, [Cox-Novobilski91] Ch. 4, [Liskov01] Ch. 1-2 and 5, [Meyer97] Ch. 3-8, [Reil96] Ch. 2
Sep. 6 No class (university holiday)      
Sep. 8 Objects and Classes (Calculator example code, other example code)   [Arnold-Gosling-Holmes00] Ch. 1-2 [Booch94] Ch. 3, [Budd02] Ch. 2-7, [Cox-Novobilski91] Ch. 4, [Liskov01] Ch. 1-2 and 5, [Meyer97] Ch. 3-8, [Reil96] Ch. 2
Sep. 10 Objects and Classes (Calculator example code, other example code) Homework 2 [Arnold-Gosling-Holmes00] Ch. 1-2 [Booch94] Ch. 3, [Budd02] Ch. 2-7, [Cox-Novobilski91] Ch. 4, [Liskov01] Ch. 1-2 and 5, [Meyer97] Ch. 3-8, [Reil96] Ch. 2
Sep. 13 Objects and Classes (Calculator example code, other example code)   [Arnold-Gosling-Holmes00] Ch. 1-2 [Booch94] Ch. 3, [Budd02] Ch. 2-7, [Cox-Novobilski91] Ch. 4, [Liskov01] Ch. 1-2 and 5, [Meyer97] Ch. 3-8, [Reil96] Ch. 2
Sep. 15 Inheritance and Polymorphism (examples and the Calculator example) Exercise 2 [Arnold-Gosling-Holmes00] Ch. 3-4, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16, [Reil96] Ch. 5
Sep. 17 Inheritance and Polymorphism (examples and the Calculator example), Patterns using polymorphism   [Arnold-Gosling-Holmes00] Ch. 3-4, [Larman01] Sec. 16.3-4, 22.1, 23.4, 34.12, [Shalloway-Trott02] Ch. 16, 18, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Gamma-etal95] pp. 127-134 and 325-330, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16 [Reil96] Ch. 5
Sep. 17 Review for Exam 1 Homework 3 problem 1a,
(Exam study guide)
[Arnold-Gosling-Holmes00] Ch. 1-4, [Walrath-Campione99] [Booch94] Ch. 1-4, [Budd02] Ch. 1-10, [Cox-Novobilski91] Ch. 1-6, [Liskov01] Ch. 1-2, 5, and 7, [Meyer97] Ch. 1-6 and 14-16 [Reil96] Ch. 1-2 and 5
Sep. 20 Exam 1   [Reil96] Ch. 1-2 and 5, [Walrath-Campione99] [Arnold-Gosling-Holmes00] Ch. 1-4, [Booch94] Ch. 1-4, [Budd02] Ch. 1-10, [Cox-Novobilski91] Ch. 1-6, [Liskov01] Ch. 1-2, 5, and 7, [Meyer97] Ch. 1-6 and 14-16
Sep. 22-24 Presentations of project inceptions (hw2) Homework 3 [Larman01] Ch. 4 Student project visions
Sep. 24 Form teams      
Sep. 27 Inheritance and Polymorphism ( examples and the Calculator example)   [Arnold-Gosling-Holmes00] Ch. 3-4, [Shalloway-Trott02] Ch. 17, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Gamma-etal95] pp. 293-303, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16 [Reil96] Ch. 5
Sep. 29 Inheritance and Polymorphism ( examples and the Calculator example) Exercise 4, Homework 5 problem 1 [Arnold-Gosling-Holmes00] Ch. 3-4, [Shalloway-Trott02] Ch. 17, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Gamma-etal95] pp. 293-303, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16, [Reil96] Ch. 5
Oct. 1 Inheritance and Polymorphism ( examples and the Calculator example)   [Arnold-Gosling-Holmes00] Ch. 3-4, [Shalloway-Trott02] Ch. 17, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Gamma-etal95] pp. 293-303, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16, [Reil96] Ch. 5
Oct. 4 Inheritance and Polymorphism ( examples and the Calculator example)   [Arnold-Gosling-Holmes00] Ch. 3-4, [Shalloway-Trott02] Ch. 17, [Walrath-Campione99] [Booch94] Ch. 4, [Budd02] Ch. 8-10, [Cox-Novobilski91] Ch. 5-6, [Gamma-etal95] pp. 293-303, [Horstmann-Cornell01], Ch. 4-9, [Liskov01] Ch. 7, [Meyer97] Ch. 14-16, [Reil96] Ch. 5
Oct. 4 Course Review and Planning      
Oct. 4 OOAD Overview   [Larman01] Ch. 1-3 [Beck99], [Booch94] Ch. 2.1, [Budd02] Ch. 3, [Fowler00] Ch. 1-2, [Liskov01] Ch. 13, [Meyer97] Ch. 27, [Shalloway-Trott02] Ch. 1
Oct. 6 OOAD Overview Homework 4 [Larman01] Ch. 1-3 [Beck99], [Booch94] Ch. 2.1, [Budd02] Ch. 3, [Fowler00] Ch. 1-2, [Liskov01] Ch. 13, [Meyer97] Ch. 27, [Shalloway-Trott02] Ch. 1
Oct. 8 Inception Phase   [Larman01] Ch. 4 StickSync project documents
Oct. 8 Understanding Requirements Exercise 6 [Larman01] Ch. 5 [Liskov01] Ch. 11, [Meyer97] Ch. 27
Oct. 11 Use-Case Model: Writing Requirements in Context Exercise 7 [Fowler00] Ch. 3, [Larman01] Ch. 6,  
Oct. 13 Team work on requirements (hw5)   [Fowler00] Ch. 3, [Larman01] Ch. 4, 6  
Oct. 15 Use-Case Model: Writing Requirements in Context Homework 5 [Fowler00] Ch. 3, [Larman01] Ch. 6,  
Oct. 18 Identifying Other Requirements Exercise 8 [Larman01] Ch. 7  
Oct. 18 Course Review and Planning      
Oct. 18 From Inception to Elaboration   [Larman01] Ch. 8  
Oct. 20 Use-Case Model: Drawing System Sequence Diagrams Exercise 9 [Fowler00] Ch. 5, [Larman01] Ch. 9 [Larman01] Ch. 13, [Meyer97] Ch. 27
Oct. 22 Domain Model: Visualizing Concepts HW 6 [Fowler00] Ch. 4, [Larman01] Ch. 10  
Oct. 25 Domain Model: Adding Associations Exercise 10 [Fowler00] Ch. 4, [Larman01] Ch. 11 [Reil96] Ch. 4 and 7
Oct. 27 Domain Model: Adding Atributes Exercise 11 [Fowler00] Ch. 4, [Larman01] Ch. 12 [Reil96] Ch. 4
Oct. 29 Review for Exam 2 (Exam study guide) [Fowler00] Ch. 1-3, [Larman01] Ch. 1-7 [Beck99], [Booch94] Ch. 2.1, [Budd02] Ch. 3, [Liskov01] Ch. 11 and 13, [Meyer97] Ch. 27, StickSync project documents
Nov. 1 Exam 2   [Fowler00] Ch. 1-3, [Larman01] Ch. 1-7 [Beck99], [Booch94] Ch. 2.1, [Budd02] Ch. 3, [Liskov01] Ch. 11 and 13, [Meyer97] Ch. 27, StickSync project documents
Nov. 3 Basic OO Design HW 7 [Fowler00] Ch. 4 and 11, [Larman01] Ch. 13-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-3, [Wirfs-Brock-Wilkerson89]
Nov. 5 Basic OO Design Homework 8, prob 1 [Fowler00] Ch. 4 and 11, [Larman01] Ch. 13-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-3, [Wirfs-Brock-Wilkerson89]
Nov. 8 Course Review and Planning      
Nov. 8 Team work on designs (hw8)      
Nov. 10 Basic OO Design Exercise 12 [Fowler00] Ch. 4 and 11, [Larman01] Ch. 13-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-3, [Wirfs-Brock-Wilkerson89]
Nov. 12 Course Review and Planning      
Nov. 12 Basic OO Design HW 8, prob 3 [Fowler00] Ch. 4 and 11, [Larman01] Ch. 13-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-3, [Wirfs-Brock-Wilkerson89]
Nov. 15 Basic OO Design Exercise 13 [Fowler00] Ch. 4 and 11, [Larman01] Ch. 13-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-3, [Wirfs-Brock-Wilkerson89]
Nov. 17 Design by Contract with JML and JUnit Exercise 14 and the HistoricalData.java file [Beck-Gamma98], [Leavens-Cheon03] [Fowler00] pages 62-65, [Leavens-Baker-Ruby03] [Liskov01] Ch. 3-5 and 12, [Meyer97] Ch. 11, [Mitchell-McKim02]
Nov. 19 Design by Contract with JML and JUnit HW 8, prob 4, parts a-c [Beck-Gamma98], [Leavens-Cheon03] [Fowler00] pages 62-65, [Leavens-Baker-Ruby03] [Liskov01] Ch. 3-5 and 12, [Meyer97] Ch. 11, [Mitchell-McKim02]
Nov. 22-26 Thanksgiving Break, no class      
Nov. 29 GRASP: More Patterns for Assigning Responsibilities HW 8, prob 4, part d [Larman01] Ch. 22 [Larman01] Ch. 21, [Reil96] Ch. 3
Dec. 1 Review for Exam 3 (Exam study guide) [Fowler00] Ch. 4 and 11, [Larman01] Ch. 10-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-4 and 7, [Wirfs-Brock-Wilkerson89]
Dec. 3 Exam 3   [Fowler00] Ch. 4 and 11, [Larman01] Ch. 10-20 [Fowler00] Ch. 5 and pages 104-106, [Liskov01] Ch. 14, [Reil96] Ch. 2-4 and 7, [Wirfs-Brock-Wilkerson89]
Dec. 6 Designing Use-Case Realizations with GoF Design Patterns   [Larman01] Ch. 23 [Gamma-etal95], [Liskov01] Ch. 15
Dec. 8 Designing Use-Case Realizations with GoF Design Patterns   [Larman01] Ch. 23 [Gamma-etal95], [Liskov01] Ch. 15
Dec. 10 Designing Use-Case Realizations with GoF Design Patterns HW 9, prob 1 [Larman01] Ch. 23 [Gamma-etal95], [Liskov01] Ch. 15
Dec. 10 Design Patterns: Template Method, State, Command, Visitor, Decorator   [Gamma-etal95] [Larman01] Ch. 34
Dec. 10 Course Summary and Review      
Dec. 10 Course Evaluations      
December 16 (Thurs.), 9:45-11:45 a.m. Team Design Presentations Homework 10    

Return to top

Bibliography

[Arnold-Gosling-Holmes00]
Ken Arnold and James Gosling and David Holmes. The Java Programming Language Third Edition. Addison-Wesley, Reading, Mass., 2000.
[Beck99]
Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, Boston, Mass, 1999.
[Beck-Gamma98]
Kent Beck and Erich Gamma. Test Infected: Programmers Love Writing Tests. Java Report, 3(7):37-50, 1998. Online at: http://junit.sourceforge.net/doc/testinfected/testing.htm
[Booch94]
Grady Booch. Object-Oriented Design: With Applications, Second Edition. Benjamin Cummings, New York, N.Y., 1994.
[Budd02]
Timothy Budd. An Introduction to Object-oriented Programming, Third edition. Addison-Wesley, Boston, Mass, 2002.
[Cox-Novobilski91]
Brad J. Cox and Andrew J. Novobilski. Object Oriented Programming: an Evolutionary Approach, Second edition. Addison-Wesley, Reading, Mass, 1991.
[Fowler00]
Martin Fowler with Kendall Scott. UML Distilled Second Edition: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley Longman, Inc., Reading, MA, 2000. ISBN 020165783X.
[Gamma-etal95]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston, MA, 1995. ISBN 0201633612.
[Horstmann-Cornell01]
Cay S. Horstmann and Gary Cornell. Core Java 2 Volume I -- Fundamentals. Sun Microsystems Press, Palo Alto, CA, 2001.
[Larman01]
Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Second Edition. Prentice Hall PTR, Upper Saddle River, NJ, 2001. ISBN 0130925691.
[Leavens-Baker-Ruby03]
Gary T. Leavens, and Albert L. Baker, and Clyde Ruby. Preliminary Design of JML: A Behavioral Interface Specification Language for Java. Iowa State University, Department of Computer Science, TR98-06x, June 1998, revised November 2003. [Postscript] [PDF]
[Leavens-Cheon03]
Gary T. Leavens, and Yoonsik Cheon Design by Contract with JML. (Draft), November 2003. [PDF]
[Liskov01]
Barbara Liskov with John Guttag. Program Development in Java. Addison-Wesley, Boston, Mass, 2001.
[Meyer90]
Bertrand Meyer. Lessons from the Design of the Eiffel Libraries. Comm. ACM, 33(9):69-88 (Sept., 1990).
[Meyer97]
Bertrand Meyer. Object-oriented Software Construction, Second edition. Prentice Hall, New York, NY, 1997.
[Mitchell-McKim02]
Richard Mitchell and Jim McKim. Design by Contract by Example. Addison-Wesley, 2002.
[Reil96]
Arthur J. Reil. Object-Oriented Design Heuristics. Addison-Wesley, Reading, MA, 1996. ISBN 020163385X.
[Shalloway-Trott02]
Alan Shalloway and James R. Trott. Design Patterns Explained: A New Perspective on Object-Oriented Design. Addison-Wesley, Boston, MA, 2002. ISBN 0-201-71594-5.
[Walrath-Campione99]
Kathy Walrath and Mary Campione. The JFC Swing Tutorial: A Guide to Constructing GUIs. Addison-Wesley, Reading, MA, 1999. Online at: http://java.sun.com/docs/books/tutorial/uiswing/index.html
[Wirfs-Brock-Wilkerson89]
Rebecca Wirfs-Brock and Brian Wilkerson. Object-Oriented Design: A Responsibility-Driven Approach. OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), ACM SIGPLAN Notices, 24(10):71-75, Oct. 1989.

Return to top

Old Syllabi

Below are links to syllabi from previous offerings of this course.

Return to top

Course Content and Policies

The course's content and grading policy are described on separate web pages. See the links on the top left of this page.

Return to top

Last modified Saturday, December 4, 2004.

This web page is for the Fall 2004 offering of Com S 362 at Iowa State University. The details of this course are subject to change as experience dictates. Students will be informed of any changes. Please direct any comments or questions to the course staff.