An object-oriented simulation (OOS) consists of a set of objects that interact with each other over time. This paper provides an introduction to the fundamental OOS design elements by contrasting OOS with its procedural counterpart. It further addresses the important issue of composition versus inheritance that distinguishes object based from object-oriented languages.