# Thomas C. McMillan

• Citations Per Year
• SIGCSE
• 1988
This paper describes an exercise which has been used in both CS1 and CS2 courses for the purpose of introducing the concepts of recursion and stacks, and for illustrating the benefits of procedural abstraction. The problem is to write a program which finds a path through a rectangular maze. The exercise is used in CS1 as part of an introduction to(More)
In elementary probability and statistics classes, a common example is the “Birthday Problem”: In a group of people, what is the probability that at least two people have the same birthday? After the probability has been calculated, it is natural to look for a match by having students announce their birthdays one by one. A question that arose in my class (in(More)
• ACM Conference on Computer Science
• 1989
Assume that uniform hashing is used to post items into a table with &#60;i>m&#60;/i> rows. For any &#60;i>n&#60;/i> such that 0 &#8804; &#60;i>n&#60;/i> &lt; &#60;i>m&#60;/i>, let &#60;i>E&#60;/i>&#60;sub>&#60;i>n,m&#60;/i>&#60;/sub> represent the expected number of probes needed to post the (&#60;i>n&#60;/i> + 1)st item. Clearly,(More)
• ACM Conference on Computer Science
• 1989
We consider, in this paper, various algorithms which are known to sort an array in &#60;i>O&#60;/i>(&#60;i>n&#60;/i>&#60;sup>2&#60;/sup>) or &#60;i>O&#60;/i>(&#60;i>n&#60;/i> log &#60;i>n&#60;/i>) time. Since the analysis of an algorithm may indicate its &#60;i>average&#60;/i> performance, it is desirable to identify conditions which would indicate that a(More)
• SGCS
• 1987
This paper describes a simpl e graphics package which can be used as th e basis for several programming exercises i n CS1 and CS2 courses . The graphics package is a collection of Pascal procedures whic h controls the image on a graphic display system . It is a "turtle graphics" syste m similar to the graphics systems found i n many implementations of LOGO(More)
• SIGCSE
• 1987
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)
• SIGCSE
• 1990
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)