Course Outline

CS202 Programming Systems

Winter 2006

(the following outline is subject to change!)

 

Introduction

 

Date:         Topic:                                                             Reading/Projects:

1/10           Introduction                                                

                  Objectives for the course                            (For a Review of C++

                  Discuss individual/group projects          examine Prata Ch 1-8)

                  Review Outline

 

Object Oriented Design: Concept

 

 1/12          Topic #1 Responsibility Driven Design

What is Object Oriented Design?

                  Examples of how Abstraction can help               

                  Identifying and Assigning Responsibilities

                  Determining Collaborations and Identifying their Purpose

                  Examining Relationships between Classes

 

                  Implementing the Design: Terminology & Concept

                  Inheritance

                  Polymorphism

                  Measuring the Quality of the Design

                  Alternatives?

                  Common Design Flaws

 

 

Advanced C++ Concepts: Syntax

 

1/17           Topic #2 Remember C++...                                                              

                  Data Abstraction vs.                                    Lecture Notes #1

                  Object Oriented Programming                  Prata Chapter 10

 

1/19           Topic #3 Introduction to Inheritance      Prata Chapters 13-14

                  Terminology, Single Inheritance               (up until page 672)

                  Multiple and Virtual Inheritance              Lecture Notes #5, 6

 

 

 

 

1/24                                                                                   Program #1 Due 1/26

1/26           Topic #4 Dynamic Binding,                      Prata Chapter 13

Lecture Notes #7                 

 

Run Time Type Identification                 (RTTI on Prata pg. 720)

                                                                                         

1/31           User Defined Conversions                        Lecture Notes #8

 

Namespaces (handout)                               Prata Chapter 9

 

 

Building User Defined Data Types

 

2/2                                                                                    

2/7             Topic #6 C++ Dynamic Memory Issues & Operator Overloading   

                  Constructors allocating memory               Lecture Notes #2

                  Destructors and Dynamic memory          

                  Copy Constructors

                  Dynamically allocated objects

 

Operator Overloading                                Prata Chapter 11

                  Rules, Guidelines                                        Lecture Notes #3, 4

                  Rvalues, Modifiable Lvalues        

                  Constant References                                   

                  Constant Member Functions

                 

The Behavior of Objects               

                  Constant Objects, Logical Constness       

 

                                                                                         

2/9                                                                                     Program #2 Due 2/9             

2/14           Topic #5 Exception Handling                   Lecture Notes #12

                                                                                          Prata Chapter 15

                  Topic #7 Friends, Nesting, Static Members       Lecture Notes #9

 

            Template Functions and Classes             Lecture Notes #10, 11

                                                                                          Prata Chapter 15 (673-698)

 

                        *** In class Object Oriented group creation of Solutions ***

 

 

2/16           Prepare for Midterm 

                   

                                                                                         

 

2/21           Midterm                                                       

 

 

Preparation for the Upper Division Classes

 

2/23           Comparison of Languages using OOP   Program #3 Due 3/2

2/28           Compare Java and C++                              

3/2             Walk through examples projects using Java and C++

                              Discuss Garbage Collection

                   

3/7             Analyze OOP solution

 

Group Presentations of Object Oriented Solutions

3/9             Individuals will be grouped together to evaluate each other’s object

oriented solutions. Groups will present 1 or 2 of their design solutions to the entire class.                     

                                                                       

                                   

3/14                       Prepare for the Final Exam            Program #4 Due 3/16

3/16          

                 

                 

 

Comprehensive Final Exam                Monday March 20th 10:15-12:05

 

                                                                  Term Papers Due 3/23rd (by noon)

 

                                                                  Program #5 Due 3/23rd (by noon)

                                                          **** No Late Program #5’s Accepted ****