ie:Labs Overview

Introductory Labs

The following list of labs are the introductory labs for this curriculum. These labs are designed to highlight the need for ethics education in computer and data science. For existing labs, a link is provided ().

Why ethics?

Motivates the need for ethics education in the context of what computer and data scientists do. Great for early courses as students learn about potential careers in computer/ data science and that with great power comes great responsibility.

Core Values

This is an introductory lab. The discussion centers on how a future workplace is chosen (not really an ethical dilemma). The lab is designed to help students reflect on the connection between choice and personal value and articulate what might influence a person’s choice.

A First Look at Ethics for Computer and Data Sciences

This lab briefly covers the first three ethical frameworks (virtue, deontology and utilitarianism), gives the opportunity to practice applying the different ethical frameworks to arrive at potential solutions and recognize the connection between actions and values. This lab can be used

The lab is written to be an out of class assignment, however can be adapted to be used in class.

Foundational Labs

These labs are needed to build a foundation in ethics. The first four labs discuss four ethical frameworks that are used in the rest of the curriculum. The use of these framework tools is encouraged throughout the curriculum as a way of pushing students to reason through the big picture and potential solutions rather than simply voicing an impulsive opinion.

We strongly recommend building the foundational labs into your program; they build the foundation for the rest of the ie:Labs curriculum. However, if it is not possible to do these four labs, then we recommend using A first Look at Ethics in Computer and Data Sciences. This lab will briefly survey the first three ethical frameworks.

Virtue Ethics

Students start intentionally thinking about the ethical choices made by students, teaching assistants, professors as they complete, assist with, and grade programming assignments. The virtue ethics framework is introduced as a way to evaluate the ethicality of actions. Ex: What virtues would be violated or upheld if a professor denied an extension on a programming assignment to a student in a car accident saying that it would be unfair to the other students? While the scenarios in this lab are written for an introductory programming course, they can be easily adapted to other courses.

Introduction to the Deontology: Assigning Grades

In this lab students will encounter the ethical framework of deontology, review and contrast that framework with the virtue ethics, and practice finding an ethical solution in a group setting. It is recommended that either Virtue Ethics and/or A First Look at Ethics in Computer and Data Science be used prior to this lab.

Currently this lab is based on the ACM’s Code of Ethics and Professional Conduct. We plan to create a similar lab using the ASA’s Ethical Guidelines for Statistical Practice

Utilitarianism: Plagiarism Issues

To evaluate a dilemma employing utilitarian ethics, one would look at which solution produces the most amount of utility, which can be measured by happiness, good, benefits, etc. to the stakeholders. This lab introduces utilitarianism and applies this framework to two scenarios of plagiarism. Virtue and deontological ethics are reviewed and contrasted with each other and utilitarianism. While the scenarios in this lab are written for a Calculus course, they can be easily adapted to other courses.

Analogies: Coding-Writing Plagiarism Example

This lab gives an introduction to analogies as a way to evaluate ethical dilemmas. While analogies are not a common ethical framework, they are helpful when exploring the ethicality of new ideas/products by using analogies to known older ideas/ products. In this lab, the concept of analogies and how they can help us make decisions about the ethicality of a situation is discussed, along with variations/ degrees of plagiarism in writing computer code. This lab is designed to be used in an introduction to programming course, however could be adapted to other types of courses by changing the scenarios.

Application Labs

These labs are designed to be used in years two through four. They are more applied to content in specific courses. For example, an ethics lab to be integrated into a Data Analysis course might deal with the potential for unethical choices in data cleaning, while a lab to be integrated into a Software Engineering course might deal with addictive aspects of certain software products.

Additional application labs are planned for the future. Have a great suggestion for a lab? Post in the comment section below.

Hospitality in Computer Programming

Hospitality is defined by as “the friendly reception and treatment of guests or strangers”. The guests and strangers for computer programmers are users and maintenance programmers. This lab helps motivate the need for good variable names, comments, and user messages using an engaging exercise where students must guess how to play a game from its very cryptic prompts. Hospitable code helps to keep it easy to update and bug free.

Avoiding Algorithmic Bias

Students are introduced to predictive algorithms that were created with the good intent of providing objective results but instead included significant bias. They first consider the familiar college admissions algorithm, and move to others that have become notorious. They are then given the opportunity to consider how the algorithms could have been improved if they had been vetted with the set of guidelines recently released by the EU.

