CIS 4930 Section 0841X (Spring 1994)

Object-Oriented Programming

Syllabus

Instructor
Joseph N. Wilson
Course Description
This course discusses fundamental conceptual models for object-oriented programming and illustrates these with specific programming languages and application problems. Specific topics include class and object models, inheritance, and other relations among classes and objects as well as both static and dynamic system models and implementations. Object-oriented analysis and design are treated and textual and graphical notations for analysis and design are employed.

This Semester's Offering
During this Semester we shall use the languages C++ and Dylan to illustrate object-oriented programming language issues, and projects using each of the languages will be assigned. The increasingly popular Booch notation for analysis and design will be employed.

Students will work both individually on small projects, and in groups on larger projects. The small projects will help you develop competence in specific concepts in object-oriented programming. The large projects will help you develop competence in object-oriented analysis and design techniques which lead to well-structured programs.

Course materials will be provided via the World-Wide Web and the Mosaic hypermedia browsing tool. Likewise, artifacts of student designs and analyses will be shared with each other and provided to the instructor via hypermedia documents accessible from the Web.

Required Texts
Object-Oriented Analysis and Design with Applications, Grady Booch--2nd Edition, Benjamin Cummings.

Dylan: an Object-Oriented Dynamic Language, Apple Computer Eastern Research and Technology, 1992.

Recommended Text
The C++ Programming Language, Bjarne Stroustrup--2nd Edition, Addison Wesley.

Credit
3 hours

Course Time and Place
Tuesday (5,6) and Thursday (5), CSE 220.

Grading
Homework (10%) Projects (35%), Midterm (25%), Final (30%)

Outline of Topics
  • Complexity of Software and Programming Paradigms
  • Complex Systems and the Object Model
  • Brief Introduction to Mosaic and the World-Wide Web
  • Overview of C++ and Static Object-Oriented Languages
  • Encapsulation, Modularity, and Hierarchy in Object-Oriented Programs
  • Single and Multiple Inheritance
  • Objects, Classes, and Data Types
  • The Nature of Objects: State, Behavior, and Identity
  • Relationships Among Objects
  • The Nature of Classes
  • Relations Among Classes
  • Evaluating the Quality of Classes and Objects in Programs
  • Identifying Classes and Objects in Real Problems
  • The Macro-Process of Software Production
  • Object-Oriented Analysis, its Associated Notations and Products
  • Object-Oriented Design, its Associated Notations and Products
  • Object-Oriented Implementation, its Associated Notations and Products
  • Overview of Dylan and Dynamic Object-Oriented Languages

This document is copyright 1994 by Joseph N. Wilson.
$Id: syllabus.html,v 1.2 1994/01/04 14:01:45 jnw Exp jnw $