Course Notes: Ethics

advertisement
Ethics and its Role in CS
CSCI 12000
Definition (Merriam-Webster)
eth·ic
• “noun \ˈe-thik\ : rules of behavior based on ideas
about what is morally good and bad
• ethics : an area of study that deals with ideas about
what is good and bad behavior : a branch of
philosophy dealing with what is morally right or
wrong
• a belief that something is very important”
(http://www.merriam-webster.com/dictionary/ethic)
Markkula Center for Applied Ethics
(Santa Clara University)
•
Answers to the question (“What does ethics mean to you?”) developed by
Raymond Baumhart (Sociologist)
–
–
–
–
•
“Equate ethics with feelings?”
“Equate ethics with religion?”
“Equate ethics with following law?”
“Equate ethics with whatever society accepts?”
Ethics is:
–
–
“First, ethics refers to well-founded standards of right and wrong that prescribe what
humans ought to do, usually in terms of rights, obligations, benefits to society, fairness, or
specific virtues”.
Secondly, ethics refers to the study and development of one's ethical standards.”
(http://www.scu.edu/ethics/practicing/decision/whatisethics.html)
(Developed by Manuel Velasquez, Claire Andre, Thomas Shanks, S.J., and Michael J.
Meyer)
Ethics in CS
• Curriculum-related ethics
– Academic integrity and Cooperation
– Plagiarism
– Training Requirement
• Professional ethics
– ACM Code of Ethics
Ethics in CS
Statements of Academic integrity and Cooperation and Plagiarism Policy
•
Students are responsible for completing their work on time, working independently, attending class, and checking OnCourse and their email
for new announcements and assignments. They are responsible not only for the reading material from the textbook, but also all the material
covered in lectures including any specified external reading.
•
There are a number of campus-wide course policies, including the policy for academic integrity, at IUPUI. These can be found here: IUPUI
Course Policies. Students are expected to know the particulars of these polices.
•
Students are encouraged to discuss the concepts and principles amongst themselves. Such discussions may help in a better understanding of
the topics taught in the class. However, the student cooperation should not result in identical or near identical
answers/report/code/documentation.
•
All classwork and material submitted for grading must be student's own effort, unless specified otherwise by the Instructor.
•
During the exams, the students are to do the work on their own (e.g., do not look at neighbors). Students are also not allowed the use of cell
phones or other Internet connected devices during exams.
•
Proper credit (in the form of correct citations and references) should be given wherever applicable and direct cutting-and-pasting MUST BE
avoided, unless indicated as verbatim (e.g., putting the text in quotation marks). A short tutorial about plagiarism is located at: IUPUI Tutorial .
•
The policy against violations of academic integrity will be enforced at the Departmental level across multiple courses.
–
If a student does not abide by this policy then for the first violation, he/she will receive ZERO points for that component of the course
and will be reported to the Department Chairperson.
For a second violation of academic integrity (even in a different course), the student will receive a FAILING grade for the course and, in
addition, an official reporting process will be initiated as per IUPUI's Student Conduct Policies that can be found here: Student Conduct
Policies .
Ethics Requirement
• All incoming students will be required to complete an online
Responsible Conduct of Research Course during their first
semester (before the end of semester).
•
This course is available at:
http://researchadmin.iu.edu/EO/eo_citi.html.
• Turn-in the certificate of completion to Ms. Emily Good
(eegood@iupui.edu) or Dr. Fang (sfang@cs.iupui.edu) after the
completion of this training.
• Failure to complete the course will result delay in registering for
the next semester.
Ethics in CS
• In addition, there is a professional code of
ethics for Computer Scientists specified by the
main professional society, Association for
Computing Machinery (ACM). ACM's Code of
Ethics is found here: ACM Code of Ethics .
ACM Code
•
“1.3 Be honest and trustworthy.
•
Honesty is an essential component of trust. Without trust an organization cannot
function effectively. The honest computing professional will not make deliberately
false or deceptive claims about a system or system design, but will instead provide
full disclosure of all pertinent system limitations and problems.
•
A computer professional has a duty to be honest about his or her own
qualifications, and about any circumstances that might lead to conflicts of interest.
•
Membership in volunteer organizations such as ACM may at times place
individuals in situations where their statements or actions could be interpreted as
carrying the "weight" of a larger group of professionals. An ACM member will
exercise care to not misrepresent ACM or positions and policies of ACM or any
ACM units. “
ACM Code
“1.5 Honor property rights including copyrights and patent.
• Violation of copyrights, patents, trade secrets and the terms of
license agreements is prohibited by law in most circumstances.
Even when software is not so protected, such violations are
contrary to professional behavior. Copies of software should be
made only with proper authorization. Unauthorized duplication of
materials must not be condoned.
1.6 Give proper credit for intellectual property.
• Computing professionals are obligated to protect the integrity of
intellectual property. Specifically, one must not take credit for
other's ideas or work, even in cases where the work has not been
explicitly protected by copyright, patent, etc.”
ACM Code
“2.1 Strive to achieve the highest quality, effectiveness and dignity in both the process
and products of professional work.
•
Excellence is perhaps the most important obligation of a professional. The
computing professional must strive to achieve quality and to be cognizant of the
serious negative consequences that may result from poor quality in a system.”
2.2 Acquire and maintain professional competence.
•
Excellence depends on individuals who take responsibility for acquiring and
maintaining professional competence. A professional must participate in setting
standards for appropriate levels of competence, and strive to achieve those
standards. Upgrading technical knowledge and competence can be achieved in
several ways: doing independent study; attending seminars, conferences, or
courses; and being involved in professional organizations.”
ACM Code
“2.5 Give comprehensive and thorough evaluations of computer systems and their impacts, including
analysis of possible risks.
•
Computer professionals must strive to be perceptive, thorough, and objective when evaluating,
recommending, and presenting system descriptions and alternatives. Computer professionals are in
a position of special trust, and therefore have a special responsibility to provide objective, credible
evaluations to employers, clients, users, and the public. When providing evaluations the
professional must also identify any relevant conflicts of interest, as stated in imperative 1.3.
•
As noted in the discussion of principle 1.2 on avoiding harm, any signs of danger from systems must
be reported to those who have opportunity and/or responsibility to resolve them. See the
guidelines for imperative 1.2 for more details concerning harm, including the reporting of
professional violations.
2.7 Improve public understanding of computing and its consequences.
•
Computing professionals have a responsibility to share technical knowledge with the public by
encouraging understanding of computing, including the impacts of computer systems and their
limitations. This imperative implies an obligation to counter any false views related to computing.”
ACM Code
• “3.4 Ensure that users and those who will be affected
by a system have their needs clearly articulated during
the assessment and design of requirements; later the
system must be validated to meet requirements.
• Current system users, potential users and other
persons whose lives may be affected by a system must
have their needs assessed and incorporated in the
statement of requirements. System validation should
ensure compliance with those requirements.”
Some Concrete Issues
• Prediction, Assessment, and Correctness of
Software
Software is HARD
Why is Software Complex?
• Complex Process [Booch]
–
–
–
–
–
More complex – More error prone
Complexity of domain
Difficulty in managing development environment
Flexibility through software
Discrete systems characterization
• Complexity [Booch]
– Hierarchy – Abstraction
– Choice of components – arbitrary
– Intra- and Inter – component linkages
• Ripple carry effect/Separation of concerns
– Few subsystems – evolution from simple systems (rather revolution)
What can be done?
Accept our limitations to understand complex software systems.
•
Use Best Practices
– Life cycle
•
Agile, Waterfall,…
– Domain Analysis
•
Requirement elicitations, expert knowledge,…
– Languages
•
OO,…
– Design Frameworks and Guidelines
•
Patterns, UML,…
– Appropriate Tools
•
•
IDEs, Debuggers, Profilers, Libraries,…
Use Formalism
– Mathematical and Logical Foundations
•
Use Testing
– Need to augment the formalism
Summary
• Ethics is critical in all fields of life including CS.
• Incorporate it throughout your career, here at
IUPUI, and in future.
– Take courses to improve your understanding of
the complexities in developing software systems
and make a concrete attempt to reduce the
uncertainty involved in the software process and
thereby, abiding to the ACM code of Ethics.
Download