CS202 Programming Systems

Fall 2013

(the following outline is subject to change!)

 

Introduction

 

Week:       Topic:                                                             Reading/Projects:

Week #1

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

 

                  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

 

10/3           Implementing the Design: Terminology & Concept

                  Inheritance

                  Polymorphism

                  Measuring the Quality of the Design

                  Alternatives?

                  Common Design Flaws

 

 

Advanced C++ Concepts: Syntax

 

Week #2

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

10/10         Data Abstraction vs.                           Prata Chapter 10

                  Object Oriented Programming                       

 

                   Topic #3 Introduction to Inheritance         Prata Chapters 13-14

                  Terminology, Single Inheritance                      

                  Multiple and Virtual Inheritance                    Lecture Notes #5, 6

 

Copy Constructors

 

 

 

Week #3

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

10/17         Run Time Type Identification                     Lecture Notes #7

 

 

Email Program #1 - Due 10/22

 

 

User Defined Conversions and Exception Handling

 

Week #4

10/22         Topic #4 User Defined Conversions            Lecture Notes #8

 

10/24         Topic #5 Exception Handling                       Prata Chapter 15

 

Namespaces                                       Prata Chapter 9

 

 

Building User Defined Data Types

 

Week #5

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

                  Constructors allocating memory                     Lecture Notes #2

                  Destructors and Dynamic memory    

 

                 

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

 

Prepare for Midterm

 

 

Email Program #2 - Due 11/5

 

 

 

C++ Proficiency

 

Week #6

 

In-Class Midterm is 11/7
 
***Watch for announcements on the time and location for online students***

 

Midterm and Proficiency Demonstrations – 11/8

Demonstrations are required to pass this class and are by appointment. Watch your pdx.edu email for an appointment schedule. 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. All students should be fluent with either vi or vim.

 

 

 

Email Program #3 - Due 11/14

 

 

Introduction to Java

 

Week #7

11/12, 11/14          Learning Java  (attendance is optional)

Walk through examples projects using Java and C++

                  Discuss Garbage Collection                           

 

 

Object Oriented Programming in Practice

 

Week #8

 

11/19, 11/21          Analyze OOP solutions (attendance is optional)

Examine OOP solutions and design OOP alternatives in class

 

 11/26                    Examining OO solutions in Java

 

***NO CLASS on 11/28 and 11/29 (Thanksgiving) – PSU is Closed

 

Email Program #4 - Due 11/26

 

 

 

Preparation for the Upper Division Classes

 

Week #10

12/3, 12/5  Topic #7 Friends, Nesting, Static Members            Lecture Notes #9

Template Functions and Classes                              Lecture Notes #10, 11

 

Comparison of Languages using OOP       

 

 

                  Prepare for the Final Exam

 

Email Term Papers - Due 12/6

 

 

Final’s Week

 

 

Proficiency Demonstrations take place by appointment during finals week. Demonstrations are required to pass this class.

They may be performed early – whenever you feel confident with the material.

 

Comprehensive Final Exam:

·         In-Class Student Final Exam: Thursday December 12th 10:15-12:05

·         Online Student exam times will be announced after 7th week

 

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