Graduate Student Perspective:


Further integrating ethics into computer science (CS) courses can better prepare students to be more mindful about ethical issues in their future roles and careers—in particular preparing students to think more critically about how their work with technology may come to impact others and society. As such, this resource highlights the importance of including ethics-related discussion and activities within CS courses, and offers example activities for CS educators to further integrate ethics into CS—including a spotlight on what is being done by CS faculty here at Mines. 

This resource was created by Alexandra Bejarano, a Computer Science PhD student, as part of a professional development project for the Trefny Center Graduate Teaching Fellowship (’23-24).

Note from Alexandra: Thank you for taking the time to read this! Please feel free to share this resource with others. My reason for creating this was that up until I was a graduate student at Mines, my exposure to ethics throughout my studies in CS rarely went into discussion about the broader socio-technical impacts of CS practices and roles. As such, I hope this resource serves to inform CS educators on why and how to further integrate ethics within CS courses to better support and prepare their students in regards to such topics.

Why Ethics in CS?

The design of computing technology can have major social implications. For instance, it could threaten the safety and privacy of users or introduce biases that disproportionately affect vulnerable or underrepresented populations. To address this and mitigate any potential harm as well as determine any benefits, it is important to identify and analyze the potential impact of technology as early as possible before introducing technology to the real-world. Consequently, it is also vital to prepare those who would be designing and implementing technology to properly do so by engaging them with ethical issues that exist or may arise in CS practices and roles. As such, a CS curriculum with further integration of ethics can be used to prepare students (future scientists, engineers, designers, decision makers, etc.) to think more critically about how their work and decisions with technology may come to impact others and society.

In general, the further integration of ethics into CS courses can engage students in more “authentic learning” (Wiggins 1990) experiences in which they can apply their thinking and skills to tasks and problems that reflect those they may later face in the real world. Such engagement can also help students move beyond just thinking about the technical aspects of a particular technology to thinking more critically and holistically about the role technology plays within society. With this, students would come to consider questions like: Should a particular technology be developed in the first place? Why is that technology being developed? Who is it being developed for? Who and what is affected by that technology? How could someone or something be affected by the technology?

How Can Ethics Be Implemented Into CS Courses?

“A Pragmatic Approach for Teaching Ethics”

One useful approach for teaching ethics in engineering and CS courses can be found in the framework introduced by Lennerfors et al. (2020). This framework highlights the steps necessary to engage students in ethics discussion and prepare them to properly analyze and take action on ethical issues they may come across (shown below). 


Identify the ethical issues of working with technology, working with others, and private life.


Internalize and reflect on one’s role and responsibility regarding ethical issues.

Critical Thinking

Process openly and creatively find a way to address ethical issues.


Make a plan and attend to ethical issues based on preceding steps.

CS faculty here at Mines have shown to care about the inclusion of ethics within CS and already have some innovative ways to engage students in this pragmatic approach. These activities include having dedicated lectures to discuss the ethics of research and CS practices, assignments in which students reflect on the ethical implications of a particular topic, dedicated readings and ethics discussions, and even an entire course dedicated to ethics (CSCI 432/532 Robot Ethics by Tom Williams, Associate Professor). As such, the example activities listed below for CS educators to further integrate ethics into CS aim to prepare students for each of these steps.

Raise Ethical Scenarios

One activity idea is to simply expose students to different potential ethical dilemmas and circumstances that may arise during or from the development of particular technologies. For example, illustrate what occurs when changes are introduced to a development project or when an algorithm fails to do what it is intended to do and discuss with students how various stakeholders may be affected, as well as how the situation was or may be handled. This can involve introductions to real-world situations that have occurred. For some example scenarios, check out work by Hedayati-Mehdiabadi (2022) who details three ethical scenarios (privacy in social media, viral deception, and safety in app development) and analyzes how CS students thought through those scenarios.

Kelsey Fulton

Assistant Professor
Courses Taught: CSCI 341 Computer Organization, 598 Introduction to Human Factors in Privacy & Security

Kelsey discusses with students the impact of security on people through analysis of prior research, in particular considering questions such as: Who is affected by the study? What ethical concerns and possible harms are there? Is the benefit worth the harm? Additionally, students are asked to do an ethics critique of existing papers as part of their homework to assess student understanding of the tradeoffs between the benefits and costs of conducting research, in particular in relation to security and privacy.

Philip Romig

Teaching Associate Professor
Courses Taught: CSCI 250 Python Computing, 410, 442 Operating Systems, 471, 475 Information Security & Privacy

“[I use] examples in lecture or homework that illustrate the impact that seemingly benign design choices might have on people or society, hoping to help students understand that every choice has the potential to have an ethical component.”

Need Help Raising Ethical Scenarios?

Check out this running list of AI Ethics & Policy News articles by Casey Fiesler for inspiration of what topics to raise!

Prompt Reflection

