Programming Systems

 

Winter 2006                CS202            Instructor: Karla Fant

                                                 mailto:karlaf@cs.pdx.edu

 

Announcements!

 

  1. Great web sites for your java programs: Java Web Sites
  2. Here is a new Final Exam Study Guide! Final Study Guide
  3. Class presentation schedule:
  4. If your group is not listed above, please send karlaf email Ð so that your group can be added

 

Course Goals

The primary goal in CS202 is to prepare students for programming in the upper division 3xx and 4xx level classes. To achieve this goal, CS202 focuses on three areas: object oriented programming, advanced C++, and Java.

 

The majority of the term is spent introducing students to object-oriented programming while learning advanced C++ syntax as well as Java syntax. Students will understand the difference between procedural abstraction and object oriented solutions. Students spend the term designing and programming with inheritance hierarchies, with the goal of solving problems efficiently: producing high quality, robust, maintainable as well as efficient object oriented solutions. This provides students with the chance to experience object oriented design and programming at the same time as becoming better acquainted with advanced data structures. C++ skills developed include:

á        Single, multiple, virtual inheritance

á        copy constructors

á        dynamic binding

á        function overloading

á        operator overloading

á        user defined type conversion

á        namespaces

á        exception handling

á        template introduction

 

Java skills developed include writing two programs using advanced data structures in Java with strict requirements to follow OOP guidelines Ð all data members private, no friendly access, and complete implementation of functions required to handle issues of deep versus shallow copies and compares. Students learn the relationship between the two languages and the similarity of JavaÕs references to pointers.

 

Then, the rest of the term compares Java to C++, where we will work through example projects in both languages.

 

CS202 Course Slides

 

The following are Powerpoint slides that can be viewed for CS202. Please send email to karlaf@cs.pdx.edu if you have difficulty viewing these slides. Your feedback is welcome as well! Slides are available in both HTML as well as downloadable as PPT files:

 

Topic #1: Responsibility Driven Design

Topic #2: Remember C++É

Topic #3: Introduction to Inheritance, Copy Constructors

Topic #4: Dynamic Binding, RTTI and User Defined Conversion

Topic #5: Exception Handling

Topic #6: Operator Overloading, Operator Overloading Guidelines

Topic #7: Friends, Nesting, Static Members, Template Functions & Classes

Topic #8: Introduction to Java

Download PPT files

 

CS202 Course Lecture Notes

 

The following are Lecture Notes that can be viewed for CS202. Please use the course outline to determine when this material will be covered in class. Please send email to karlaf@cs.pdx.edu if you have difficulty viewing these files. Your feedback is welcome as well!

 

Lecture Notes #1: Review of ADTs              

Lecture Notes #2: Classes, Copy Constructors

Lecture Notes#3: Operator Overloading

Lecture Notes #4: Guidelines to Operator Overloading

Lecture Notes #5: Single Inheritance

Lecture Notes #6: Multiple & Virtual Inheritance

Lecture Notes #7: Dynamic Binding & RTTI

Lecture Notes #8: User Defined Conversions

Lecture Notes #9: Friends, Nesting, Static Members

Lecture Notes #10: Template Functions

Lecture Notes #11: Template Classes

 

 

Winter 2006 Web Materials

 

The handouts and assignments for Winter 2006 are:

 

Syllabus:           CS202 Winter 06 Syllabus

Course Outline:      CS202 Winter 06 Course Outline

 

Style Sheets:      CS202 Winter 06 Style Sheet, C++ Style Requirements

Cover Sheet:      CS202 Winter 06 Program Cover Sheet

 

Program #1: CS202 Winter 2006 Program #1

Program #2: CS202 Winter 2006 Program #2

Program #3: CS202 Winter 2006 Program #3

Programs #4 and #5:      CS202 Winter 2006 Progs #4 and #5