CIS 4930 Section 0939X (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.

Some course materials will be provided via the World-Wide Web and the Netscape web navigator. 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 Interim Reference Manual, Apple Computer Eastern Research and Technology, 1994. (Available from University Copy Center Under CIS 4930/Wilson/Object-Oriented Programming.

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

Credit
3 hours

Course Time and Place
Tuesday (9-10) and Thursday (9), CSE 221.

Grading
Homework (10%) Projects (40%), Midterm (25%), Final (25%)

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 1995 by Joseph N. Wilson.
$Id: syllabus.html,v 1.1 1995/01/10 20:11:29 jnw Exp jnw $