A software engineer, working for a multinational corporation, creates some software that provides security for email documents. The engineer realizes that there is a federal law prohibiting the distribution of security algorithms and information outside the United States. Ethical issues arise when the engineer's boss does not share this concern about the distribution of the software, and offers Greg a stay at a resort.
Greg, a recent college graduate, is a newly hired computer programmer. For his first assignment, Greg's boss asked him to write a piece of software to secure emailed documents for internal use by the American division of his company.
Greg's boss was very pleased with the performance of Greg's software, and he sent letters to friends and managers within the company describing Greg's project. Some of the managers wanted to "borrow" Greg's time in order to customize software at overseas locations including Saudi Arabia, Singapore, and Thailand. Since business had slowed at the American offices, Greg's boss agreed, recommending that Greg perform software coding in these other divisions.
Later that evening, Greg saw a program on the local news about an individual in California who handmade similar software available overseas. This individual was currently under prosecution in a federal court for the distribution of algorithms and information which (by law) must remain within the United States for purposes of national security.
At work the next morning Greg mentioned the television program to his boss. His boss told Greg, "Oh, don't worry about those muckraking reporters; they're always trying to dig up dirt. By the way, did I mention that on your way to Thailand I planned to allow for a weekend layover at a nearby resort?"
Numerical and/or Design Problem
- Design and write a program to encrypt/decrypt a text file. (Additional specifications to be added dependent upon course level. e.g. language, level of encryption.)
Questions on Ethics and Professionalism
- Define a bribe. Is Greg's boss offering him a bribe?
- What are Greg's ethical responsibilities as the software designer? What are his ethical responsibilities to his company? To himself? As a citizen of the United States?
- Find a way to satisfy as many of Greg's obligations as possible. Write it down. Explain why this is his best course of action.
Question for Class Discussion: Can a promotion or a perk be a bribe?
Solutions for Numerical Problem
The solution to this problem greatly depends upon additional specifications imposed by the instructor.
An example for the freshman/sophomore level would be to construct a program which opens a file, reads one character at a time, increments the ASCII value by an arbitrary number, writes the character in a new file, and repeats.
In a more senior level course, the instructor could require the development of a more complex algorithm for the encryption process. (It might be interesting to introduce code-breaking topics as well.)
These problems were originally developed as part of an NSF-funded project to create numerical problems that raise ethical issues for use in engineering and other course assignments. The problems presented here have been edited slightly for clarity.