Ethics Courses for Computer Science Majors

Statue of Socrates in front of the Academy of Athens (modern)

 Introduction: Why Should Computer Science Majors Take A Computer Ethics Course?

Computer science majors often ask: why should I take a course that doesn’t add to my technical expertise? Perhaps the best reply is that other courses add to one’s education. However, the ACM has formulated a more thorough reply: “Although technical issues are obviously central to any computing curriculum, they do not in themselves constitute a complete educational program in the field. Students must also develop an understanding of the social and professional context in which computing is done.”1 I wholeheartedly endorse the ACM’s claim. But why must students understand the social and professional context of computing to complete their computer science education? In this article I would like to answer this question; thereby making the ACM’s case in more detail.

Technical Education is Good for You

Technical education is both central to a computing curriculum and of intrinsic value. What’s more, society would be well-served if more students engaged in the rigors of a computer science education. Along with mathematics and the natural sciences, computer science produces good and careful thinkers. This result alone—apart from any practical applications—justifies the existence of computer science in the university curriculum. But technical education does more. It provides the skills to do one’s job competently and earn one’s livelihood, as well as the possibility of taking pride from difficult-to-acquire skills. Furthermore, as Aristotle argued, the possession of skill is a constitutive element of a good life. In short, it is hard to gainsay the value of  technical education.

Non-Technical Education is Good for You

But is non-technical education a good thing? This question too permits of an easy answer. We enrich our lives—though not necessarily our pocketbooks—by a knowledge of history, art, literature, and philosophy. Understanding heightens human experience. Consider how such understanding adds depth to human experience; a depth lacking in those ignorant of such things. In fact, technical expertise has little to do with much of our daily experience; interactions with other human beings often count for more. And it is precisely this limitation of technical education—that it says nothing about the social context of computing—that justifies the ACM’s interest in non-technical aspects of a computing curriculum. Thus, it is hard to gainsay the value of non-technical education.

Non-Technical Education and Computer Science

Still, non-technical education isn’t always relevant to a computing curriculum—understanding Buddhism doesn’t help one code, and reading Shakespeare won’t fix your hard drive! Indeed, if there is nothing to being a computer professional besides technical competence, then non-technical studies are indeed irrelevant to the computing profession. Moreover, such studies detract from professional competence by stealing time from technical courses.

But would a course on the social and professional context of computing be relevant to a computer curriculum? To begin to answer this question consider the following. It is generally believed that good physicians, lawyers, nurses, and engineers need more than just specialized knowledge. In response to this need, education in medicine, law, nursing, and engineering often includes a non-technical course—for example, a course in medical, legal, or engineering ethics. But why should, for example, a nursing, medical, or engineering student take such a course? The answer is that a nurse is not merely a “blood pressure taker,” a physician not simply a “diagnosis indicator,” an engineer not just a “designer of things.” Instead, the aforementioned practice professions in a social context.

Analogously, a computer programmer isn’t just a “coding machine” because their labor too takes place in a social context. Just as with other professionals, the disposition to be conversant, cooperative, reflective, inquisitive, and so on are part of being successful colleagues and professionals. But none of these skills are likely to be learned in computer architecture. Sure, they may not be learned in a computer ethics course either, but we generally believe that exposure to issues—in our case the social, legal, professional, ethical, and philosophical issues in computing—increases student’s awareness of and ability to deal with such issues. Given such considerations, it is reasonable that computer science students have at least minimal exposure to such studies. Moreover, such exposure may enrich their experience of computer science and make their dedication to the field more lasting.

In addition, it is easy to see that computer science students would benefit from education that plays a role in character formation. For those who doubt this claim work with a philosophically ignorant, psychologically damaged, socially inadequate, or grossly unethical but competent technician. In such cases, one will sense that something is missing—psychological health, completeness of character, social skills, wisdom, virtue, or whatever we would call it. Again, we can’t be certain that a course in computer ethics guarantees such deficiencies will be filled, but it would be a first step. Might then a computer science curriculum serve itself well by exposing students to the social context in which computing takes place? I think it would.

What Can Ethics Do For Computer Professionals?

I would also claim that only ethical individuals can truly be complete professionals, that is, faithful to their calling. This is easy to see in the case of therapists, nurses, teachers, and so on. But more technical professionals—engineers, physicians, and computer scientists—often overlook the role that ethics and personal character play in their professions. Perhaps the effort necessary to attain excellence in their fields or the explicitly technical nature of their studies blinds them to the importance of the “human” aspects of  their professions. But whatever the reason for the oversight,  the ethical component is a crucial part of the social context of computing for which students need exposure.

To see this more clearly, consider the unsympathetic physician, deceptive attorney, apathetic professor, immoral engineer or hostile programmer. What such individuals lack is not skill or professional competence but personal traits that most deem worthwhile: friendliness; wisdom, wit, concern, insight, faithfulness, goodness, moderation, decency, collegiality, etc. In the narrowest sense, such individuals lack something as persons that detracts from their functioning as professionals. In a broader sense, they lack an understanding of their social role as members of a group, team, or corporation. In the broadest sense, they fail to see themselves in their universal role—as participants and nurturers of culture; as individuals connected to past human efforts and achievements; as couriers of the light of civilization. They may know how to hammer the nail, but they know not the effort it took to create hammers and nails, nor what their hammering is for. To the extent they know only the former, they are lacking. Now this does not imply that computer professionals should philosophize all day, but that much is to be gained, both personally and professionally, by reflection on the ethical values that should govern the social context of computing.

Why Ethics is Especially Important for Scientists

What’s more, given the power that technology bestows upon those who master it, ethics may be more particularly important for scientists, since they are responsible for using that power appropriately. Computer science in large part creates the future and guards the very survival of civilization. The existence and perpetuation of consciousness itself depends upon the just and wise exercise of our power. So ethical and philosophical reflection—as well as the justice and wisdom which hopefully derive from them—are indispensable to those who master the technological revolution that will change the world, the species, and, in the distant future, possibly the universe itself. Let us not deceive ourselves, the computer revolution is one of the scientific revolutions that will usher in new eras. Those who understand and master the power derived from this revolution must be just and wise stewards; science has an obligation to create the best future possible. Thus, science is applied philosophy; it not only reflects upon the world but actively changes it. And it is this awesome power that requires ethics.


The ACM claim that students must understand the social and professional aspects of computing in addition to the technical parts to complete their curriculum. Now it is easy to see that both technical and non-technical education are good things, but it is a harder to see why non-technical education is relevant to computer science. In response, I have argued that the computer profession isn’t merely a technical one, but a profession that typically takes place in a social context. As such, it should be apparent that educational experiences that increase awareness of this social context are appropriate. I have also argued that ethics is the most important part of the social context of computing. Finally, I have argued that computer scientists have a special need for ethical reflection since they shepard a science that will change the future.

1. See the Steelman Report of the ACM, August 2001.


Liked it? Take a second to support Dr John Messerly on Patreon!
Become a patron at Patreon!

One thought on “Ethics Courses for Computer Science Majors

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.