Arturo Concepion, statement, CS2 workshop
Adopting object-oriented (OO) technology means that we must rethink how
we view software systems. For the past two decades, software has been
engineered using procedural programming languages which support the top-down
programming (structured) paradigm. This paradigm is based on the notion that
software is developed as a collection of procedures where each
procedure is created to solve a particular task. These procedures,
like recipes in the culinary arts, are designed to address specific
problems with step-by-step instructions which lead toward a solution.
The structured approach is intuitive and natural to the typical
computer science student who has been taught from early grammar school
years to "read and follow directions". On the other hand, the OO
paradigm views the problem as a set of communicating objects.
These objects send messages to each other and are encapsulated, thus making
the objects independent and reusable for other applications.
Most computer science departments have adopted an object-oriented programming
language (OOPL) in their introductory courses: CS 1 and CS 2. Although an
OO programming language is being used, students are still being taught the
structured paradigm in these courses with the expectation that they will
become familiar with the OO paradigm later in the curriculum. However,
having become indoctrinated in the procedural paradigm, students find it very
difficult to understand and use OOA/D methodologies. It has become clear that
OOA/D must be introduced early in the curriculum.
ROOT (Refashioning Object-Oriented Technology Teaching) is a project
undertaken by the entire Department of Computer Science at California
State University, San Bernardino, which is aimed at integrating
Object-Oriented Analysis and Design (OOA/D) into the undergraduate Computer
Science Program without adding new courses to the curriculum. This goal is
achieved by distributing the steps of the OOA/D methodology over five
identified courses: CS 1, CS 2, Data Structures, Programming Languages, and
File Systems where the students learn OOA/D incrementally without being
overwhelmed by it. In each of these courses, software combined with
laboratory exercises and project materials are developed to increase the
student's ability to grasp the concepts associated with OOA/D. The OOA/D
methodology used is the Unified Modeling Language (UML).
The following are the materials developed by faculty and are available
at the ROOT Project home
page (http://www.csci.csusb.edu/rootproj/):
- CSCI 201: Learning materials to draw classes and objects diagrams;
software and data objects used in laboratory and homework exercises.
- CSCI 202: Learning materials to draw inheritance, aggregation, and
association diagrams; software and data objects used in laboratory and
homework exercises.
- CSCI 320: Learning materials to understand the complete syntax and
semantics of the UML design notation.
- CSCI 330: Learning materials (Projects, Demonstrations, etc.) to perform
analysis and design using UML and then implementation of small projects
involving stacks, queues, trees, and graphs.
- CSCI 350: Learning materials to perform analysis, design, and
implementation of a file system project.
Owen L. Astrachan
Last modified: Wed Sep 2 00:11:33 EDT 1998