CS202 Programming Systems

Winter 2014

(the following outline is subject to change!)

 

Introduction

 

Week:       Topic:                                                              Reading/Projects:

Week #1

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

 

1/9                        Implementing the Design: Terminology & Concept

                  Inheritance

                  Polymorphism

                  Measuring the Quality of the Design

                  Alternatives?

                  Common Design Flaws

 

Lab 1 – Topic #1 - Getting Started with OO Concepts

·         (there are no pre-lab exercises)

·         Getting Started with Object Oriented Programming

·         Demonstrate OO techniques

·         Lab #1 is due for self-paced students the following Monday  1/13

 

 

 

 

 

 

Advanced C++ Concepts: Syntax

 

Week #2

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

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

 

 

 

Lab 2 – Topic #3 -  Inheritance

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  1/20

·         Examine design methodologies

·         Building an employee OO program for a local department store

1/27                        Program #1 Due    - Submit to the D2L Dropbox

 

 

Week #3

1/21          Topic #4 Dynamic Binding,                           Prata Chapter 13

1/23          Run Time Type Identification                       Lecture Notes #7

 

 

Lab 3 – Topic #4 - Dynamic Binding

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  1/27

·         Implement solutions using dynamic binding

 

 

 

 

 

 

 

User Defined Conversions and Exception Handling

 

Week #4

1/28          Topic #4 User Defined Conversions Lecture Notes #8

 

1/30          Topic #5 Exception Handling                        Prata Chapter 15

 

Namespaces                                       Prata Chapter 9

 

Lab 4 – Topic #5 – Exception Handling and Namespaces

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  2/3

·         Implement solutions using exception handling and namespaces

 

 

Building User Defined Data Types

 

Week #5

2/4                        Topic #6 C++ Dynamic Memory Issues & Operator Overloading 

                  Constructors allocating memory                    Lecture Notes #2

                  Destructors and Dynamic memory   

 

                 

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

 

Lab 5 – Topic #6 – Operator Overloading

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  2/10

·         Experience operator overloading

 

2/10                        Program #2 Due    - Submit to the D2L Dropbox

 

 

C++ Proficiency

 

Week #6

 

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

 

Midterm Proficiency Practice and Demonstrations – 2/13 and 2/14

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, vim, or emacs.

 

Lab 6 – Materials are available for self-study to prepare for the proficiency demo

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  2/17

·         Practice recursive solutions with linear, circular, and doubly linked lists

 

 

 

Introduction to Java

 

Week #7

2/18, 2/20 Learning Java  (attendance is optional)

Walk through examples projects using Java and C++

                  Discuss Garbage Collection                           

 

Lab 7 – Eclipse Tutorial

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  2/24

·         Aimed at first time IDE users – attendance is optional

 

2/24                        Program #3 Due    - Submit to the D2L Dropbox

 

 

 

Object Oriented Programming in Practice

 

Week #8

 

2/25, 2/27 Analyze OOP solutions  

Examine OOP solutions and design OOP alternatives in class

 

Lab 8 – Java Workshop

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  3/3

·         Aimed at first time Java programmers – attendance is optional

 

Week #9

 

3/4            Examine OO solutions in Java          (attendance is optional)

                  Complete the Java Workshop in-class

                  Self-paced lab students welcome to attend

 

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

Template Functions and Classes                              Lecture Notes #10, 11

 

 

 

Lab 9 – Data Structures and Recursion

·         In-class students: Bring your Pre-Lab exercise completed!

·         Self-paced: Prelab and Lab are due the following Monday  3/10

·         Review and Practice for the final proficiency demonstration

 

3/10                        Program #4 Due    - Submit to the D2L Dropbox

 

 

 

 

 

 

 

 

 

 

 

 

Preparation for the Upper Division Classes

 

Week #10

 

3/11                      Prepare for the Final Exam

 

3/13, 3/14             Final Proficiency Demonstrations

during class and Lab by appointment

 

3/17          Term Papers - Submit to the D2L Dropbox

 

 

Final’s Week

 

 

 

Comprehensive Final Exam:

·         In-Class Student Final Exam: Thursday March 20th 8-9:50am in FAB 10

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

 

3/20                        Program #5 Due    - Submit to the D2L Dropbox

 

                                *** NO LATE PROGRAM #5’s Accepted ***