Object-Oriented Programming
Midterm Study Guide
Dr. Xiao
(Monday, 10/20/08, in classroom, close book)
Coverage: Everything in Introduction, History, C++0, C++1, C++2,
C++3, DesignPatterns1, DesignPatterns2, and the three assignments.
Types of Questions: What? (Principles) and How?
(Practice: analyze requirements, design systems, read and write
code).
Major Issues in OOA/OOD/OOP fundamentals (non-exclusive):
- baseball model
- spiral cycles
- three pillars of OO
- object relationships
- code
reuse: source code, binary code, static, dynamic, distributed,
object-oriented, across platforms, across programming languages, and
across the Internet.
Major Design Patterns:
- interface
- iterator
- MVC
- command
- state
- application framework /
template method
- strategy
Major Issues in C++ (non-exclusive):
- write, compile and run a
simple C++ program
- encapsulation and access
controls
- inheritance and composition
- polymorphism
- virtual function
- pure virtual function
- binding
- typecast
- abstract class
- pointer and pointer arithmetic
- array
- memory layout
- stack and heap
- call-by value, reference,
pointer
- command-line arguments
- makefile
- EDP
- GUI
Sample Questions:
- What is inheritance? What is
it for?
- Given specifications, design
a system by following a given design pattern.
- Implement a designed system
using C++ (similar to what you did in the programming assignments).
- Given a C++ code, describe
what it does.
- Draw a picture to show the
memory structure and the output of a given program segment.