Course Syllabus

Foundations of Object Oriented Analysis and Design


This page last updated on: Oct 01, 2001


Contents:


General Information

Course Name

Foundations of OO Analysis and Design
Certificate: C++ Prog CP710 A
EDP: 59127

Instructor

Cliff Green

Instructor Contact Info

E-mail: cliffg@codewrangler.net
Phone: 206-363-9852 (7 pm - 9 pm), 425-867-7234 (1 pm - 4 pm)
Web: http://uwteach.codewrangler.net/

Note: I occasionally travel out of town or have work project commitments, so phone call and e-mail replies might take an extra day or two during those periods.

Term

Fall 2001, Oct. 1 - Dec 17, Mondays 6:00 - 9:00 pm, Location - Mary Gates Hall, room 242

Note: There are no sessions on Oct. 15 and Nov. 12 (instructor business trip and Veteran's Day holiday, respectively), resulting in the last session on Dec. 17. Please notify the instructor if this results in a schedule conflict.

Textbooks and Online Resources

The textbook for this course is: An optional but highly recommended textbook: These books are available at the University of Washington Bookstore; they are also widely available in the computer section of any general bookstore, or through any of the major online booksellers.

For getting started on building a C++ library, additional recommended books (and other  resources): Other C++ Resources 

Course Requirements

The minimum requirements for passing the course are:


Description, Prerequisites, and Objectives

The purpose of the course is two-fold:
  1. Prepare prospective C++ and Java students to analyze and design object-oriented (OO) solutions to computing problems.
  2. Provide an introduction to OO concepts for students who will continue with the rest of the Object-Oriented Analysis and Design certificate program.

Students will learn how to apply the principles of abstraction, encapsulation, inheritance and polymorphism while designing solutions. In addition, students will learn how to use widely employed techniques and tools such as Use Cases, Class, Responsibility, Collaborator (CRC) cards, the Unified Modeling Language (UML) and design patterns as they work through OO software lifecycle. The rudiments of C++ syntax may also be introduced as required to illustrate how the languages support OO concepts.

Prerequisites

In order to be successful in this course students should have at least a year’s experience in software development, as a functional or systems analyst, or as a programmer. Knowledge and experience in one of the C family of languages is helpful: C, C++ or Java. Students should also understand the process of traditional software development using a sequence of steps that include requirements capture, analysis, design, implementation, testing and delivery to users.

Objectives

Upon completion, students will be able to:

Grading and Assignment Info

As noted above, the majority of the grade will be from the course project assignments, rather than the final exam. The emphasis is on the assignment work, since it is a design course emphasizing real-world practice.

Your grade will be based on the seven assignments and the final examination. Each assignment will constitute 10% of your grade and the final examination will constitute 30%. To pass the course, you must achieve a 70% grade minimum on each of the assignments (with an 80% average as required) and a minimum of 70% on the final examination. If you don’t achieve 70% on any assignment you will receive feedback comments for improvement. Unless special circumstances apply, only one assignment at a time will be accepted. If an assignment does not meet the minimal grade, it will be corrected and resubmitted before proceeding (many of the assignments are interdependent and must be substantially correct to act as a firm foundation for subsequent work). The iterative and interdependent aspects of many of the assignments follow real world practices.

Assignments are graded using the following criteria:

The final examination is designed to test two things:

Assignments are turned in primarily as diagrams and text. You will need  some method of creating the solutions for assignments, and generating diagrams  from the solution model. Text solutions can be created using a text editor,  html editor, or word processing software. Submitting documents as plain text,  RTF (Rich Text Format), or MS Word (Office 2000 format, or earlier) are all acceptable. Assignments requiring UML diagrams can be done with pen or pencil on paper, or using any drawing program that will produce standard-format  graphics files in one of the following formats: BMP, PNG, GIF, JPG. In addition,  Visio 2000 or Microsoft Office graphics files are also acceptable.

Electronic submissions as e-mail attachments are preferred (but not required) to paper diagrams. Please do not send model data files (e.g. from TogetherJ™), only diagrams (or web pages) generated from the model files.

The University of Washington has obtained an academic license for TogetherJ™ software from TogetherSoft. See the TogetherSoft web site for specifics, but in general, the software will run on any machine that will run a current version of Sun Microsystems Java Virtual Machine. You must download the software package from http://www.togethersoft.com/   and install it on your machine. If you don't currently have a Java Virtual  Machine on your computer, be sure to download one from the TogetherSoft site  or from Sun Microsystems. To obtain a license, you will need to fill out and return the Grant of Academic License form and return it to the intructor, who will then email you the license file.

Important - Other boilerplate information on grading and assignment   submission is here (some of the content is oriented towards C++ programming and is not applicable to the FOOAD course, particularly the format of assignment   submission): Other Grading and Assignment Info


Administrative and Legal Info

The following page contains information on classroom closure situations, assignment originality and plagiarism, and disability accomodations: Administrative and Legal Info


This page constructed by Cliff Green, Copyright © 2001.