CSIS 370 - Object-Oriented Programming

Course Description

This course covers the fundamental concepts of object-oriented programming languages, including data abstraction and typing, class inheritance and generic types, prototypes and delegation, concurrency control and distribution, object-oriented databases, and implementation. Object-oriented solutions will be developed in one or more high-level object-oriented programming languages.

Instructor

Dr. David M. Hansen

Texts

Required
  • Fowler, Martin. UML Distilled. Reading, Massachesetts: Addison-Wesley, Inc.
  • Weiss, Mark Allen. C++ for Java Programmers. Upper Saddle River, NJ: Prentice Hall.
Recommended
  • Schildt, Herbert. C++ The Complete Reference. McGraw Hill Inc.

Objectives

This course explores the object-oriented programming paradigm in detail. Object-oriented programming is a shift in the way programs are design as well as implemented. Thus:
  • Students will understand the difference between traditional "structured programming" design and implementation and object-oriented design and implementation. Specifically, students will understand and be capable of appropriately using:
    • Classes
    • Objects
    • Messages (aka methods)
    • Inheritance
    • Polymorphism
    • Genericty
  • Students will be familiar with an object-oriented design methodology (e.g, the Unified Modeling Language - UML).
  • Students will utilize one or more "object-oriented" programming languages to develop object-oriented solutions to programming problems.

Course Organization

Object-oriented programming is both a way of thinking and conceptually designing software, as well as a programming methodology. Thus this course will devote an equal amount of time to understanding the object-oriented design paradigm and object-oriented programming. A well-designed object-oriented model is easily translated into any number of programming languages that support object-oriented concepts while a poorly-designed model can result in endless difficulties regardless of the power of the implementation language or the skill of the programmer.

The course will include regular homework and programming assignments (please see my comments on collaboration and programming). There will be NO CREDIT given for late assignments (without an official excused absence) - turn in as much as you can.

Reading assignments should be completed before the lecture covering the material. Not all reading material will be covered in the lectures, but you will be responsible for the material on homework and exams. Quizes over the assigned reading may be given at any time.

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please contact the Disability Services Office as early as possible so that your learning needs may be appropriately met. You will need to provide current documentation of your disability to the Disability Services Office. For more information, go to ds.georgefox.edu or contact Rick Muthiah, Dean of the Center for Teaching and Learning (ext. 2314)

Grading

Grading Scale

The final grade will be based on:

Tentative Schedule

Lectures Topic Reading


UML C++
1 Introduction

6 Introduction to C++
1-3, 11, 12
2 Introduction to OOP and UML 1 (skim 2)
3 Class Diagrams 3 (skim 4)
2 Object Interaction 4, 9
2 Class Relationships 5
9 C++ Implementations
4-6
2 Collections
10
4 Exception Handling
8
3 Templates
7
3 C++ I/O
9
3 Design Patterns

2 MVC

This page was last updated .
For questions or comments about this page, please email the webmaster.