Presentation on theme: "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."— Presentation transcript:
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(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.IUPUI Course Policies. 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.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.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. http://researchadmin.iu.edu/EO/eo_citi.html Turn-in the certificate of completion to Ms. Emily Good (firstname.lastname@example.org) or Dr. Fang (email@example.com) after the completion of this firstname.lastname@example.org@cs.iupui.edu 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 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
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.