The methodology we have presented follows these steps:
cond
's
cond
's, functions, etc as needed
One thing notable about our examples is that they fail to emphasize the importance of testing. In reality, we require our students to generate test cases before starting to write the code, working purely from the data definitions. (This prevents the all-too-common error of biasing the tests according to the actual code structure.) Second, the tests help decide what the outputs should be at each stage. Finally, the tests are used to validate the solution.
This approach has many benefits over traditional approaches to teaching program design.
This is only the first of a sequence of design methodologies which deal with other data structures that have different definitions. Eventually, the methodology scales to all the data and operations found in traditional programming languages. Thus, it is language independent.
PLT / scheme@cs.rice.edu
Last modified at 23:42:13 CST on Sunday, February 08, 1998