A course for the nonmajor: teaching collaborative problem solving via the classical computer science space-time tradeoff

Stewart A. Denenberg · 1990

Too often the department of Computer Science's service course is limited to either the major course itself or some course about computer science. While the former is usually much too demanding for nonmajors, the latter never fully allows the student to design, debug and actually run the solution to a complex problem on a computer. We propose a course which includes the use of a friendly but nontrivial programming language (Logo) coupled to a problem set which demonstrates the efficacy of top-down design as a problem solving technique.The paper describes a four-part curriculum unit based on an “Alphabet” programming project. In this Alphabet Project, student groups design and implement an alphabet of letters that are to be drawn on the screen via Turtle Graphics in Logo. The end result of the project is to make the Turtle trace out variable-sized letters on the screen as the associated keys on the keyboard are pressed. While the instructor supplies the driver program, the students work together to determine a reasonable set of “core shapes” which can be used to assemble each letter of the alphabet. Throughout the four parts of the project design is constrained by assigning “costs” to the memory space and execution time associated with the procedures which draw the core shapes and the letters. Some lively discussions develop around the ideas of primitives and parsimony that are surprisingly similar to those in an upper-level computer science class in programming language design.

Read the paper · More papers on PaperTik