INTRODUCTION

Computer Science has advanced rapidly in the last several decades, and this advance has necessitated the continual revision of the curriculum in an evolving discipline. Not only have new areas of interest been added, but new approaches have influenced the ways we think about established areas in computer science. One of the fundamental changes in computer science in the last decade is the realization that the context in which technology is used must be taken into account in its design, partly because of the ethical implications of its use, and partly because understanding the context of use helps inform and improve the design [6, 30, 37, 48, 58]. This recognition is included as one of the foundational principles in Curricula 1991 [53], and has been a part of curriculum standards for over a decade [1, 11]. Thus, as a part of the natural evolution of a maturing discipline, the social and ethical context of the discipline has been included in its basic undergraduate curriculum.

Why should this be so? The authors cited above agree in their reasoning for teaching the ethical and social issues in computing. Computing is an enterprise that is neither simply mathematical nor simply practical; it is a mixture of both. Curricula 1991 recognizes this by using a definition of the area that emphasizes the mathematical, scientific, and engineering roots of the discipline. Mathematics helps to determine the most efficient algorithms for any set of inputs, but are not central in solving the issue of how best to display the output of that algorithm to a variety of users. We can quantify the complexity of a procedure, but this quantification by itself does not resolve the need for a judgment of the risk involved in using that procedure in a particular application. We can mathematically describe the state of a machine, but if we want to make claims about its effectiveness in use, we also need to understand the situation in which that machine will be used. Thus the actual practice of computing involves judgments about computers in use, and these judgments require knowledge and skill in the ethical and social context of computing.

A concern with computers in use is reinforced by the recognition that most Computer Science majors expect to use the skills they learn as students in jobs in industry. Thus, from their perspective, an emphasis on computers in use is quite practical. It prepares them to use their technical training in the context of the world in which they will be working. Computer scientists in industry regularly face issues that call for professional judgment, and often that judgment cannot be rendered in precise mathematical terms.