CS202 Programming Systems

Fall 2012

(the following outline is subject to change!)

 

Introduction

 

Date:         Topic:                                                             Reading/Projects:

9/25           Introduction                                                   **Login to Desire 2 Learn

                  Objectives for the course                   

(For a Review of C++

                  Discuss expectations                           examine Prata Ch 1-8)

                  Review Outline

 

Object Oriented Design: Concept

 

 9/27          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

 

10/2           Topic #2 Remember C++...                  Lecture Notes #1

                  Data Abstraction vs.                           Prata Chapter 10

                  Object Oriented Programming                       

 

 10/4          Topic #3 Introduction to Inheritance         Prata Chapters 13-14

                  Terminology, Single Inheritance                      

                  Multiple and Virtual Inheritance                    Lecture Notes #5, 6

 

 

 

 

 

10/9           Topic #4 Dynamic Binding,              Prata Chapter 13

                  Run Time Type Identification                     Lecture Notes #7

 

10/11         User Defined Conversions                Lecture Notes #8

 

Namespaces                                       Prata Chapter 9

 

Email Program #1 - Due 10/16

 

 

Building User Defined Data Types

                                                                             

10/16         Topic #6 C++ Dynamic Memory Issues      & Operator Overloading     

                  Constructors allocating memory                     Lecture Notes #2

                  Destructors and Dynamic memory    

 

                  Copy Constructors

                  Dynamically allocated objects

 

10/18         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

 

 

10/23         Topic #5 Exception Handling                       Prata Chapter 15

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

 

10/25         Template Functions and Classes                  Lecture Notes #10, 11

                                                                                         

10/30        Prepare for Midterm

 

Email Program #2 - Due 10/30

 

In-Class Midterm is 11/1

 

Midterm and Proficiency Demonstrations – October 30th  through November 3rd

Demonstrations are required to pass this class. They may be performed early – whenever you feel confident with the material. Times for the Midterm and Demonstrations should be available the third week of the term (once PSU provides classrooms).

Preparation for the Upper Division Classes

 

11/6, 11/8              Comparison of Languages using     OOP   

Compare Java and C++

 

 

 

 

 

Introduction to Java

 

11/13, 11/15          Learning Java

Walk through examples projects using Java and C++

                  Discuss Garbage Collection                           

 

Email Program #3 - Due 11/13

 

 

 

11/20         Analyze OOP solutions

Examine OOP solutions and design OOP alternatives in class

 

 

Email Program #4 - Due 11/27

 

11/27                     Prepare for the Final Exam

 

11.29                     Review

                 

 

Email Term Papers - Due 11/30

 

 

Email - Program #5    12/6          **** No Late Program #5’s Accepted **** 

 

 

 

Tuesday December 4th 10:15-12:05                   Comprehensive Final Exam

Alternate exam times will be announced

 

FINAL Demonstrations COMPLETED by 12/7

Demonstrations are required to pass this class. They may be performed early – whenever you feel confident with the material.