Implementing the Tenth Strand - Page 13 of 18

In many programs these requirement can best be accomplished in a separate course required for all CS majors. A weakness of such a course is that it requires that only one faculty member be familiar with the thrust and content of the material. In other programs, however, teaching the new subject area can be accomplished by developing a set of modules to be included in other CS core courses. This approach will work if there are enough faculty members committed to including the material as a significant part of their CS courses. Both strategies are recommended and will be described in this report. If only one strategy is possible, the integration of social and ethical issues into existing courses is the preferable option.

Implementation Strategies for the New Requirements

The strategy chosen by a particular program to implement this new subject area should be pedagogically driven. It should fit into the rest of the program in an integrated fashion so that the relationship between the knowledge units in this area and the rest of the curriculum is apparent to students. The five knowledge units above can become part of a computer science curriculum in many different ways. In this section we describe three ways:

1) including all five knowledge units into a course dedicated to computer ethics and professional issues [4];
2) including individual topics and activities from the knowledge units in existing courses, integrating the computer ethics by focusing on examples and motivation from the subject areas important to the course[5]; and
3) including several of the knowledge units into a "capstone course," a senior level project course that emphasizes skills and knowledge required for becoming a responsible computer professional[2].

This list of three strategies is neither exhaustive, nor mutually exclusive. However, it does reflect three strategies described in computer science education literature.

A Course Dedicated to Computer Ethics and Social Impact: Some schools have a course for either computer science majors or for the general student population dedicated to computer ethics or computers and society, or technology issues [4]. Such a course could comfortably include the lectures and labs described in the five knowledge units. More hours could also be added that include in-depth study of several case studies or emerging technologies and their ethical significance.

Integrating Ethics and Social Impact into Existing Courses: A faculty member can advance students' learning about computer ethics by including topics and activities from the knowledge units into more traditionally technical classes[5]. A lecture about testing can be enlivened by a discussion about human costs that should be considered while deciding how long to continue testing. These costs are often ignored by developers. Ethical issues can be described in conjunction with a programming assignment. For example, students could be asked to prioritize a list of organ transplant candidates. The students would have to program and justify a priority scheme of their own choosing.

Ethics and Social Impact in a Capstone Course: A project driven course is an ideal place to include professional and ethical issues[2]. The course can be a senior practicum, software engineering project course, or an ethics course directed at seniors. The ethical issues arise from two source in these courses: either within the various responsibilities at each stage of the software development life cycle or from more general professional obligations. The general structure of such a course is to have the class form project teams to work on large projects.

One useful technique in this course is to ask students what they think of taking a particular approach to a project. They are asked to write a one page paper and bring it to the next class. The sense of professional obligation to quality products and to fellow software developers can be emphasized. These issues are important to industry. Another strategy is to have students develop a Social Impact Statement, similar to an Environmental Impact Statement, in which students think and write about the social context in which the project is (or might be) embedded and to evaluate how that context effects the performance of the product.