MCIS 625: Computer Graphics
Winter 2004
SAMPLE PAPER PROPOSAL
Instructor: Dr. Michael Laszlo
Title: Procedural Abstraction
1 Introduction
Procedural abstraction views a procedure as an abstract operation, a "black box" that maps inputs to outputs and side-effects. This paper examines procedural abstraction, and develops basic concepts for describing abstract operations. It then discusses two disciplinesprocedural decomposition and recursionmade possible by treating procedures as abstract operations.
2 Abstract Operations and Procedures
Procedural abstraction views a procedure as an abstract operation, a "black box" that maps inputs to outputs and side-effects. This section presents basic definitions, and discusses how procedures are naturally viewed as abstract operations.
3 Preconditions and Postconditions
An abstract operation can be described formally by specifying its preconditions (obligations on the operation's clients) and postconditions (obligations on the operation, assuming its preconditions are satisfied). Along with presenting these concepts, this section provides several examples of abstract operations described in terms of preconditions and postconditions.
4 Procedural Decomposition
Sections 4 and 5 describe two time-honored disciplines made possible by the use of procedural abstraction. Under procedural decomposition, a problem is decomposed into a hierarchy of subproblems, and the solution to each subproblem uses the abstract operations available at the hierarchy's next lower level. The example presented in this section involves sorting and printing a list of numeric program arguments.
5 Recursion
Under recursion, a procedure is implemented in terms of the same abstract operation it represents, so that it may call itself to carry out the operation. The examples presented in this section are a recursive selection sort and the factorial function.
6 Summary