Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Ethical questions come up more and more in the news, and can be core to a software developers' life. On several occasions this year I was asked for advice that amounts to answering ethical questions, in a computer programming context, and I was surprised to see how much fretting and trouble questions which I consider trivial can lead to.

Are there any courses or programs specializing in teaching what is expected of an ethical programmer? Has anyone put together a formal curriculum anywhere?

share|improve this question

closed as off-topic by gnat, Snowman, durron597, MichaelT, GlenH7 May 3 at 0:51

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Snowman, MichaelT
If this question can be reworded to fit the rules in the help center, please edit the question.

I'm not 100% sure, but if the academic programme is an engineering progamme, there might be an ethics component. In jurisdictions where the "Engineer" title is a reserved title (you have to graduate from a certified Engineering programme), I think they usually include some sort of "ethics of engineering" course. So if you took a Software Engineering course that would get you recoginzed as a Professional Engineer, I imagine you would have to take take some sort of ethics course, hopefully tailored to software (I am not actually engineer, not 100% certain of all of this). –  FrustratedWithFormsDesigner Nov 14 '11 at 21:50
Such as? If somebody is fretting over it probably was not an ethical dilemma but more probably a question on how to balance competing moral perspectives. –  Loki Astari Nov 14 '11 at 21:57
At my university, Computer Science required a course in business ethics. From what I recall, business ethics translates to more general ethical matters. Outside a few types of government, I've forgotten most of it...does that make me unethical? –  P.Brian.Mackey Nov 14 '11 at 22:07
I went to an engineering school and got a degree in CS. Everyone was required to take an ethics class their freshman year (it was called Nature and Human Values...everyone loved it :/ ). Bottom line, yes it is taught. –  Stargazer712 Nov 14 '11 at 23:15
Sure, I could use spaghetti code here...but is it right? –  Ben Brocka Nov 15 '11 at 3:07

5 Answers 5

up vote 4 down vote accepted

My Computer Science degree at the University of Wollongong required us (core subject) to take an ethics course: IACT201 - Professional Practice & Ethics.

This subject covers the body of ideas and commonly held principles that broadly apply to ethical behaviour in the information technology environment. IACT201 will examine the social and ethical implications of information technologies as they apply to citizens and information technology professionals. It will present legal, regulatory, social and ethical perspectives on the use of such technologies through topics of intellectual property, privacy, networking, security, reliability. The inclusion of a professional ethics is to prepare students for careers in the information technology industry. The extent to which technological advancements have altered societal expectations is also examined.

Textbook: Quinn, Michael J., 2005, Ethics for the Information Age, 2nd Ed International, Pearson/Addison-Wesley

I think you will find that many institutions will have similar courses.

I may have disliked taking it at the time, but now that I'm older and wiser (ha!) I am glad it was a requirement.

share|improve this answer

Under the Software Engineering curriculum that I went through at the Rochester Institute of Technology (PDF), ethics was taught across a few courses. I believe this is a requirement for a program to be ABET accredited. Software engineering ethics was not a specific course, and I would be surprised to find it as a stand alone course at any university, but rather integrated into/across other courses or taught in a multidisciplinary way that's suitable for computing or engineering students (although I'd like to be proven wrong on this). It's also rather narrow for a degree program at any level.

Ethics was part of the software engineering freshman seminar, where we were introduced to the Software Engineering Code of Ethics and Professional Practice. It also included discussions of ethics in the workforce. I believe a key case here was the Siberian pipeline sabotage.

In the computer science sequence, there were also discussions of ethics as a module at the end of each term, where the professor chose some case from industry and it was discussed as part of the course. This was typically done in the last week lecture. I believe these may have also referred to the Code of Ethics and Professional Practice.

There was also an ethics requirement that can be satisfied by one of 6 courses, 4 of them are ethics courses, 1 of them is a "moral problems" course, and the other is a social philosophy course. Most people take the introductory ethics course. I ended up taking Business Ethics to satisfy my business minor requirements, and also took Ethics in Technical Communication to satisfy requirements for a minor in applied communication.

share|improve this answer

I attend an ABET accredited engineering school for a Bachelors of Science in Computer Science, and one of the courses required to graduate is a writing intensive "Ethics and Professionalism" course. Typically most students take it after major curriculum requirements have been met, and it involves a lot of interesting discussions on ethical programming.

I may be wrong on this, but a writing intensive Ethics and Professionalism course might be an ABET requirement, so most schools that care about accreditation is probably going to have one.

share|improve this answer
It's an ABET requirement to teach ethics, but it doesn't have to be writing intensive (at least, I didn't consider mine to be that writing intensive) and it doesn't have to be specific to your field of study (my ethics requirement was satisfied by a business ethics course for my minor, as well as ethics discussions in freshman seminar and computer science). See the answer I'm posting for more. –  Thomas Owens Nov 14 '11 at 22:19

The Free Software movement and community can be seen as a response to the lack of engagement with ethical issues in software development.

The Free Software Foundation Europe in particular has learning materials on the impact of software on education, politics, equality, accessibility, and participation (http://fsfe.org).

The Free Society conference in Sweden (FSCONS) addresses some of these subjects also - videos of talks from this conference in past years are available on Vimeo, and cover issues like feminism, the impact of software on ecology, finance, and ecology.

share|improve this answer

The University of Delaware requires Computer Science students to take CISC 355: Computers, Ethics, and Society which is precisely along the lines you are asking about.

Like Dan McGrath's mentioned uni this course uses a text by Quinn (Ethics for the Information Age). Since I have taken this course, I can tell you that it covers some of the costly (sometimes fatal) follies in software development, ethics hacking for good or bad, copyrights, trademarks, and current laws. It was largely a discussion course where we would read about some scenario, often from the past, and debate the ethics and morality behind the actions of all parties.

To spice the content up and to touch on the block which mentioned export control and encryption we also did some code breaking ourselves.

I can say that every school should offer something that covers the topics in this course and I dare say it should be a requirement.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.