Notre Dame’s Student Code of Ethics : By Chris Clark, Thomas Deranek, Jesse Hamilton, and Neal Sheehan
Our Code of Ethics is styled similarly to the ACM Code of Ethics, but is very much tailored to the Notre Dame student. Students face many ethical and pre-professional issues that don’t exist in the working world. It is important to enumerate these issues and lay out rules and expectations early. With our Code of Ethics, we can begin to train the mind and heart in the proper, ethical practices of learning, deliberation, and justice in computing.
Our Code of Ethics focuses on four main areas: general guidelines, student responsibilities, student leadership & group work, and compliance. While each section is important and contains many important rules and explanations, I particularly like sections two and three. They refer to what is expected of you as a Notre Dame CSE student in both individual work and in relationships with others. For instance, article 2.1 of our code states that
As a Notre Dame Computer Science and Engineering student, I will strive for academic success.
While that may sound obvious, it carries an important distinction. It doesn’t say that the student should do the requisite work to pass and get a degree. It doesn’t state that the student should coast once he or she has landed a job. It states that each student should strive for success, including attending class regularly beyond the required percentage as well as putting in wholehearted effort and participation in the classroom and in assignments.
Take a further look into article 3.3 of our code. It states that
As a Notre Dame Computer Science and Engineering student, I will contribute equally to the project.
To be an ethical and professionally excellent student, you must put forth your full effort into group work. No one person should shoulder all of the load, including yourself. Many times it can be easier to take control to ensure you earn the quality grade you desire, but that robs your peers of the chance to learn.
While I like these two particular highlights of our code, it does have some drawbacks. First of all, article 1.1 states that we ought to “code for good.” Sometimes that’s very ambiguous. Sometimes it’s just not feasible. I’m sure that my laggy, buggy, glitchy, uncommented, fourteen-story-high scaffold of a top-down racer didn’t do any good for others in the world. It isn’t public, and it’s certainly nowhere close to ready for production. I stopped working on it because the assignment was completed. Does that mean that what I did was unethical? Perhaps it should say that we ought not “code for bad.” But similar edge cases would surely linger.
Further more, article 1.4 speaks about respecting the privacy of others, which is a good and clear rule, except for what “respect” really means. In the actual article, it states that it is the coder’s responsibility to ensure the privacy of others as well as to not exploit vulnerabilities to violate privacy. But at what point is it unreasonable to guarantee that data is safe inside your system? Is it the ethical duty of a coder to routinely check that their system isn’t compromised? At what point should a user assume responsibility and keep track of which of their data is where? This is not to say that article 1.4 is incorrect, but it is difficult to be airtight without creating too large of an overhead on the programmer.
But regardless of the highlights and shortcomings of our Code of Ethics, it is important, for several reasons, that we created it. First, pausing to actually consider what practices and beliefs we hold ethically valuable is an important exercise. It can be difficult to consider all aspects of ethical computing and education, especially when much of what we do can be out of habit without much thought.
And actually having a physical document to reference in times of uncertainty is paramount to remaining true to my ethical beliefs. Too many times humans drift away from center by way of subtle change. Consider what C.S. Lewis had to say in his famous writings, The Screwtape Letters:
Indeed the safest road to Hell is the gradual one–the gentle slope, soft underfoot, without sudden turnings, without milestones, without signposts…
We need signposts and milestones, identifying markings to assure us we are on course or to alert us when we have drifted astray, and even something as simple as a programmer’s code of ethics can keep us on the straight and narrow.