This page describes a proposal that has been funded by NSF, DUE-0088769.
Work began in June, 2001.
As part of the grant I developed a course,
Experimental Techniquest for Computer Science Majors,
which was taught in Spring 2003.
I have also developed some
tools.
Experimental exploration, the centerpiece of the traditional scientific method, can provide new insights, eliminate unproductive approaches and validate theories and methods. While undergraduate computer science majors may take a laboratory science as part of their general education requirement, few computer science programs provide students with empirical experience in their discipline. This proof-of-concept Educational Materials Project will develop curriculum and supporting materials for a course in experimentation for senior computer science majors. Experimentation in Computer Science: A Capstone Course will provide students with opportunities to explore issues experimentally, design realistic experiments, collect data and draw conclusions based on the results. Assumed background will be single variable calculus and computer systems experience typical of students who have taken undergraduate operating systems and computer organization courses.
The course materials will be centered around a textbook that has two types of chapters, content chapters that develop experimental design concepts and project chapters that apply these concepts to particular problems. The project chapters will be in the form of paper case studies or simulation.
The paper case studies will examine an experimental problem that has been addressed in the literature and analyze how concepts developed in the content chapters were applied in the selected paper. An annotated version of the actual paper will be available, but the paper will be summarized with peripheral ideas removed in the textbook version. This approach will provide a much needed introduction to computer science research in the undergraduate curriculum.
The most extensive projects will be based on simulations of different aspects of computer system performance, because this venue allows the student the most flexibility in forming and testing hypotheses. Interactive simulations will be written in Java and be runnable through a standard browser. In a typical project, students would form a hypothesis, make a prediction, design an experiment, collect data, and analyze the results.
The goals of this proof of concept project are threefold. First, to produce a draft of a textbook. Secondly to identify about a dozen interactive simulations and papers from the computer literature that can be used for the case studies. Thirdly, to develop a sufficient number of these projects to offer a prototype course. The most time consuming part of this process will be the development of the simulations. Tools produced from previous work will expedite this development.
The individual projects could be used by themselves to supplement the material in a traditional computer science course or used together with the textbook in a separate course in experimental design and analysis. The materials will be disseminated through presentations and workshops at computer science conferences and via the web. If the proof-of-concept is successful, the remaining projects will be developed and a full textbook will be produced and published along with a CD-ROM containing the simulation software.
Here is the description for the proposal.
Full proposal (PDF, 1 Meg)
Proposal without figures (PDF, 100K)