In response to the ACM/IEEE Computing Curriculum 1991, and its inclusion of social and ethical isues in computing in the core computer science curriculum, the National Science Foundation (NSF) funded ImpactCS in 1994. The ImpactCS project brought together a panel of 25 experts in the area to define the core content and tools for integrating social and ethical topics across the computer science curriculum.
The ImpactCS project produced three reports, each report further defining the roles of ethics and social issues in the new computer science curriculum:
Visit the ImpactCS website sponsored by The George Washington University.
ImpactCS integrates the complementary disciplines of philosophical ethics and social science. Instead of suggesting that students learn each discipline separately, ImpactCS recognizes that from the perspective of computer science, every ethical issue about a technology is located at a particular level of social analysis.
Most of the standard topics that instructors already associate with the area will be found here. The intersection of many topics are also suggested by this framework. The framework will provide the sort of comprehensive, conceptual overview that the field has been lacking until now.
Only an analysis that takes account of at least three levels of social analysis--the individual, the group, and the national--can adequately represent the issues as they concern computer science in practice. For this reason, careful attention to the individual, the group, and the national context is required for a good understanding of any issue.
The Second ImpactCS report produced a set of five knowledge units that allow different institutions and programs to package this subject matter in different ways. A knowledge unit defines a collection of subject matter that is so fundamental to the designated subject area that it should occur in every undergraduate curriculum.
The five fundamental knowledge units of Ethical and Social Impact of Computing are:
In introductory computer science courses, students are introduced to these issues and convinced of their complexity and importance. In some programs, this introduction may only be possible at the level of the "user" of a technology (e.g. how do I avoid viruses?) but it should still begin involving students in the process of thinking carefully about these issues.
Technical courses in database design, human computer interaction, operating systems, algorithms, etc. can incorporate ethical and social issues into their lab work. This can range from the simplest inclusion of real-world ethical material in a programming example to requirements that major class projects include an analysis of the social impact and ethical import of their work.
Many other areas of computer science are woven into the curriculum in this manner and gain their strength from repeated and varied emphasis. Ethical and social issues can and should be scattered through the laboratory curriculum in a similar manner and associated with regular work of computing design.
A concentrated course in ethical and social issues in computing can ask students not only to consider the issues but to apply the lessons learned in the simple exercises to full-blown class projects. These goals can be accomplished by requiring students to participate in teams to do a Social Impact Statement (SIS) or by including an SIS as a part of the senior project.