Modules for Specific CS Core Courses
For some CS programs it will appropriate to integrate the ES KU’s across the curriculum by incorporating ES learning modules into the other CS core courses. This section presents examples of modules that can be incorporated into five of the typical core courses in computer science. Each module contains material for about one week of work in the given course.
B.1 Module for the CS1
Legal Issues and Ramifications: This module is designed to be included in the first of a sequence of two introductory computer science courses, such as CS1. It presents three formal ethical models. It emphasizes the ethical and legal aspects that may arise in a career in computer science. It introduces the concepts of fair use, and intellectual property. The major laws that apply to the computing profession are introduced. A distinction between ethical and legal is offered.
Learning Objectives:
1) To provide examples of three ethical models upon which students can base ethical decisions and to identify ethical issues that they might encounter as computer professionals.
2) To provide an opportunity for oral expression of ideas and opinions.
3) To provide an opportunity for written expression of ideas and opinions.
Recurring Concepts: conceptual and formal models, consistency and completeness, tradeoffs and consequences
Lecture Topics (3 hours minimum)
Ethical models: Bentham's Utilitarianism, Kant's Moral Imperative, Rawles' negotiation of social contracts.
Identifying ethical issues in concrete situations and applying ethical codes.
Intellectual property including copyright, patents, trademarks, and trade secrets.
The Concept of Fair Use.
Computer Regulatory Measures/Laws
Writing assignment: Write a three to five page report, with references, on a recent case related to computer technology that brings up the issues of ethics, fair use, trade secrets, or copyright, etc. Describe the facts, and include the legal conclusion that was reached.
Suggested Laboratories: (2 hours)
Discussion activity: Give the students a scenario to analyze using two of the ethical codes presented above. Have them discuss how one might be more appropriate than the other in making decisions and drawing conclusions.
Debate: Using one or more of the ethical models, take a recent example of a noteworthy legal case and argue it on ethical rather than legal grounds. Discuss the difference.
Student-Developed Computer Access and Usage Policies: Projects that students have found interesting include the development of a computer access policy for a university or the development of a computer ethics policy for a campus. One group can be assigned the task to develop the policy from the perspective of the college administration and the other group assigned the task to develop the policy from the perspective of the general student population. These policies should include prohibited actions and specific sanctions for violations of the policy.
B.2 Module for CS2
Historical and Societal Context of Computing: This module is designed to be included in the second of a sequence of two introductory computer science courses, typically CS1 and CS2. It stresses the historical development of computer technology and its impact on society. A definition of computing as a profession is offered. Classes are encouraged to develop guidelines that are related to ethical issues and professional responsibilities that might confront them as computing professionals. Methods and values that they share with other scientific and engineering disciplines are discussed.
Learning Objectives:
1) To provide an understanding of the impact of computer technology on society, develop a code of ethics for computing professionals by presenting codes of ethics of other professionals.
2) To provide an opportunity for oral expression of ideas and opinions.
3) To provide an opportunity for written expression of ideas and opinions.
Recurring Concepts: complexity, tradeoffs and consequences
Lecture Topics (3 hours minimum)
History of the development of computer technology.
Impact of computer technology on society.
Definition of computing as a profession.
Codes of ethics and professional responsibility for computing professionals.
Comparison and contrast of computer science with other scientific and professional courses of study.
Writing Assignment: Superimpose a time line of computing on top of some other recent technology such as airplanes, automobiles, television to show the rapid development and dynamic leaps in computing technology.
Suggested Laboratories: (2 hours)
Discussion activity: After having each student characterize their own personal ethics as relates to their family, religion and cultural background, have small groups collaborate in producing a list of ethical situations relating to computer use/technology with which they as employees/employers might be faced. Identify the stakeholders, winners and losers.
Discussion activity: Have students develop a framework for laws against computer trespass or laws against "software lemons" similar to laws which protect consumers against defective automobiles.
Debate: In a classroom discussion, draw up some guidelines that might be followed by computing professionals. Consider whether or not computing professionals need a formal statement of ethics and/or a regulatory body as is found in other professions (such as medicine, law, counseling by a therapist)
B.3 Module for Software Engineering
Risks, Liabilities, and Bias Considerations: This module emphasizes the risks inherent in any software application. It looks at misuse and misunderstanding as well as developer bias. An empirical study of the evaluation of a piece of software is included to sensitize students to identifying and eliminating bias during the design phase.
Learning Objectives:
1) To sensitize the software developer to the kinds of biases present in each of us that could be passed on to the software we develop, and to point out innate risks in software applications.
2) To provide an opportunity for oral expression of ideas and opinions.
3) To provide an opportunity for written expression of ideas and opinions.
Recurring Concepts: complexity of large problems, consistency and completeness, security, tradeoffs and consequences
Lecture Topics (3 hours minimum)
Types of risks: bugs, misuse, misunderstandings, security, privacy, etc.
How social context influences the development and use of technology.
How technology embodies the values of the developers.
Identifying bias in software and designing to eliminate it.
Writing Assignment: Write a three to five page paper, with references, that documents the misuse, bugs or security breaches of some software. Indicate the consequences that resulted from this problem.
Suggested Laboratories: (2 hours)
Discussion: Have small groups of students choose a piece of software to which they have access and evaluate it with respect to the values of the developers, biases, and social influences in it's development.
Empirical Study: Working in teams, produce an evaluation form that can be used to rate the various social issues (i.e. gender bias, cultural bias, etc.) that may be embedded in a piece of software. Have several other students, not necessarily CS majors, evaluate the software using the form. Draw some conclusions from the data collected with the form.
B.4 Module for Database and Information Retrieval
Liability and Privacy: The kinds of risks that are intrinsic in the development of any computer application and how these risks can be taken into account during development are discussed. Risks include software or hardware bugs, unforeseen user interactions, security risks, violations of privacy, unethical uses, and inappropriate applications of the system.