Media Literacy (Choosing resources for background research)

Many students get all of their information from social media. It is often one-sided and not fact-checked. Through the analogy of the best set of witnesses for a trial, students are helped to understand that it is important to read multiple, reliable sources with differing views when doing background research. This lab contains both pre-class and in-class assignments. Also, this lab is easily adaptable for a variety of courses since references to technology are made, however no specific knowledge is needed.

Open Source Accessibility

Students have a limited view of what accessibility means. This lab helps students to understand the accessibility features that can be built into software. Students learn about open source software (which is economically accessible) and consider how it fares in comparison to proprietary software with regard to accessibility features required for those who are physically, mentally, or emotionally impaired. This lab contains both pre-class and in-class assignments.

Data Cleaning (data integrity)

The goal of this lab is to show that data cleaning, while necessary, can be conducted with differing degrees of ethicality. The process of correcting data (changing location, imputing a new value, removing typos etc.), removing incomplete records, or leaving questionable data as it can affect the results of the analysis. Consequently, methods must be scrutinized. Students will evaluate the ethical ramifications of data cleaning choices on a fictional data set description.

Diversity in Product Development

Engineers have often been rewarded for getting their product to market quickly. However, this approach has frequently resulted in products that have limited appeal. One of the reasons for the limited appeal is that a diverse team was not employed in the design. This lab discusses the need for, and ways to build an effective, diverse design and development team. It also considers that lack of diversity can result in an unethical product.

Ethics in E-Commerce: Digital Nudging

This lab considers ethics in E-Commerce. It explores how pre-set choices on webpages can “nudge” a person to choose options that are not in their best interest. A dilemma to be considered here is the tension between a company making money by encouraging customers to buy their product or to upgrade and the resulting positive or negative experience for the consumer. Ethical issues include transparency and dignity.

Transparency in End User Licensing Agreements

This lab focuses on end user licensing agreements. Such agreements are required for user and company safety, but are often unread. Using online tools, students explore the actual complexity of such agreements, consider solutions, and contemplate how to discuss the solutions with their superiors.

Professional Ethics

While this lab reviews issues in professional ethics (sexual harassment, using company resources properly, padding expense reports, product safety), the emphasis is on preparing students to actually speak up when they see something that is wrong. It explores reasons we may want to remain quiet or why we might be tempted to do something outside of our normal character.

Hardware Sustainability

With more technological innovation, people are able to do things they never could before. Healthcare is available to rural areas. Businesses are making more money. However, as humans create more technology, we also create more e-waste. Should we continue to develop new technology knowing it creates more waste? Where and how should we dispose of our e-waste? This lab is designed to get students to identify one or more ethical dilemmas and evaluate them through an ethical framework.

Labs in Progress

We continue to add labs over time. Here are some of the labs currently being developed.

Software Reliability

Poorly tested software has led to life-ending disasters, child support payments being misdirected, and patients being overdosed. This lab explores the need and methods for thorough testing, but also looks at the role of issues such as the needs for diverse teams when building robust software. (this one is currently a work in progress)

Data Visualization

Data visualization is used in so many ways and is so important, this might turn into multiple labs. We are still sorting through how we want to deal with this important topic.

Probability and Ethics

Especially in the context of the utilitarian framework and in game theory (the study of multiple people making simultaneous decisions), concepts from probability are an important part of the discussion. In the utilitarian framework, for example, how do we measure utility when (a) different stakeholders may be impacted differently and also value outcomes differently, and (b) the consequences of a given decision are not completely known?

Working in Groups

Whether in the classroom or on the job, we often work together with other people to accomplish tasks. What ethics principles should guide how we work together?

Survey Design

Surveys are used by businesses, government agencies, and non-profits to discover the behaviors and opinions of groups of people. What ethical priniciples help us gather this information in a way that provides reliable information and protects the rights of those being surveyed?

Capstone Labs

The capstone labs are currently under construction.

These labs are designed to help students review and pull together concepts that they have learned in the ethics curriculum. In each lab, students will be asked to identify a potential ethical dilemma and evaluate possible approaches to the dilemma using the framework tools taught in this curriculum.

Ethics and Engineering

Integrated Ethics Labs began with a focus on computer science and quickly expanded to statistics and data science as well. Soon we may be expanding include labs focused on issues in engineering. There is, of course, a lot of overlap in the ethical issues related to these disciplines, but there are also discipline-specific foci and application areas that we want to be able to address.