Thomas C. McMillan

Learn More
This paper describes a programming exercise developed and used in CS2 classes to help introduce recursive programming. Providing a set of primitives which comprise a graphics system allows the students to focus on top down design and the nature of recursion, rather than on implementation details. The exercise entails drawing approximations of fractals by(More)
This paper presents the results of a study which examines the effect of a program's structure on its clarity. In the study, subjects were given three programs written in a tiny algorithmic language. Each program was designed to print one of a set of strings which is determined by a regular expression encoded within the program. The syntax of the tiny(More)
Turbo Pascal has features which make it a good tool for introducing important concepts in CSl and CS2 classes. These concepts include procedural and data abstraction , informa.tion hiding and data encapsulation. In this paper we discuss abstract data types and those features of Turbo Pascal which can be used to implement abstract data types. We also discuss(More)
We consider, in this paper, various algorithms which are known to sort an array in <i>O</i>(<i>n</i><sup>2</sup>) or <i>O</i>(<i>n</i> log <i>n</i>) time. Since the analysis of an algorithm may indicate its <i>average</i> performance, it is desirable to identify conditions which would indicate that a(More)
In this paper we present, by way of an example, techniques for using the independently compilable units of Turbo Pascal 4.0. (Turbo Pascal is a Pascal compiler available from Borland International.) We suggest ways that units can be used to illustrate software engineering principles, including information hiding, modularity, and procedural and data(More)
This paper describes a programming project used in CS2 classes to introduce trees as an abstract data type. The student is required to manipulate tree structures with a set of primitive functions supplied by the instructor. The student does not have access to the implementation details of these primitive functions, and is initially required to complete a(More)
  • 1