Already in this course, we have seen several such strategies and use a variety of language capabilities. Solutions can be built up using a sequence of procedures , where each procedure accomplishes a relatively simple task. Local variables and parameters allow work within a procedure to focus on a narrow, tightly controlled task even if the procedure will be used within a more complex problem. Using recursion , processing can focus on relatively simple base cases and the reduction of complex cases to simpler ones. Data abstraction allows data to be viewed in logical groups and structures, such as lists, vectors, association lists, and records.
Libraries allow commonly used operations to be developed once and reused in other applications.
Each of these topics allow us to organize a complex problem or task into relatively manageable parts and then to focus on those parts. For example, association lists allow a natural matching of keyword and data, so we can focus upon the storage and retrieval of these information pairs. The assoc procedure retrieves relevant data, and we need not be bothered about the details of this retrieval. Similarly, the records lab shows how to think of data elements as part of a logical structure, with natural storage and retrieval operations. Identify how you have used each of the above approaches or capabilities in the solving of at least two specific problems during this course.