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
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 ****