#ethicalCS: Algorithms

Algorithms are an essential part of Computer Science where a generalized and repeatable set of steps are created to accomplish a task. It allows for humans ideas to be implemented via computers and machines. But it can also lead to ethical issues worth pondering. Here is a guide to help you and your student dig into the topic.

Saber Khan
Nov 29, 2017 · 2 min read

This is part of a series of documents meant support a discussion and investigation of ethics and morals in relation to the impact of computer science on the world at-large. You can find the rest of series here:

Introduction: In this document we will engage with the CS concept of Algorithms which

Algorithms are a generalized and repeatable sequence of instructions that achieve a particular purpose and output, given a set of inputs. It’s important to understand when, why and how to implement an algorithm, and to consider who or what might be affected. (CSforAll NYC Blueprint).

This document is generated from the #ethicalCS Twitter chat. You can find the highlights from the chat on Algorithms here with Caroline Sinders, Francis Tseng, and others.


  1. What are developers accountable for in an algorithm?
  2. How do developers protect user data while still building a useful algorithm?
  3. How can we build algorithms that resist amplifying biases that exist in real-life?


  1. Create agency and transparency for users by articulating how an algorithm works and ask for feedback.
  2. Software can be used in unintended way and in different contexts than what developer expects.
  3. Thoughtful design and empathy can help developers think about impact of code.
  4. Place the impact instead of the tools at center of the process and study the outcome.
  5. Discussion of ethics and impact are missing from coding education.
  6. Algorithms are not magic and are created by a set of choices made by people.
  7. Skepticism about algorithms is healthy; fear is not.