CS202 Programming Systems

Summer 2012

(the following outline is subject to change!)

 

Introduction

 

Date:         Topic:                                                             Reading/Projects:

6/28           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

 

                  Implementing the Design: Terminology & Concept

                  Inheritance

                  Polymorphism

                  Measuring the Quality of the Design

                  Alternatives?

                  Common Design Flaws

 

 

Advanced C++ Concepts: Syntax

 

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

                  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

 

 

 

 

7/5             Topic #4 Dynamic Binding,                      Prata Chapter 13

                  Run Time Type Identification                 Lecture Notes #7

 

                  User Defined Conversions                        Lecture Notes #8

 

Namespaces                                                  Prata Chapter 9

 

                 Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own device, then make arrangements with your instructor so that one will be provided during this lab session. 24 hour advanced notice is required.

·         Demonstration: Dynamic Binding

·         Explore Applying Dynamic Binding and build OO Designs

 

Email Program #1 - Due 7/10

 

 

Building User Defined Data Types

                                                                             

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

 

                 Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own device, then make arrangements with your instructor so that one will be provided during this lab session. 24 hour advanced notice is required.

·         Demonstration: Operator Overloading and Copy Constructors

·         Explore Applying Operator Overloading in hierarchical designs

 

7/19           Topic #5 Exception Handling                   Prata Chapter 15

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

 

            Template Functions and Classes             Lecture Notes #10, 11

 

Prepare for Midterm

                             

                 Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own device, then make arrangements with your instructor so that one will be provided during this lab session. 24 hour advanced notice is required.

·         Explore Exception Handling and OOP

 

 

Email Program #2 - Due 7/20

 

                                                                       

In-Class Midterm is 7/26

 

 

Preparation for the Upper Division Classes

 

7/26           Watch Optional Video: Comparison of Languages using OOP       

Compare Java and C++

 

 

 

Email Program #3 - Due 7/31

 

 

Introduction to Java

 

8/2             Learning Java

Walk through examples projects using Java and C++

                  Discuss Garbage Collection                                  

 

                 Optional Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own device, then make arrangements with your instructor so that one will be provided during this lab session. 24 hour advanced notice is required.

·         Eclipse Demonstration

·         Introductory Java Worksheet

 

 

Email Program #4 - Due 8/7

 

 

8/9             Analyze OOP solutions

Examine OOP solutions and design OOP alternatives in class

 

                 Required Lab Time ***BRING a LAPTOP, NETBOOK, or Tablet. If you do not have access to your own device, then make arrangements with your instructor so that one will be provided during this lab session. 24 hour advanced notice is required.

 

·         Examine OO Solutions

·         Design OO Alternatives

 

 

Prepare for the Final Exam

                 

 

Email Term Papers - Due 8/17

 

 

Email - Program #5    8/14        **** No Late Program #5’s Accepted **** 

 

 

 

Thursday August 16th 5:30-7:20                       Comprehensive Final Exam