Authors:
Jeremy Hanzlik
(J-Hanzlik@tamu.edu)Suggested Courses:
Computer Science
Level:
All
I. Narrative
Greg is a recently hired software engineer who has been recruited
fresh out of college. For his first assignment, Greg's boss asked
him to write a piece of software to provide some sort of security
from "prying eyes" over e-mailed documents; these documents
would be used internally by the company. This software will subsequently
be distributed to different departments.
Upon completion of his software project, he saw a program on
the local news about an individual in California who has made
similar software available overseas. This individual is currently
under prosecution in a federal courts for the distribution of
algorithms and information which (by law) must remain within the
United States for purposes of national security.
It occurs to Greg that his company is a multinational corporation
(MNC) and that the software might have been distributed overseas.
Greg discovers that the software has indeed been sent overseas
to other offices within the corporation. Greg goes before his
boss and informs his boss of the news program he has seen. Greg's
boss shrugs off the topic and states, " The company is based
in the United States and we are certainly no threat to national
security in any way. There are just too many legislators and
lawyers in the world. Besides, there's no way outsiders will
find out about software we use internally."
Greg agreed with his boss, and let it go. Later on however, Greg received a letter from a gentleman working as a contractor for his company overseas complimenting him on the software he wrote. Through some correspondence regarding the functionality of the software and technical matters, Greg learned the middle eastern office of his company has been supplying his software outside the company to contractors and clients so that they could exchange secure e-mailed documents.
II. Numerical/Design Problem
Question 1:
Design and write a program to encrypt/decrypt a text file. (Additional
specifications to be added by instructor dependent upon course
level--e.g. language, level of encryption)
III. Questions on Ethics and Professionalism
Question 1:
What are Greg's ethical responsibilities as the designer of the
software? To his company? To himself? As a citizen of the United
States?
Question 2:
Rank these responsibilities along with a brief explanation as
to why you made your decision.
Question 3:
Write a proposal which can satisfy as many of Greg's obligations
as possible. Explain why this is his best course of action.
Class Discussion Question:
Should a software engineer think about the implication of the
material he/she is developing?
Problem Variation II:
I. Narrative
Greg is a recently hired computer programmer who has been recruited
fresh out of college. For his first assignment, Greg's boss asked
him to write a piece of software to provide some sort of security
from "prying eyes" over e-mailed documents for internal
use by the American division of his company.
Greg's boss was very pleased with his work and with the performance
of Greg's software. He has 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 overseas at locations including Saudi Arabia, Singapore,
and Thailand. Since business had slowed at the American offices,
Greg's boss gave the O.K. and recommended that Greg perform some
software coding for the other divisions.
Later that evening, Greg saw a program on the local news about
an individual in California who has made similar software available
overseas. This individual is 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.
The next morning Greg mentioned the television program to his
boss. His boss told Greg, "Oh, don't worry about those muckraking
reporters; always trying to dig up dirt. By the way, did I mention
that on your way to Thailand I planned for you to have a weekend
layover at a nearby resort?"
II. Numerical/Design Problem
Question 1:
Design and write a program to encrypt/decrypt a text file. (Additional
specifications to be added by instructor dependent upon course
level--e.g. language, level of encryption)
III. Questions on Ethics and Professionalism
Question 1:
Define a bribe. Is Greg's boss offering him a bribe?
Question 2:
What are Greg's ethical responsibilities as the designer of the
software? To his company? To himself? As a citizen of the United
States?
Question 3:
Write a solution which can satisfy as many of Greg's obligations
as possible. Explain why this is his best course of action.
Class Discussion Question:
Can a promotion or a perk be a bribe?
IV. Solutions for Numerical/Design Problem
The solution to this problem greatly depends upon additional
specifications imposed by the instructions.
An example of a problem 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 higher 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).
V. Solutions for Ethics and Professionalism Questions
Version I
Question 1:
(The following serve merely as examples; many more responsibilities can be asserted)
Greg's responsibilities as a software engineer:
provide code as free of bugs as possible
meet the design specifications for the software
Greg's responsibilities to his company:
remain loyal (perhaps the student will define loyalty in answering these questions)
keep proprietary information secret
Greg's responsibilities to himself:
not to compromise his ethics for the sake of others
Greg's responsibilities as a citizen of the United States of America:
promote the well-being of his country
adhere to U.S. laws and regulations at all governmental levels.
Question 2: There is no right or wrong answer to this question in so far as the student has provided justification for is answer. The following is an example:
1. Greg's responsibilities to himself--because I believe one is compelled to follow one's own conscience in order to function as a happy and productive individual.
2. Greg's responsibilities as a citizen--I have a duty to my fellow countrymen to ensure a certain standard of living by adhering to the law.
3. Greg's responsibilities to his company and as a software
engineer--These two tie because neither has a pressing issue to
trump the other.
Question 3:
In a large company, as an MNC clearly is, there should be a legal
department which employees can consult regarding legal questions.
Greg has the option of speaking with a lawyer within that company,
thus satisfying his loyalty to the company. However, in doing
this, Greg must not forget about his responsibilities to himself
and his family. Therefore it would not be appropriate to go behind
his supervisor's back on the first go-round of the disagreement.
Greg must avoid a messy confrontation with his boss if he is
to continue to function well in his department. He could attempt
to persuade his supervisor that he should check with the legal
department before he even speaks with the lawyers, to ensure that
both men are legally covered in what they do. In talking with
the lawyers, Greg can develop allies to help convince his boss
that the software must not be sent across international boarders.
Therefore Greg presents as a helpful employee rather than a confrontional
troublemaker. This would satisfy all three obligations mentioned
in the answer to question 3.
Version II
Question 1:
The definition of a bribe should not be taken from a dictionary.
The purpose of this question is to help the student develop his
own thoughts on the concept.
A bribe could be loosely defined as anything of value given with
intent to extract a favorable action from an individual.
Is there a bribe involved in the promise of the layover stay in
Thailand? This should probably be classified as a bribe for the
following reasons. First, the layover is significant in value
and has been introduced at a time when Greg must make an ethical
decision. Second, there is a great possibility that the supervisor
intends this to influence Greg's action. Third, even if it is
not intended to be a bribe (and the supervisor is merely downplaying
Greg's concerns), it still has the appearance of a bribe. In
today's world of media, something not intended to function as
a bribe, but having the appearance of a bribe, can greatly damage
an individual's reputation.
Question 2:
There is no right or wrong answer to this question as long as the student has provided justification for his answer. The following is an example:
1. Greg's responsibilities to himself--I believe one is compelled to follow one's own conscience in order to function as a happy and productive individual.
2. Greg's responsibilities as a citizen--I have a duty to my fellow citizens to ensure a certain standard of living by adhering to the law.
3. Greg's responsibilities to his company and as a software
engineer--These two tie because neither trumps the other in this
situation.
Question 3:
The answer to question 3 from version I is appropriate here also. In addition, Greg should start sending out his resume, if he believes that he has indeed been offered a bribe. Certainly when a bribe has been offered, an individual is in a bad situation, and it would be better to find another position, where he will not be tempted to compromise his integrity.