Vous êtes sur la page 1sur 5

Effective Incorporation of Ethics into

Courses that Focus on Programming


Mary Elaine Califf Mary Goodwin
Illinois State University Illinois State University
School of Information Technology School of Information Technology
Normal, IL 61790-5150 Normal, IL 61790-5150
309-438-5203 309-438-7953
mecaliff@ilstu.edu mmgoodw@ilstu.edu

ABSTRACT at least those most comfortable with the topic). However, this
This paper discusses some of the issues involved in incorporating approach may leave students with a picture of ethics as a side
ethics material into programming courses. Incorporating ethics issue, disconnected from the main business of computer science.
into such courses raises particular challenges because of the time- In order to be done well, the ethics course should be taught near
intensive nature of the courses and because of the difficulty of the end of the students academic careers so that ethics relating to
finding material that is both relevant to the course and the advanced topics can be covered. Typically, the ethics course
comprehensible to the students. The paper presents four case is taken early on, when students do not have the understanding of
studies that we have used successfully when incorporating ethics the field needed to fully understand the ethical issues. Also, in a
material into our own programming courses. field that has many required courses, adding an ethics course
requirement might necessitate removing another required course.
Integrating ethics into a variety of courses throughout the
Categories and Subject Descriptors curriculum encourages students to see ethics as an integral issue
K.4.1 [Computers and Society]: Public policy issues ethics. in the discipline and allows for ethics issues germane to the
specific course to be covered. On the downside, instructors
General Terms pressed for time might omit the ethics unit. Without careful
Legal Aspects coordination, students might well cover the same case repeatedly
as they progress through the major. Students at universities where
multiple sections of CS1 and CS2 are taught necessitating a
Keywords number of instructors might well be exposed to entirely different
Teaching ethics, CS1, CS2. ethics cases because the instructor picks the cases. This approach
drops the burden of teaching ethics material into the lap of every
1. INTRODUCTION instructor in the program, many of whom may be quite
Since the appearance of Computing Curriculum 91[3], computer uncomfortable with these non-technical topics and may have had
science educators have been increasingly aware of the importance no training in this area. These are the instructors that we seek to
of including some coverage of the ethics of computing in our give guidance to in this paper.
curricula. The importance of ethics is also emphasized in the The authors teach in a computer science program that asks all
accreditation criteria for computer science[6]. Two major instructors to incorporate ethics modules into their courses.
approaches can be taken when incorporating ethics into the Among the courses we teach are several that we consider to be
curriculum. Some institutions take the ethics course approach programming-intensive courses, such as CS1, CS2 and
where all students are required to take a course on computer Algorithms and Data Structures. In incorporating ethics modules
ethics. Other institutions take an approach that spreads ethics into these courses, we had several goals: 1) to engage the
coverage throughout the curriculum, expecting instructors to students, 2) to leave the overall content and integrity of the course
teach small ethics modules in most, if not all, of the courses in the intact, 3) to keep the ethics content relevant to the content of the
computer science program. course, and 4) to meet the ethics requirements of the accreditation
There are clearly advantages to each of these approaches. board.
Consolidating ethics into a single course ensures that students get In this paper, we first review some of the literature on teaching
similar experiences and leaves the teaching of this material to a ethics of computing. Then we discuss some of our philosophy,
few instructors, presumably those most qualified to handle it (or what we believe are characteristics of effective (and ineffective)
case studies for ethics discussion in programming-intensive
courses. We then discuss some available material that we have
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
used in our courses and characteristics of that material that makes
not made or distributed for profit or commercial advantage and that it effective for those situations. Finally, we present four original
copies bear this notice and the full citation on the first page. To copy cases, three based on real-life situations and one that is purely
otherwise, or republish, to post on servers or to redistribute to lists, fictional, and discuss characteristics of these cases and why they
requires prior specific permission and/or a fee. are particularly effective in the courses for which they were
SIGCSE05, February 23-27, 2005, St. Louis, Missouri, USA. developed.
Copyright 2005 ACM 1-58113-997-7/05/0002$5.00.

347
2. LITERATURE REVIEW are generally the first and second, or maybe the second and third
In the past decade, there has been a definite interest in how to do courses in the major. Students dont have a lot of background in
ethics in computing curricula. The ImpactCS initiative at the field, so instructors have difficulty finding scenarios or
Georgetown University defined a set of knowledge units for activities that students can easily fully understand. Finally,
ethics coverage in computing and provided some online programming courses are usually very time-consuming courses
resources[10; 13]. Several papers were written to help faculty for many students. Students may have to spend many hours
face the challenge of adding ethics coverage to their curricula [4; outside of class trying to get programs working correctly. Class
11; 17; 18; 19]. Working groups were formed to face the time is often also at a premium. Thus, ethics activities can easily
challenges of integrating ethics and social issues into a highly become a burden on both students and instructors.
technical discipline[9]. However, the majority of the resources This brings us back to programming and a desire for ethics
were directed primarily at teaching ethics and social issues in a activities and materials that relate specifically to programming
separate course rather than integrating ethical issues into technical and that students can understand and relate to. A quick review of
courses. either the ACM Code of Ethics[1] or the Software Engineering
Among those who have looked at providing resources for helping Code of Ethic and Professional Practice[2] reveals a number of
faculty integrate ethics into their existing technically-oriented relevant issues including software safety, software quality, quality
courses, most have not paid close attention to courses focused of documentation, software correctness, and ownership of code.
primarily on teaching programming issues. The 1997 ITiCSE In searching for activities or scenarios for use in programming
working group report provides a number of interesting ethics courses, we believe that its important to address the issues raised
exercises for a variety of computing courses, but none for the earlier. Students often dont see ethics as an integral part of the
introductory programming, data structures, or algorithms discipline theyre learning. Therefore, we need to select activities
courses[9]. Bowyer also has some very nice suggestions for that are clearly relevant to the technical course content and
assignments, but none that are clearly geared toward those inherently interesting, not to us, but to our students. We need to
programming courses[4]. recognize the limitations of student background and time, and
Schulze and Grodzinsky did focus specifically on incorporating avoid using activities that require students to wade through too
ethics material into CS1 and CS2[15]. However, it is worth many complex details, or learn material that really belongs in
noting that their suggestions for CS1 have nothing to do with the later courses, just to allow them to understand the scenario theyre
programming aspects of the course. They suggest looking trying to analyze. For example, the Therac-25 accidents[12] or
primarily at computer user issues such as appropriate use of the Case of the Killer Robot[8] are interesting and valuable cases
email and internet access, because this would be most students to analyze, but probably dont belong in programming courses
first experience as computer users, particularly their first where time is at a premium. We need to make our goal the
opportunity to use email and the internet. Their CS2 suggestion selection or creation of fairly straightforward ethical scenarios
for an assignment is very related to programming. They suggest and activities that are not too extensive and resonate with the
giving a programming assignment that meets pedagogical needs, course material.
but is not a good solution from the point of view of all those
who would be affected by the software. Then students would be 4. ASSIGNMENTS THAT WORK
asked to read the CACM How Good is Good Enough? article[5] So then the question occurs, Is there anything out there that
and discuss the assignment in light of issues raised by the article. works? And the answer is a definite yes. In addition to
Townsend also suggests incorporating ethics into programming possibilities described in papers referenced above, there are a
courses by giving a programming assignment that raises ethical number of ethical case studies or scenarios available that can be
issues[17]. effective in programming courses. The key is to look for
relatively short cases that can be easily understood by the students
3. PROGRAMMING COURSES AND and have some relevance to the course material. Weve used
several existing cases successfully.
ETHICS: THE CHALLENGES
Why is there a relative dearth of material on teaching ethics in Its Never Right to Copy Software is a fictional case about a
courses that focus on programming? We can easily find ethics math teacher whose new computers will not be useful without
exercises for operating systems courses, where issues of security software, but whose principal has limited funding and sees no
and related ethical and social issues are generally considered need to purchase more than one copy of the necessary
absolutely essential to the course, or for artificial intelligence, software[16]. This is probably relevant to students in any course,
where ethical and social implications have been the subject of since it brings up issues of software ownership. It also provides
numerous movies and novels. It seems likely that people havent the chance to discuss pirated software that the students might
written a lot about incorporating ethics material into the have on their own computers. Students can be asked to view the
programming-intensive courses because its hard to do. issue from the perspective of the programmer who wrote the
software, and reminded that in a few short years they might be
We have come up with some possible reasons for the difficulty of that programmer. The Patriot missile case addresses issues of
incorporating ethics into courses that focus primarily on changing software specifications and software maintenance as
programming. First, the courses are highly technical in nature; well as testing[14]. This can lead to questions of how much
students expect the focus to be on learning how to do things. testing is enough, whether the amount of testing needed varies
Ethics are fuzzy material that faculty might view as disconnected based on the use of the software, whether programs should be
from the hardcore content of the course. Second, CS1 and CS2

348
written to just meet the specifications given, and what be bad for him to have to go home and tell his wife hed been
documentation should be included with software. fired. Deborah felt like she would be doing something
dishonest by pretending just to be interested when getting all
Despite the existence of potentially useful exercises and case
the info she could from him before he was fired. She stated
studies, it can be most helpful to create a case study more
that she did not think this was right and would prefer not to
specifically targeted at a particular course or student population.
do it. Her boss said that David deserved to be fired because
In the following sections, we present four case studies that we
his work was causing problems. Furthermore, the company
have developed and used successfully in our programming
owned the code David had written and had a right to
courses.
understand it and learn all about the code. He argued that if
David were told why he was being asked all about his code,
5. IT COULD BE YOU: CASE STUDIES he might refuse to help. He insisted that Deborah do as he
FOR CS2 asked.
These case studies are based on recent real life experiences of an Deborah did spend the afternoon talking with David and
acquaintance of the authors. The names of the company and the learned a lot. When she finished, she headed for the
people involved are changed to protect both the innocent and the bathroom down the end of the hallway. As she came back,
guilty.1 David was already at the elevator with his box of belongings,
having been fired. Deborah was quite upset about the events
Case 1: The Firing of the day!
The company
This case has been used in a CS2 course very effectively. We
Widget Products, a well-established company, decided to
generally present the case in pieces, asking students to consider
begin selling its products online. They hoped to have the
what people should do along the way and then continue telling
online site up and running by January 1, 2003.
them what really happened until the next decision point.
The individual
Deborah graduated from college and landed a job as a We believe that this case exemplifies several characteristics of
software engineer at Widget Products in the summer of 2001. effective ethics activities for programming courses. First, the case
A year later, she was established as one of the most capable is engaging. Its an interesting case with a lot of gray. There are
engineers on staff. Consequently, she was assigned to be in a number of points of view and three different people whose
charge of (responsible for) more and more code. actions can be analyzed. David is clearly in the wrong, but his
The consultant behavior patterns are some that students should recognize in
David was a software engineer hired as a consultant by themselves, so looking at his actions is valuable for that reason.
Widget Products. He was extremely knowledgeable about Deborah is easier for students to relate to than many figures
making the pieces of the program communicate with each students see in these ethics scenarios, because she is just a year
other. He was hired for four months ending December 31, out of college (we do make a point of informing students that the
2002, when the online sales site would be operational. He case is based on real life).
was a friendly, gregarious 45-year-old, recently married.
Despite his knowledge and ability, he had two problems. He This case is also very relevant to the course and very
was careless when coding, frequently committing code that comprehensible to the students. The case raises real-life issues
caused errors. As the release date neared, this became more relating to programming that are often under-emphasized in
and more problematic, as the firms engineers worked 14 hour programming courses, including the importance of maintenance
days to eliminate all bugs. David also spent quite a bit of his and bug fixes, the importance of care in coding and ownership of
time talking with others. This interfered with his productivity code. Despite raising issues that students may be less focused on,
and that of the people he was talking to. the case doesnt really get murky in terms of understanding what
The problem the issues are and whats going onthough it may be a bit murky
Two weeks before the online sales would begin, when it comes to the question of what everyone should do.
management decided to fire David. Someone in the company Case 2: The Hiring
would have to be responsible for Davids code, maintaining it
and correcting any bugs found in it, and, therefore, had to The company
know the code. Deborahs manager called her in at around Widget Products, a well established company, decided to
noon and informed her that David would be fired later that begin selling its products online. They hoped to have the
afternoon and why. She was then told that she would be online site up and running on January 1, 2003. Widget
responsible for all of his code. Therefore, Deborahs manager Products had two engineering divisions, front end and back
told her to spend the afternoon visiting with David and ask end. Front end engineers took data provided and prepared the
him all about his code. She was to learn everything she could displays to be seen on the web. The back end engineers
from David without letting him know why she was doing this. wrote code that interacted directly with the data base and did
Deborah objected. She felt that he was a nice person and the underlying coding for the ordering program.
his job would end in two weeks anyway, so he should not be The individual
fired early. He was newly married, and she thought it would Deborah graduated from college with a major in
Computer Science. She was well versed in C, C++, and Java.
1
Upon completing her interview with Widget Products, she
The four case studies presented in this paper are available at was offered a job with the front end engineering group.
http://www.itk.ilstu.edu/faculty/mecalif/Ethics/CaseStudies.htm Noticing her hesitancy, the head of engineering told her he

349
did not want to hire her if she were not excited about the job. hard code the presentation to look like what would happen if
She explained that her training was for back end work and the item in fact was operational. Sarah was asked to do some
that she knew almost nothing about the front end work, which of the hard coding. She was assured that BigCo would be
would be coded in JavaScript, HTML, XSL, C#, and several informed regarding which demo items were not currently
other languages unknown to Deborah. The engineering functional. Sarah was concerned about the ethics of the
manager explained that the firm was happy to invest the time situation. She would not be present at the presentation.
needed for her to learn the front end material. Deborah then
gladly accepted the job offer. Discussion
The problem
Deborahs first assignment was to write the code Should Sarah comply with her assignment? What is her obligation
connecting the various sources of data together and to ensure that BigCo is correctly informed of the status of various
incorporating them in graphical displays. No one in the firm tasks? What if Sarahs employer had always been honest with her
knew how to do this. She was told to find online help and in the past? What if she suspected a fudging of the truth in prior
purchase any books necessary to do the job. At the end of communications from the management? Clearly not all
three weeks, she was no closer to accomplishing the task than employees could attend the presentation in order to verify that
when she began. She was frustrated and had no one to get BigCo was correctly informed. Are there alternative solutions to
help from. Her immediate boss, the engineer in charge of the the problem?
front end, called her in for a conference. All of these cases tend to provoke good class discussion. They
raise issues that students have not considered, but that they can
Discussion understand and do see as relevant. They relate well to Sarah and
At this point the students are asked what they think will Deborah, because they easily picture themselves as recent
happen during the conference. They are asked to consult the graduates on their first jobs. The issues are comprehensible but
ACM code of ethics and professional conduct. They are asked not black and white. We find that such cases help students to
what the code has to say regarding management of employees and consider the ethical realities of their intended profession in
assignment of duties. context.

The conference
During the conference, Deborahs boss apologized for 6. WHATS THE ISSUE?: A CASE STUDY
assigning her a task that she could not do. He said his job FOR AN ALGORITHMS AND DATA
was to assign tasks that she could succeed at. He then
assigned her to a different task, and explained that the STRUCTURES COURSE
company was going to hire outside consultants to do the task The last case study is an example of a completely fictional
previously assigned to her. scenario created very specifically for use in a course. This
assignment is used in our algorithms and data structures course,
which is the first course in the students program that seriously
Case 3: The Demo examines the analysis of algorithms at all. One of the primary
The company foci of the course is on learning not only the various algorithms
MMM Software is a start up company in Silicon Valley and data structures, but also how to select the right algorithm or
that began in early 2002. Their product is a software data structure for a specific task. Therefore, we wanted students
application whose initial release was January 2003. During to have that focus reinforced in an ethics assignment. So we
the following twelve months, the US economy was poor, and created a writing assignment in which students read the following
consequently sales were slow. very short scenario and do a one-page write-up analyzing the
The individual case.
Sarah graduated from college and landed a job as a Case 4: Search Time
software engineer at MMM Software in the summer of 2002.
Sarah believed that the product was well done, and that sales Dan Johnson is a software developer working for
would pick up once the economy rebounded. Pflugerville Data Management Services (PDMS). The
The problem primary source of revenue for this company comes from
A major software development company (well call them clients storing data on servers provided by PDMS and
BigCo) became very interested in using MMM Softwares then doing searches on this data. Clients pay a monthly
product. They invited MMM Software and one competitor to fee based on the storage used for their data, and they pay
make presentations. After the initial presentation, BigCo for searches based on CPU time. Dans friend Nancy
dismissed the competitor and told MMM Software they were Greene works for one of PDMSs biggest clients, the
impressed and most interested. They gave MMM Software a Pflugerville Pflag. She has made the comment to him
100 page document containing their wish list of tasks that that the storage charges seem reasonable, but that the
they wanted MMM Softwares product to perform. MMM amount of CPU time used for searches seems excessive.
Software was invited to give a presentation to the CEO of Dan has investigated and determined that all of the data
BigCo in two weeks. is being stored in arrays and searched using simple linear
There were many tasks on the wish list that MMM search.
Software could easily incorporate in their product, but that
currently were not in the product. The decision was made to

350
We ask them a set of fairly standard questions about stakeholders, [7] DeGuere Jr., P. (Writer), & R. Hardy (Director) (2003).
ethical issues, sections out of the code of ethics that apply, Standards of conduct. In D. P. Bellisario (Producer), JAG:
possible courses of action, and so forth. Then we also ask them to Belisarius Productions.
explain why this case is relevant to the course theyre completing. [8] Epstein, R. G. (1997). The case of the killer robot: Stories
Students generally have no problem recognizing that linear search about the professional, ethical, and societal dimensions of
is, in fact, a very poor choice of algorithm, and then go on to computing. New York: Wiley.
address the issues of how Dan can bring up the problems and how [9] Granger, M. J., Adams, E. S., Bjrkman, C., Gotterbarn, D.,
the company might ensure its continued survival if it loses Juettner, D. D., Martin, C. D., et al. (1997). Using
revenue from having more efficient searches and so on. One of information technology to integrate social and ethical issues
the gratifying aspects of this fairly simple assignment is that into the computer science and information systems
students respond very well to it. Almost all of them recognize curriculum: Report of the iticse '97 working group on social
that there is a major issue here, but one they would never have and ethical issues in computing curricula. Outlook, 25(4), 38-
recognized before taking the course. They also appreciate being 47.
given a problem to grapple with that they find straightforward and
[10] Huff, C., & Martin, C. D. (1995). Computing consequences:
believable.
A framework for teaching ethical computing.
Communications of the ACM, 38(12), 75-84.
7. CONCLUSION [11] Lelewer, D. A. (1994). A seminar course in computer ethics.
We have presented some thoughts about how ethics can be
In Proceedings of the Twenty-fifth SIGCSE Technical
effectively incorporated into programming courses along with
Symposium on Computer Science Education, Phoenix, AK.
four original case studies that we have used effectively in such
pp. 253-257.
courses. We believe that the keys to success in this area are to
keep cases short and comprehensible and to make sure that they [12] Leveson, N., & Turner, C. S. (1993). An investigation of the
are relevant to both the students and the course. Therac-25 accidents. IEEE Computer, 26(7), 18-41.
[13] Martin, C. D., & Weltz, E. Y. (1999). From awareness to
8. ACKNOWLEDGMENTS action: Integrating ethics and social responsibility into the
An early draft of this paper was developed at a writing workshop computer science curriculum. Computers and Society, 29(2),
held by the Center for the Advancement of Teaching at Illinois 6-14.
State University. Thanks to Dr. Kathleen McKinney and Dr. [14] Morgan, T., & Roberts, J. (2002). An analysis of the patriot
Doug Hesse who organized the workshop as well as to other missile system, from http://seeri.etsu.edu/SECodeCases/
attendees for their comments. ethicsC/PatriotMissile.htm
[15] Schulze, K. G., & Grodzinsky, F. S. (1997). Teaching ethical
9. REFERENCES and social issues in cs1 and cs2. In Proceedings of the
[1] Association for Computing Machinery. (1997). ACM code of Twenty-Eighth SIGCSE Technical Symposium on Computer
ethics and professional conduct. Science Education, San Jose, CA. pp. 6-9.
[2] Association for Computing Machinery, & Institute for [16] Spinello, R. A. (2003). "It's never right to copy software". In
Electrical and Electronics Engineers. (1999). Software Case studies in information technology ethics (pp. 59-62).
engineering code of ethics and professional practice. Upper Saddle River, NJ: Prentice Hall.
[3] Association for Computing Machinery and Institute of [17] Townsend, G. (1999). TheTenthStrand == 3 *
Electrical and Electronics Engineers - Computer Science EthicalDebates + Solution. In Proceedings of the Thirtieth
Joint Curriculum Task Force. (1990). Computing curriculum SIGCSE Technical Symposium on Computer Science
'91. Education, New Orleans, LA. pp. 17-21.
[4] Bowyer, K. (2000). Video resources for use in teaching [18] Wahl, N. J. (1999). Yaatce--yet another approach to
ethics and computing. In Proceedings of the Thirty-first teaching computer ethics. In Proceedings of the Thirtieth
SIGCSE Technical Symposium on Computer Science SIGCSE Technical Symposium on Computer Science
Education, Austin, TX. pp. 217-221. Education, New Orleans, LA. pp. 22-26.
[5] Collins, W. R., Miller, K. W., Spielman, B. J., & Wherry, P. [19] Werth, L. H. (1997). Getting started with computer ethics. In
(1994). How good is good enough?: An ethical analysis of Proceedings of the Twenty-eighth SIGCSE Technical
software construction and use. Communications of the ACM, Symposium on Computer Science Education, San Jose, CA.
37(1), 81-91. pp. 1-5.Bowman, B., Debray, S. K., and Peterson, L. L.
[6] Computing Accreditation Commission, Accreditation Board Reasoning about naming systems. ACM Trans. Program.
for Engineering and Technology. (2002). Criteria for Lang. Syst., 15, 5 (Nov. 1993), 795-825.
accrediting computing programs, 2003-2004.

351