Consequences of Computing:
A Framework for Teaching

Introduction - Page 2 of 36

Ethical and Social Questions Facing the Practicing Computer Scientist

Consider these questions that have recently come up among practicing computer scientists:
  • Who should be accountable when medical software contains bugs that result in the deaths of several patients? [25]
  • When an impostor on a BBS creates significant violations of trust, is his behavior mitigated by the fact that some therapeutic good was also achieved? [27]
  • When a multi-million dollar software project is behind schedule, should technical staff who doubt that it can be effectively rescheduled and completed inform the client organization? [40]
  • Should there be any limits to the extent that the managers and owners of private firms can examine the detailed movements of their employees? [9]
  • To what extent should employees or managers anticipate the possibility of ailments from intensive computer use, such as repetitive strain injuries, and who is most responsible for taking preventive measures? [28]
  • To what extent are computer scientists morally responsible for anticipating and publicizing some of the problems, as well as the social good, that could result from the implementation of a system they have designed? [40]

All these are questions about computing, its context, and its consequences, that practicing computer scientists have had to answer in recent cases, and are only a small sample of the issues facing practicing computer scientists every day. Rigorous training in mathematical theory and computational technique does not provide students with the skills they need to face these particular questions. In both practice and curriculum, technical topics are in the forefront and are the basis for most of the training that computer science professionals receive. However, as we have made clear here, and as others have argued [30, 36, 38, 48, 53], there are significant questions of everyday practice that technical training does not address.

These social and ethical questions are most likely to surface when there is disagreement between parties about the implications of using a particular technical approach or process [30]. For example, when a client and a contracting firm disagree about the need for security, or when different units of an organization disagree about the best process for installing and implementing a product. When confronted with their supervisor's disagreement about ethically appropriate behavior, many computer professionals do not have much knowledge or skill to allow reflection. The young computer scientist caught in such a disagreement often has little understanding of the issues involved or of how to begin thinking carefully about the choices that confront him or her.

No training can provide easy or algorithmic answers to these questions, but students can at least be led to expect their appearance and to become competent in the skills and principles needed to think clearly about them. Students who are not trained to think about the ethical and social implications of their work may find themselves at a disadvantage when faced with these questions. There is a clear need for a careful and critical examination, at the undergraduate level, of the ethical and social issues surrounding the design and use of computers.

The importance of grappling with these questions has been underscored by Curricula 1991 which calls the "Social, Ethical, and Professional Issues" one of the subject areas in its common requirements for the undergraduate computer science curriculum. However, there is very little guidance in the report for those who would teach this subject area, and even less help from other recommended curricula [1, 11, 12]. What guidance there is in Curricula 1991 is in the form of a high-level framework for teaching in the area, rather than recommendations for specific content or pedagogy.