Q1303 – Advanced Object Orienter Programming

Mario Giannini – Mario@openroad.org

Text

   The Beginners Guide to C++ by Oleg Yaroshenkso

Recommended Text
   The C++ Programming Language Third Edition,by Stroustrup
Excellent reference of latest standard
   The C++ Standard Library : A Tutorial and Reference by Nicolai M. Josuttis
More detail and practical use of the Standard Templete Library
   Inside the C++ Object Model by Stanley B. Lippman
Object design and model strategies, from the C++ viewpoint

Exams

   1 take home midterm, and 1 final exam taken in class.

Homework

   Handed in on printout, no disks or emails unless specifically asked for or agreed to by the instructor.

Grading

 

 Grading is broken down as follows:

      Midterm/Final 60%
      Homework 30%
      Participation 10%

 Grades are broken down as follows:

    100 = A+, 99 to 95=A, 94 to 85=B, 85 to 75=C, 74 to 65=D, below 65=F

 No 'upgrades' will be permitted for homeworks, or assignments unless previously agreed upon with instructor. No more than two homework assignments will be accepted from a student on the final day of class. A grade of 'incomplete' must be requested by students two weeks prior to the final exam. A grade of incomplete is granted at the instructors discretion, taking into account the students grade average and ability to complete class assignments.

Incompletes

   Grades of incomplete are almost non-existent.


 Class 1

  Introduction

    Review of programming concepts (Using C) and structures

Introduction to OOP

Why OOP

Stages of programming: Tasks, Functions, Objects

Development Stages

Identify the job at hand

Modeling after the real world

Representing Relationships and Objects

 Class 2

 Changes from C in C++

cin and cout

Data declarations

C items to avoid using

C as a subset of C++

Objects

Behavior

Interaction

Classification

Polymorphism

Inheritance/Hierarchy

 Class 3

 Classes

Declaration

Constructors

Destructors

Copy constructors

Function interaction

Object Oriented Programming

Abstraction

Encapsulation

Information Hiding

Messaging

 Class 4

 Classes (continued)

Static/Class-Common data

Other class types: Pointers, arrays

this

C++ Memory management

new and delete

constructor/destructor invoking

Class 5

 Object Oriented Programming

Structured Analysis and Design

Phases of Project Development

Analyse

Design

Implement

Test

Common stages of design (1 to 2 to 3 then back to 2)

 Class 6

 Class Inheritance

Constructors

Controlling the Scope of Methods

Visibility Issues

Multiple Inheritance

Object Oriented Programming

Inheritance benefits and draw backs

 Class 7

 Operator Overloading

Return values

Temporary class creations

Arithmetic operators

Data conversions

Midterm Assigned

 Class 8

 Friends

Friend classes and functions

Virtual Functions

Virtual functions

Pure virtual functions

Abstract Classes

Object Oriented Programming

The Booch method

 Class 9

 Files and I/O

Streams

Text Modes

Reading and writing class instances

Random access files

 Class 10

 Class Types: Exceptions

      The Exception Mechanism

      Exceptions vs. Standard Error Handling

      Non-error Exceptions

      Error Recovery

 Class 11

 Templates

Function Templates

Class Templates

Inheritance Using Templates

Object Oriented Programming

Testing Procedures

Class Testing and self-testing

Integration Testing

Testing Cycle

 Class 12

 

Containers

Constructing and Maintaining a Class Library

Object Oriented Programming

Managing Object-Oriented Projects

Risks

 Class 13

 Templates, STL

      Templates vs. Classes

      Template Usage

      Template Definitions

      Simple Array Template

 Class 14

 Templates, STL Continued

Standard C++ Library

      Standard Template Library (STL)

Review for Final

 Class 15  Final Exam