| Text | C++ From the Ground Up by Schildt The C++ Programming Language by Stroustrup | 
| Tests | There will be 2 tests, a take-home midterm, and a final exam. Review
will be provided for each. | 
| Homework | Handed in on printout, no disks unless
specifically asked for. | 
| Grading | Grading is broken down as follows:  
  Midterm/Final 45% Project 30%
 Homework 15%
 Participation 10%
 Grades are on an Honors/Pass/Fail basis.
The breakdown is: 
  98-100 Honors
  65-97 Pass
  0-64 Fail
 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. | 
| Goals | The goal of this class is to form a solid
understanding of the C++ programming language, and object oriented programming
concepts. Real-world examples and solutions will be presented and discussed
with an emphasis on comprehension. C and C++ distinctions will also be covered,
as will MS-DOS specific I/O routines. | 
| Class | Description | 
| 1 | Introduction 
 
  Review of programming concepts (Using
  C) 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
 | 
| 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
 | 
| 3 | Classes 
 
  Declaration Constructors
 Destructors
 Copy constructors
 Function interaction
 Object Oriented Programming
 Abstraction
 Encapsulation
 Information Hiding
 Messaging
 
 | 
| 4 | Classes (continued) 
 
  Static/Class-Common data Other class types: Pointers, arrays
 this
 C++ Memory management
 new and delete
 constructor/destructor invoking
 
 | 
| 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)
 
 | 
| 6 | Class Inheritance 
 
  Constructors Controlling the Scope of Methods
 Visibility Issues
 Multiple Inheritance
 Object Oriented Programming
 Inheritance benefits and draw backs
 
 | 
| 7 | Operator Overloading 
 
  Return values Temporary class creations
 Arithmetic operators
 Data conversions
 
 | 
| 8 | Friends 
 
  Friend classes and functions Virtual Functions
 Virtual functions
 Pure virtual functions
 Abstract Classes
 Object Oriented Programming
 The Booch method
 
 | 
| 9 | Files and I/O 
 
  Streams Text Modes
 Reading and writing class instances
 Random access files
 
 | 
| 10 | Templates 
 
  Function Templates Class Templates
 Inheritance Using Templates
 Object Oriented Programming
 
 
  Testing Procedures Class Testing and self-testing
 Integration Testing
 Testing Cycle
 
 | 
| 11 | Containers 
 
  Constructing and Maintaining a Class Library
  Object Oriented Programming
 Managing Object-Oriented Projects
 Risks
 
 | 
| 12 | Constructing an Application Object Oriented Programming
 
 
  Case Study - Black Jack 
 |