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
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
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
Finals
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 #5s Accepted ***