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 (

  1. CSCI 201: Learning materials to draw classes and objects diagrams; software and data objects used in laboratory and homework exercises.

  2. CSCI 202: Learning materials to draw inheritance, aggregation, and association diagrams; software and data objects used in laboratory and homework exercises.

  3. CSCI 320: Learning materials to understand the complete syntax and semantics of the UML design notation.

  4. 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.

  5. 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