Related Papers


Teaching Empirical Skills and Concepts in Computer Science using Random Walks

Grant Braught

Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education,
SIGCSE Bulletin 37(1), 2005

An argument is made for integrating the study of empirical skills and concepts into the computer science curriculum. With reference to past work an incremental approach is advocated for the study of these skills and concepts. A unique assignment that exemplifies the advocated approach is presented. This assignment, based on the study of random walks, is intended to introduce empirical investigation as early as is possible, during the first week of the first course. Two extensions to this assignment, one for the first course and one for a programming languages course, are discussed and used to illustrate the advocated incremental approach.


Core Empirical Concepts and Skills for Computer Science

Grant Braught, Craig Miller and David Reed

Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education,
SIGCSE Bulletin 36(1), 2004

Educators are increasingly acknowledging that practical problems in computer science demand basic competencies in experimentation and data analysis. However, little effort has been made towards explicitly identifying those empirical concepts and skills needed by computer scientists, nor in developing methods of integrating those concepts and skills into CS curricula. In this paper, we identify a core list of empirical competencies and motivate them based on established courses outside of computer science, their potential use in standard CS courses, and their application to real-world problems. Sample assignments that integrate these competencies into the CS curriculum are also discussed.


Relating Theory to Actual Results in Computer Science and Human-Computer Interaction

Craig Miller

Computer Science Education, 13(3), 2003

Computer science educators are increasingly adding components that compare theoretical predictions to empirical results. If we are interested in better integrating Human-Computer Interaction (HCI) concepts into a computer science curriculum, we might look at HCI lessons that draw upon the same set of practices. With this aim in mind, I present a lesson that uses Card, Moran and Newell's Keystroke Level Model and discuss the benefit of asking students to compare its theoretical predictions with empirical results from informal usability tests.

  • Full text available by contacting the author.


The Use of Ill-Defined Problems for Developing Problem-Solving and Empirical Skills in CS1

David Reed

Journal of Computing Sciences in Colleges, 18(1), 2002

Education research has shown that an effective technique for developing problem-solving and critical-thinking skills is to expose students early and often to "ill-defined" problems in their field. An ill-defined problem is one that addresses complex issues and thus cannot easily be described in a concise, complete manner. Furthermore, competing factors suggest several approaches to the problem, requiring careful analysis to determine the best approach. This paper describes a specific ill-defined problem that was successfully used as an assignment in a recent CS1 course. In completing this assignment, students actively participated in the entire process of problem solving and scientific inquiry, from the formulation of a hypothesis, to the design and implementation of experiments (via a program), to the collection and analysis of the experimental data. As a result, students developed empirical and critical-thinking skills, while also experiencing the use of programming as a tool for investigative inquiry. Experiences using this particular assignment will be discussed, as well as general approaches to identifying ill-defined problems and integrating them into a CS1 course.


Disequilibration for Teaching the Scientific Method in Computer Science

Grant Braught and David Reed

Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education,
SIGCSE Bulletin 34(1), 2002

We present several introductory computer science laboratory assignments designed to reinforce the use of the scientific method. These assignments require students to make predictions, write simulations, perform experiments, collect data, analyze the results, and possibly revise their predictions, simulations and/or experiments. The assignments are specifically designed to place student predictions in conflict with the observed results producing a disequilibration. As a result, students are encouraged to rethink their assumptions, perform repeated experiments, and critically examine their code. These potential benefits of disequilibration are discussed and additional ways to apply disequilibration in computer science education are suggested.


The Knob & Switch Computer: A Computer Architecture Simulator for Introductory Computer Science

Grant Braught and David Reed

ACM Journal of Educational Resources in Computing, 1(4), 2001

The Knob & Switch Computer is a computer architecture simulator designed to teach beginning students the basics of computer organization. It differs from existing simulators in two significant ways: (1) it incorporates "cognitive hooks" in the form of knobs and switches that encourage exploration and discovery on the part of the student, and (2) it can be presented one component at a time, starting with a simple interactive data path and building incrementally to a full-featured stored program machine. Both of these features make it possible to engage beginning students and effectively convey an understanding of how computers work. The Knob & Switch Computer Simulator can also motivate the study of other computing topics such as data representation, assembly language programming, and RISC vs. CISC architectures. In addition to describing the Knob & Switch Computer, experiences using the simulator in breadth-based introductory courses both at Dickinson College and Creighton University are discussed.


Developing Empirical Skills in an Introductory Computer Science Course

David Reed

Proceedings of the 34th Midwest Instruction and Computing Symposium, 2001

This paper describes an introductory computer science course that emphasizes empirical skills as well as programming and computer science breadth. Designed to attract both non-majors and potential computer science majors, the course utilizes JavaScript in a Web-based environment, allowing students to learn the basics of programming quickly and also to take advantage of familiar and intuitive GUI interfaces. In completing online laboratory assignments, students study interdisciplinary applications and learn to form testable hypotheses, design and conduct experiments, and analyze the results. Through interdisciplinary examples and experimentation, students not only develop critical thinking skills but also learn to apply computing to other areas of study.


Empirical Investigation throughout the CS Curriculum

David Reed, Craig Miller and Grant Braught

Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education,
SIGCSE Bulletin 32(1), 2000

Empirical skills are playing an increasingly important role in the computing profession and our society. But while traditional computer science curricula are effective in teaching software design skills, little attention has been paid to developing empirical investigative skills such as forming testable hypotheses, designing experiments, critiquing their validity, collecting data, explaining results, and drawing conclusions. In this paper, we describe an initiative at Dickinson College that integrates the development of empirical skills throughout the computer science curriculum. At the introductory level, students perform experiments, analyze the results, and discuss their conclusions. In subsequent courses, they develop their skills at designing, conducting and critiquing experiments through incrementally more open-ended assignments. By their senior year, they are capable of forming hypotheses, designing and conducting experiments, and presenting conclusions based on the results.