E. Program Evolution.

1. Describe in what respect, if at all, the philosophy and direction of computer science education has changed at your institution during the last five years (or since the last evaluation, whichever is the shorter duration).

In 1997, the Department received a CSU System Grant for $35,000 to undertake the ROOT (Refashioning Object Oriented Technology Teaching) project. This project involved the entire faculty of the Department in implementing a curricular change to adopt OO in the BS Computer Science Program. It was recognized as well as, in other CS departments, that teaching mere C++ to computer science students does not mean they will acquire the OO analysis and design philosophy. Although the Department decided to adopt C++ in 1994, we noticed that the students are writing the programming projects in the upper division courses in the structured approach and not in the OO approach as desired. Instead of overloading our CSCI 201 and 202 with topics concerning OOA/D using UML or adding another core course that teaches this topic, the ROOT Project came out with an innovative way of integrating OOA/D in the curriculum.
The topic of OOA/D using UML were integrated in five undergraduate Computer Science courses:

The topic of OOA/D using UML were integrated in five undergraduate Computer Science courses :

CSCI 201 Computer Science I
CSCI 202 Computer Science II
CSCI 320 Programming Languages
CSCI 330 Data Structures
CSCI 350 File Systems

CSCI 201 is the first course in the curriculum. The students are introduced to the UML Class Diagrams. This is done by briefly explaining the diagram, its meaning, and its usefulness, and by making the diagram a required element in their programming assignments.

In CSCI 202 the UML Class Diagrams notations for inheritance, aggregation, and composition are introduced . The students are taught the principles of generalizations, specializations, inheritance, aggregation and composition.

CSCI 320 covers a variety of programming paradigms. The goal is to help students to understand programming language issues and introduce them to a variety of syntax and semantics. We taught UML in this course, as a way to describe the semantic structure of languages. The syntax can be presented in extended forms of Backus-Naur Form and then we tackle semantic issues using the UML.

In CSCI 330, the students learn about abstract data types, sorting algorithms searching algorithms, string processing, and tree and graph algorithms. The students learn how to apply OOA/D using UML in the solution of small projects involving abstract data types. They are taught to go through an OOA/D phase before implementing their project in C++.

CSCI 350 is a preparatory course to the database course. It involves a single programming project where the students are grouped into teams. In this course, the students are expected to use a complete OOA/D methodology , which consists of the following steps :

Methodology Diagram - Requirements, Use Case Diagram, Class Diagram, Sequence Diagram, Architecture, then Detailed Design

 

The students at this point have all the knowledge of applying OOA/D methodology using UML to their 400-level and above programming projects.
The ROOT Project produced the website: http://www.csci.csusb.edu/rootproj that contains all the exercises and suggested projects for the courses: CSCI 201, 202, 320, 330, and 350. The result of the ROOT Project was published in [1], see appendix XXIX.Adobe PDF Document

Adobe PDF Document [1] A. I. Concepcion, R. J. Botting , and D.D. Scroggins, "ROOT Project: An Integration of an OOA/D Methodology in the Computer Science Curriculum" In Proc. of the World Multiconference on Systemics Cybernetics and Informatics SCI'2000, Orlando, FL, 23-26 Jul 2000.

 

2. Describe any major developments and/or progress made in connection with the program in the last five years (or since the last evaluation, whichever is the shorter duration) that is not included in your response to I.C.

 

The most significant changes are in the capstone courses CSCI 401,455 and 460. These courses are in the core and they represent the culmination of the student's studies in the hardware, software, and operating systems.

In 401 there were two significant improvements. The first is changing the laboratory from VLSI layout to design using Magic to designing and simulation using Verilog. This change greatly improved the understanding of VLSI circuits through very easy compliable hardware definition language. Magic is cumbersome because of the need to draw colored geometric figures that the students have a hard time to understand. Using the Verilog programming language improved their understanding of VLSI circuits and gave them an opportunity to know an industry standard hardware definition language.

The second change is changing the textbook from J.P. Hayes to Patterson and Hennessy's "Computer Organization and Design: The Hardware /Software Interface". This text was a great improvement and it discuses significant contributions of pipelining, branch predictions, and co-designing compilers and architectures to the improvement of processor performance. For those students wishing to take advance computer architecture, CSCI 510, the textbook by Hennessy and Paterson "Computer Architecture Quantities Approach " is used. The students are able to analyze and understand how performance is measured.

In 455, the software development process that was used to produce the class project, Algorithma, is structured approach . In 1998, the software development process used is object-oriented approach. This change was brought about by the decision of the Department to adopt OO paradigm in the entire computer science curriculum. Algorithma is an algorithm animation project and has been an ongoing project since 1991. The students taking the course inherits the previous years entire software artifacts in order to maintain the project. This change was significant because the students are able to have an opportunity to maintain very large software and get an experience in working as a team. The success of CSCI 455 project-based course was reported for three consequcutive years at the SIGCSE Symposium [1,2,3], see Appendix XI.
In CSCI 460, the change was for the text-book from Tanenbaum "Operating Systems: Design and Implementation" to Silberschatz, Galvin and Gauge " Applied Operating

System Concepts" Using Tanenbaum, the project centers around the study of Minix which is written in C. Using Silbershatz et. al., the project was changed to a simulation of an operating system for a hypothetical processor. The project consists of three parts. The first part is building the virtual machines, then the second part adds the process management, and the last part is the memory management . The project is entirely written in C++ and OO approach. Instead of studying code in C for Minix, the students are able to understand process and memory management because they have to build one. This change also aligns with the decision of the Department to adopt OO paradigm.

The database courses: CSCI 572 and CSCI 580 have Oracle certification for database administrators. This was made possible through an Oracle partnership contract headed by a faculty in the Department, see Appendix XXVIIAdobe PDF Document.

The Department had a meeting with the Department of Mathematics in Spring 2001 to discuss how mathematical foundations of proving be incorporated in the course Math 272 (Discrete Mathematics). We also suggested that Math 372 (Combinatorics) be a prerequisite to CSCI 431 ( Algorithm Analysis ). These changes are recommended to improve the student's maturity in the techniques of prooving in CSCI 431.

 

Adobe PDF Document [1] A.I. Concepcion, "Using an Object-Oriented Software Life-Cycle Model in the software engineering course," In Proceedings of the 29th ACM SIGCSE Symposium, Atlanta, GA, Feb 1998

Adobe PDF Document [2] A.I. Concepcion, L.Cummins, E. Moran, and M. Do," Algorithma 98:An Algorithm Animation Project,"In Proceedings of the 30th ACM SIGCSE Symposium, New Orleans, Louisiana, Mar 1999.

Adobe PDF Document [3] A.I. Concepcion, N.Leach, and A. Knight," Algorithma 99:An experiment in Reusability and Component-Based Software Engineering,"In Proceedings of the 31th ACM SIGCSE Symposium, Austin, TX, Mar 2000.

 

Get Acrobat Reader Get Adobe Acrobat Viewer