When raising ethical scenarios or simply asking students to complete a particular assignment, invite students to think further about the circumstances, reasonings, and implications of a given topic or task. For instance, Skirpan et al. (2018) discuss a “spectogram” activity in which students stand in a line and are asked questions with two potential polar answers (represented by each end of the line). In this activity, students answer the questions by moving to different locations along the line and are asked to discuss why they chose particular stances—prompting students to consider their own positions and reasoning as well as their peers’ on questions such as,Do you believe face recognition technology is good or bad for society?”

Check out work by Gorski and Dalton (2020) for different approaches to reflection. Although this work is not in CS, it may still help inspire what kinds of topics and questions may need to be bridged and discussed within CS courses as they relate to broader social and cultural influences.

Rob Thompson

Teaching Assistant Professor
Courses Taught: CSCI 101 Intro to CS, 102, 128 CS for STEM, 498 Intro to Human-Computer Interaction

In his courses, Rob prepares lectures that emphasize the impact designs will have on real people throughout multiple points of the design process. Students are guided to reflect on the ethical implications of homework assignments that are based on real engineering applications of programming.

Some example assignments include:

  • Calculating and contrasting different costs for an undersea conductive cable based on different choices of material. Reflection Prompts: As the carbon footprint of metal production contributes to climate change, what factors should be included in determining a metal manufacturing design process?
  • Translating a DNA sequence into its corresponding amino acid chain. Reflection Prompts: If you could change your human body with CRISPR technology, what would you change and why? Should any individual be given the right to change their human body genetically?
  • Visualizing direction survey data from an oil drilling operation. Reflection Prompt: What could be the potential consequences of a logic error in the production version of this program?

Consider Different Roles

Ask students to account for various stances and perspectives that may be relevant to different ethical issues to help students process how to approach ethical issues. For instance, assign students to write position papers on why and why not a particular technology should be implemented (e.g. defending Facebook’s obligation to suppress fake news (Grosz 2019)). Or invite students to take part in role-based discussion or role-play scenarios to broaden student exposure to different positions (e.g. see Shapiro 2021 for further discussion of the usefulness of role-play and an example scenario about self-driving vehicles). Additionally, when leading discussions or reflection, invite students to think about the role of power in technology design and development (e.g. see Vakil 2018) to further understanding of the way technology can influence and be influenced by society.

Christine Liebe 

Professor of Practice
Courses Taught: CSCI 128 Computer Science for Stem, MAED 498/598 Computer Science Practices & Technological Impacts on Society

Christine conducts small group activities in which students take on different roles (e.g. lawyer, engineer, scientist) and discuss the ethical implications of a particular topic using the point of view of their given role. Additionally, students are invited to analyze a machine learning program for bias, rewrite code with suggestions on how to address that bias, and write a memo to a fictional business executive with their findings. Students are also asked to write a philosophy paper on their ethical beliefs to clearly communicate to others what CS ethics means to them.

Invite Speakers with Real-World Experience

Invite people of varying and different expertise to the classroom to introduce students to a variety of experiences and expectations. For instance, invite professionals of a related field that may be able to provide insights about first-hand experiences in identifying and dealing with ethical issues (e.g. practicing computer scientists, researchers of specialized topics, privacy lawyers, technology designers) (Skirpan 2018). In order to ensure an inclusive learning environment, emphasize  variety (of backgrounds, disciplines, etc.) when selecting guest speakers so that student can hear from a range of perspectives and experiences.  

Estelle Smith

Assistant Professor
Courses Taught: CSCI 598 Social & Collaborative Computing, 406 Algorithms

“I hope that students exit the class with far more exposure to the ethical implications of the conduct of human subjects research, as well as the broader ethics of social technologies out in the world today.”

This Resource & Reality

There is an increasing interest and demand in making discussion of ethics a core component of CS education which has resulted in an increased amount of targeted ethics courses and course material (e.g. see Fiesler 2020; Grosz 2019; Lennerfors 2020). As this resource has suggested, we can futher integrate ethics into CS by (1) emphasizing the importance of the inclusion of ethics within CS education and (2) presenting a variety of example ethics-related activities for CS educators to easily include within their courses. However, while these activities can help further student engagement with ethics-related discussion in a given course, ethics courses are still often standalone, instances of ethics discussion are brief and not often enough, and there are no standards on how ethics in CS should be taught. To address this, a deeper integration of ethics across the CS curriculum is necessary. For instance, Harvard educators and CS faculty introduced Embedded EthiCS in which multiple short ethics modules were designed and implemented within core CS courses to emphasize the importance of ethical reasoning throughout all parts of CS and technology development. Such examples demonstrate how it is entirely possible to further integrate ethics into CS and how such efforts can be positively accepted by students and faculty. Here at Mines, we can continue this work by intensifying campus-wide collaborations consisting of participation by all CS faculty as well as joint efforts with other disciplines and departments (e.g. with Mines Departments of Engineering, Design, and Society and Humanities, Arts, and Social Science through the Ethics Across Campus initiative).

Recommended Books Discussing the Importance of Ethical & Social Considerations