Object Oriented Software Design

Course Description

Object Oriented Programming (OOP) is a paradigm that allows us to write programs by objects and their interactions. This course introduces the fundamental concepts of OOP, such as abstraction, encapsulation, inheritance and polymorphism, through teaching an object oriented language: Java. Some important features of Java will also be highlighted.

Course Information


Course Plan

datesyllabusplandocuments and reading assignments
02/18,02/21 Big picture of OOP/Java
02/25,02/28 Classes and Objects; no class on 02/28 because of Peace Memorial Day homework 1 announced
03/04,03/07 Classes and Objects
03/11,03/14 Classes and Objects/Encapsulation homework 1 due; homework 2 announced
03/18,03/21 Inheritance
03/25,03/28 Inheritance homework 2 due; homework 3 announced
04/01,04/04 Inheritance; no class on 04/04 because of Spring Break
04/08,04/11 (Subtype) Polymorphism homework 3 due
04/15,04/18 midterm exam on 04/15: range: AJ Chapters 1-8 (except Chapter 2) and all class slides/notes; no class on 04/18 because of Exhaustion
04/22,04/25Wrap-up and Exceptions homework 4 announced
04/29,05/02Interfaces and Swing final project announced
05/06,05/09Swing and Inner Classes
05/13,05/16Swing/Thread homework 4 due; homework 5 announced
05/27,05/30Generics/Java IO
06/03,06/06Design Patterns homework 5 due
06/10,06/13Design Patterns/Summary
Afterwardsno class on 06/17 nor 06/20; final project due with demo day on 06/25