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

 

Object Oriented Design: Concept

 

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

 

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

 

Email Program #1 - Due 1/25

 

 

 

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

 

Email Program #2 - Due 2/8

 

 

 

C++ Proficiency

 

Week #6

 

In-Class Midterm is 2/12

 

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                           

 

Email Program #3 - Due 2/22

 

 

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

 

Email Program #4 - Due 3/8

 

 

 

 

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