banner

Ethics in Computer & Software Engineering Anamika Megwalu, San Jose State University

Purpose

The purpose of this activity is to apply the knowledge of Software Engineering Code of Ethics and Professional Practice to the Framework for Ethical Decision Making, in order to address an ethical dilemma described in a case study. There are many ethical decision-making frameworks; however, this particular framework is used to introduce the process. Students will do a purposeful reading of the Software Engineering Code of Ethics, identify code(s) that were violated in the given case study, and engage in addressing a real-world scenario using the framework. This activity requires students to engage in small group discussions, and post their groups’ solutions to the case study on the Canvas Discussion Board (asynchronous) using the following five headings.

  1. Recognize an ethical issue
  2. Get the facts
  3. Evaluate alternative actions
  4. Make a decision 
  5. Reflect on the potential outcome

Students are also asked to read and reflect on one other groups’ solution. Reflection may include thoughts, questions, and any a-ha moment.   

Context

This activity occurs mid-semester for a course called Computer Engineering Seminar. This course provides graduate students with a background to conduct research, develop an understanding of a diverse set of written communication styles, and become aware of ethical implications of their work. By this time, they have experienced Think-Pair-Share, Talk to the Text, and Think Aloud. They have developed a reading strategies list. They are also familiar with the Software Engineering Code of Ethics and Professional Practice, and had lessons on the importance of ethics in software and computer engineering.

Criteria

This activity involves group discussions, and writing a brief report on the discussion board. Students’ understanding is assessed in several ways. 

  • During small group discussion, the instructor monitors students’ discussions, and their metacognitive conversations as they recognize the ethical issue, evaluate alternative actions, and make a decision on how the problem should be addressed. This small group discussion can take place both in-person and in an online classroom. 
  • Students are asked to post their discussion on the Canvas Discussion Board (asynchronous setting). Students receive feedback from their peers, as well as the instructor. 

Text and Materials

Students are not required to purchase materials. All materials are open access.

  •  Software Engineering Code of Ethics and Professional Practice: https://ethics.acm.org/code-of-ethics/software-engineering-code/
  • Framework for Ethical Decision Making: https://www.scu.edu/ethics/ethics-resources/ethical-decision-making/a-framework-for-ethical-decision-making/ (permission to use is required)
  • Case studies: https://www.scu.edu/ethics/ethics-resources/ethics-cases/ (Each group of students are assigned a case study)

Metacognitive Conversation

This activity asks students to apply their knowledge of the Software Engineering Code of Ethics and Professional Practice to a new situation (case study). Students engage in a problem-solving activity where they talk to the text, and apply the think aloud approach. They are also required to document the scaffolding process to justify their approach to handling the ethics violation(s).

Details

This activity includes both pre-class, in-class, post-class components:

Pre-class: 

  • Students review notes and materials from previous sessions on Ethics. They review the Software Engineering Code of Ethics and Professional Practice, and also skim through the Framework for Ethical Decision-Making handout. 
  • They search and find a recent news item on software ethics violation
  • Students post their news item on Canvas Collaboration - write your name (column 1), title of the news item (2nd column), describe the case (3rd column), and news source/link (4th column)

In-class: 

  • Warm up activity (take a look at some of the case studies on Canvas Collaboration) – 10 min
  • Discuss a couple of the cases in a larger group, surfacing questions – ~10 min
  • Main activity: (30-40 mins)
    1. Read the case study. Using the Framework for Ethical Decision Making, find a solution to the ethical issue presented in the case study. 
    2. While evaluating the ethical issue(s) and considering potentials solutions to addressing the issue(s), refer to the Software Engineering Code of Ethics and Professional Practice. Indicate codes that are applicable to the case study. 
    3. Discuss the following questions under each heading:
      • Recognize an ethical issue: Could this situation be damaging to someone or to some group? Does this situation involve a choice between a good and bad alternative, or perhaps between two “goods” or between two “bads”? What code of ethics are in violation?
      • Get the facts: What  are the relevant facts of the case? What facts are not known? Do I know enough to make a decision? What individuals and groups have an important stake in the outcome? Are some concerns more important? Why?
      • Evaluate alternative actions: Which option will produce the most good and do the least harm? Which option best respects the rights of all who have a stake? Which option serves the community as a whole? Which option leads me to act the sort of person I want to be?
      • Make a decision: Considering all these approaches, which option best addresses the situation? If I told someone I respect, or told a television audience about which option I have chosen, what would they say?
      • Reflect on potential outcome: How can my decision be implemented with the greatest care and attention to the concerns of all stakeholders?
    4. Post group solutions on the discussion board ~15 min

Post-class (home-work)

Students are also asked to read and reflect on one other groups’ solution. Reflection may include thoughts, questions, and any a-ha moment.