Object-Oriented Design Resources for CS2

Donald J. Bagert - Texas Tech University - bagert@ttu.edu

This document is intend to give the reader some idea about how the author teaches object-oriented analysis and design in a "CS2" course; that is, in a second programming course in an undergraduate computer science curriculum. At Texas Tech, this course (C S 2463, Fundamentals of Computer Science II) teaches an introduction to object-oriented programming, data structures, and software engineering.

The information shown here is for the most recent teaching of this course (second summer semester, 1997). Each class period in the summer sessions are ninety minutes long. Crucial to the discussion of object-oriented analysis and design issues are the first three class periods.

The first class period (after discussing the course syllabus), provides an introduction to object-oriented terminology . (It is assumed that the students has had little or no exposure to the object-oriented paradigm before this course. (The CS1 course is procedure-oriented.)

The next class (after a brief review of the previous lecture) then participated in a group activity in the form of a four-stage problem for which they are to perform an object-oriented analysis. This format was presented by Alistair Cockburn at the OOPSLA '96 Workshop Teaching and Learning Object Design in the First Academic Year, and demonstrated at the concurrently-running Student DesignFest. The students do the first three stages of the analysis a groups of about three, and the last stage in a group of about six. The author, in presenting this problem, has the students treat it as an object-oriented analysis of the customer's requirements for the system, rather than as a design.

The third and final class in this sequence covers object-oriented design, and links these concepts to the basic ideas behind software engineering. In particular, architectural design (in the form of CRC cards, although a CASE tool may be used in future semesters) and detailed design are both discussed.

During the first exam, and on the final exam, the students are given an object-oriented analysis problem for which they must perform an architectural design.

The students also do two major object-oriented projects, one as individuals, and one in teams of about five each. They are required to turn in an architectural design, then a detailed design, then an implementation for these projects. (In a regular semester, these three components would be due over a period of three weeks.) In the summer of 1997, the first project involved writing a tic-tac-toe game, while the team project required a line-oriented file manager.