CS202
Programming Systems
Winter
2013
(the
following outline is subject to change!)
Introduction
Week: Topic: Reading/Projects:
Week #1
1/8 Introduction **Login
to Desire 2 Learn
Objectives for the course
(For a Review of C++
Discuss expectations examine Prata Ch 1-8)
Review Outline
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
Week #2
1/15 Topic #2 Remember C++... Lecture Notes #1
Data Abstraction vs. Prata Chapter 10
Object
Oriented Programming
1/17 Topic #3 Introduction to Inheritance Prata Chapters 13-14
Terminology, Single Inheritance
Multiple and Virtual Inheritance Lecture Notes #5, 6
Week #3
1/22 Topic #4 Dynamic
Binding, Prata
Chapter 13
Run Time Type
Identification Lecture
Notes #7
1/24 User Defined Conversions Lecture Notes #8
Namespaces
Prata Chapter 9
Building User Defined Data Types
Week #4
1/29 Topic #6 C++ Dynamic Memory Issues & Operator Overloading
Constructors
allocating memory Lecture
Notes #2
Destructors
and Dynamic memory
Copy Constructors
Dynamically allocated objects
1/31 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
Exception Handling
Week #5
2/5 Topic #5 Exception Handling Prata Chapter 15
2/7 Prepare for
Midterm
C++ Proficiency
Week #6
Midterm and
Proficiency Demonstrations – 2/14 and 2/15
Demonstrations
are required to pass this class. Times
for the Online Student Midterm and Proficiency Demonstrations should be
available after the third week of the term.
Students will be
demonstrating C++, data structures, and gdb at the
midterm demonstration.
Preparation for the Upper Division
Classes
Week #7
2/19 Comparison of
Languages using OOP
Compare Java and C++ (attendance is optional)
Introduction to Java
2/21 Learning Java (attendance is optional)
Walk through examples projects using Java and C++
Discuss
Garbage Collection
Object Oriented Programming in Practice
Week #8
2/26 Analyze OOP
solutions
Examine OOP solutions and design OOP alternatives in class
2/28 Examining OO
solutions in Java
OO versus Non-OO Constructs
Week #9
3/5 Topic #7 Friends, Nesting, Static Members Lecture Notes #9
3/7 Template Functions and Classes Lecture Notes #10, 11
Prepare for Final Proficiency
Week #10
3/12 Prepare for the Final Exam
3/14 Review
3/15 Final
Proficiency Demonstration for in-class students
Demonstrations are required to pass
this class. They may be performed early –
whenever you feel confident with the material.
Email Term Papers - Due 3/18
Final’s Week
Email - Program #5 3/22
**** No Late Program #5’s Accepted ****
In-Class Student Final Exam:
Thursday March 21st 10:15-12:05 Comprehensive Final Exam
Online Student exam times will be announced after 7th week