COMP 473: Object-Oriented Programming
- Credit hours
- 3
- Prerequisites
- COMP 313. You need to have knowledge of Java, data structures, and fair sophistication with OOP - some experience with designing interacting, cooperating classes that would come in an intermediate discussion of software patterns. Software engineering is recommended but not required like the background listed above.
- Description
- Object-oriented programming has become the dominant software development paradigm of the 1990s. This course assumes familiarity with the main constituents of the object-oriented methodology:
OOP = abstraction + inheritance + polymorphism
Building on this foundation, the course studies three major topics.
- Design Patterns
- First, the course discusses patterns, reusable solutions to recurring software design problems. Common design patterns such as Composite, Decorator, and Command typically involve several classes related by composition and inheritance.
- Implementation
- Next, the course examines how object-oriented language features such as composition, encapsulation, inheritance, and dynamic binding can be implemented. These features are studied in the context of an interpreter for a simplified object-oriented language. The interpreter itself is written in Java.
- Components
- Finally, the course explores programming with reusable components. Specifically, the standard features of component architectures are discussed: properties, events, methods, and persistence, and introspection. Concretely, the course studies JavaBeans as an example of a component architecture.
- Other Information
- This course is heavily project-oriented. Students study each major
topic in the context of a substantial programming project. The reuse of
existing class libraries and software components is emphasized. The
programming projects will be conducted in the Java language.
Grading will be based upon the following components: programming projects, quizzes, in-class exams, and the final exam. - Syllabus
- Taught by Dr. Läufer in Fall 2007.

