By David K. Larson, University of Illinois at Springfield, and Keith W. Miller, University of Missouri – St. Louis
for a Software
The integration of ethics into computer science instruction is not a new idea (for example, see [ 10]),
but it is still useful to illustrate how this integration can
be done in specific kinds of courses [ 14]. In this article,
we present a hands-on ethics lesson for students involved
in programming. We think this exercise can be used in
any undergraduate class that engages students in software
development. Although our examples are written using
be easily adapted to other programming languages and
platforms. Our goal in this exercise is to encourage students
to think more carefully about the ethical implications of the
kinds of work students are likely to be asked to do in their
first software development jobs.
In the first part of this lesson, students are encouraged to
make modifications to an existing program. That program
simulates a system designed to monitor hospital patients’ vital
signs. If desired, an instructor could give a specification instead
of the initial version, and require the students to develop that
initial version themselves.
These activities are designed for students working individually or in small groups. The strategy is to alternate technically
oriented tasks with time for reflection. This lesson is meant for
students to do at least one software development step and one reflection in a single session. Because there are multiple stages, the
entire exercise can be stretched across multiple classes, or could
be accomplished in a single long session. The repeating cycle of
specification, coding, and reflection is shown in Figure 1.
Using case studies in ethics education has a long history in
business, medicine, and engineering. For example, see Herkert
[ 7], Jennings [ 9], and Watson [ 17]. A distinctive characteristic
of this proposed lesson is the integration of software artifacts,
leading to an intertwining of software engineering issues and
societal impact issues.
AN INITIAL VERSION OF A PATIENT
The first version of a program is available at [ 11]. The source
Style Sheet (CSS), and Hypertext Mark Language (HTML), is
in a single file. If the students are to develop this first version
on their own, then this completed program would not be given
to them; instead, they would be given a specification, such as
the one in Appendix A. In either case, students should have a
working web page that simulates patient monitoring, including
vital signs of a hypothetical patient, before continuing with this
exercise. We will assume that students are shown our Version 1.
Figure 2 is a screenshot of that version.
This is a simplified version of actual software that could be
used in a clinical setting; it is not nearly compliant with typical standards for disabled users. For example, the audible alarm
Figure 1: When teaching ethics through software development, the
instructor can specify a task, students can code it, and then the students
and the instructor can then reflect on the ethical significance of the work.