CS210 · Block 3 · Lesson 27

Ethics

ACM Code of Ethics · Case analysis · Reasoned positions · Graded discussion
At a glance: Today you step away from C and pick up a skill every computing professional needs: reasoning carefully about the ethical weight of what you build. You will learn the ACM Code of Ethics as a working framework, watch one real case analyzed end to end, and begin the graded ethics discussion where you analyze an issue of your own.
Contents
  1. Lesson Objectives
  2. Assigned Readings
  3. Pre-Class Work
  4. Lesson Materials and Overview
  5. In-Class Work
  6. After Class
1. Lesson Objectives

By the end of this lesson, cadets will be able to:

  1. Summarize the principles of the ACM Code of Ethics and Professional Conduct. (Outcome 5)
  2. Analyze a contemporary ethical issue in computing using the ACM Code as a framework. (Outcome 5)
  3. Articulate a reasoned position on an ethical question in computing. (Outcomes 4, 5)
2. Assigned Readings
Source Sections Why
ACM Code of Ethics and Professional Conduct Preamble and Sections 1–4 (all 28 principles) The framework you will apply in the discussion. Read the principles and skim the guidance under each.
ACM “Using the Code: Case Studies” Any one or two cases Optional. Worked examples of applying the Code to real situations, written by the task force that wrote the Code. A good model for your own analysis.
Ethics in Computing (NC State) Browse the case catalog Optional. A browsable catalog of real computing cases to help you choose an issue to write about.
3. Pre-Class Work
Do this first. About 30 minutes. Read the Code, then come to class with an issue in mind.
1
Read the ACM Code of Ethics, all four sections.

Read it once, start to finish. You do not need to memorize the numbers. The goal is to recognize the shape of the Code so that when you read about a real issue, the relevant principles come to mind.

Click for a quick orientation to the four sections

Section 1, General Ethical Principles. The foundation: contribute to society, avoid harm, be honest, be fair, respect others’ work, respect privacy, honor confidentiality. Most everyday cases land here.

Section 2, Professional Responsibilities. What it means to do the work well: quality, competence, knowing the rules, accepting review, evaluating risks and impacts, secure design.

Section 3, Professional Leadership Principles. For those who lead teams or systems: keep the public good central, care for systems that become part of society’s infrastructure.

Section 4, Compliance with the Code. Upholding the Code and treating violations seriously.

2
Come to class with an issue in mind.

You will write your discussion post about a real computing ethics issue. Have one or two candidates ready. The discussion handout lists starting points (algorithmic decisions in criminal justice, automated hiring, large data breaches, location data from fitness apps, smart-city surveillance, dual-use research, and more), or browse the optional case catalogs in the readings.

3
Skim the discussion assignment and its rubric.

Open the Ethics Discussion in Blackboard and read what is being asked: one main post and two replies, graded together out of 40 points. Knowing where the points are before you draft makes the whole thing easier.

4. Lesson Materials and Overview
Jump to: Slides · Why ethics · The ACM Code · Applying a principle · Worked example · The discussion

Slides

Lesson 27 Slides (PDF)

Why ethics in computing

The systems you will build decide who gets a loan, what a feed shows a teenager, whether a sensor flags the right person, and how a hospital records survive a crash. Computing professionals sit at the controls of technology that touches nearly everyone, often invisibly. That position carries responsibility, and “it compiled and shipped” is not the same as “it was the right thing to build.” The goal today is not to make you feel guilty about technology. It is to give you a shared, professional vocabulary for spotting the ethical stakes in a situation and reasoning about them clearly enough to defend a position.

The ACM Code of Ethics

The Association for Computing Machinery is the largest professional body in computing, and its Code of Ethics and Professional Conduct (adopted in 2018) is the standard reference for the field. The Code is not a rulebook that decides cases for you. As its own preamble says, it is a basis for ethical decision-making: most real situations touch several principles, and different principles carry different weight depending on the facts. The public good is always the primary consideration.

The Code has four sections, 28 numbered principles in all. Here is the full map for reference. Read the actual text and guidance on the ACM site; this is just the skeleton.

Section 1 · General Ethical Principles
1.1 Contribute to society and to human well-being · 1.2 Avoid harm · 1.3 Be honest and trustworthy · 1.4 Be fair and take action not to discriminate · 1.5 Respect the work required to produce new ideas, inventions, creative works, and computing artifacts · 1.6 Respect privacy · 1.7 Honor confidentiality
Section 2 · Professional Responsibilities
2.1 Strive to achieve high quality in processes and products · 2.2 Maintain high standards of professional competence, conduct, and ethical practice · 2.3 Know and respect existing rules pertaining to professional work · 2.4 Accept and provide appropriate professional review · 2.5 Give comprehensive and thorough evaluations of systems and their impacts, including possible risks · 2.6 Perform work only in areas of competence · 2.7 Foster public awareness and understanding of computing · 2.8 Access computing and communication resources only when authorized or compelled by the public good · 2.9 Design and implement systems that are robustly and usably secure
Section 3 · Professional Leadership Principles
3.1 Ensure that the public good is the central concern · 3.2 Articulate, encourage acceptance of, and evaluate fulfillment of social responsibilities · 3.3 Manage personnel and resources to enhance the quality of working life · 3.4 Articulate, apply, and support policies and processes that reflect the Code · 3.5 Create opportunities for members of the group to grow as professionals · 3.6 Use care when modifying or retiring systems · 3.7 Recognize and take special care of systems that become integrated into the infrastructure of society
Section 4 · Compliance with the Code
4.1 Uphold, promote, and respect the principles of the Code · 4.2 Treat violations of the Code as inconsistent with membership in the ACM

Applying a principle: the method

Naming a principle is the easy part and earns almost nothing. The skill the discussion grades, and the skill that matters in practice, is application. For each principle you choose, do four things:

  1. Name the principle and what it requires, in your own words.
  2. Connect it to the specific facts of your issue. Which detail of this case does the principle speak to?
  3. Draw the implication. Given the principle, what should have been done differently, or what should happen going forward?
  4. Take a position. Once both principles are applied, state where you land and why, grounded in them.

A useful test: if a sentence in your post would read the same no matter which issue you were writing about, it is not application yet. Application is specific to your facts.

Worked example: a fitness app’s heatmap

The issue. A popular fitness app let users share their workouts and then published a global “heatmap” built from everyone’s aggregated GPS tracks. The data was anonymized and aggregated, so the company saw little risk. But in remote areas where almost the only people exercising were soldiers, the bright lines on the otherwise dark map traced the perimeters, internal roads, and patrol routes of military sites that were not supposed to be on any public map. Analysts spotted it within days.

Principle 1.6, Respect privacy. The company treated “aggregated and anonymized” as equivalent to “safe to publish.” The privacy principle asks more than that: it calls for understanding the forms privacy can take and preventing re-identification. Here, aggregating sparse data in an empty region did not hide individuals or the pattern of their movements; it spotlighted them. Applying 1.6, the company should have evaluated whether the published product could expose sensitive patterns about identifiable groups and places, not just whether individual names were attached.

Principle 1.2, Avoid harm. The exposure was not merely embarrassing; it created a foreseeable physical-security risk to people at those sites. Avoiding harm requires anticipating the consequences of a design choice, including consequences the designers did not intend. A pre-release review asking “who could be hurt if this data were read by an adversary?” would have surfaced the risk. Applying 1.2, the responsible move was to assess and mitigate that harm, for example by excluding sparse or sensitive regions, before publishing rather than after the story broke.

A reasoned position. Publishing the heatmap as designed was an ethical lapse, not because the engineers acted maliciously, but because they reasoned about privacy and harm too narrowly. “No individual is named” is not the same as “no one is exposed,” and “we did not intend harm” is not the same as “we took care to avoid it.” The two principles together point to the same fix: a consequences-and-stakeholders review before release, with the public good, including the safety of people who never opted into being mapped, treated as the primary consideration. Notice that this analysis used exactly two principles, tied each to specific facts, and ended somewhere. That is the shape of a strong main post.

The graded discussion

Your assessment for this lesson is a graded discussion in Blackboard, worth 40 points. It has three parts, graded together:

  • One main post of at least 300 words analyzing a computing ethics issue using exactly two ACM principles, ending in a reasoned position and a short references list.
  • Two reply posts of at least 200 words each, responding substantively to two different classmates by extending, complicating, or connecting their analysis.
  • A documentation statement at the end of your main post describing any help you received, or stating “None.”

The worked example above is a model for the main post: state the issue, apply two principles to the specific facts, take a position, cite your sources. Two well-developed principles beat three shallow ones.

Generative AI: This assignment may use an LLM only as a grammar or spell checker. It may not write your post or replies, and you must document any help you receive. Read the help and documentation policies in the discussion handout before you start.

Full instructions, the example issue list, and the point breakdown are in the Ethics Discussion board on Blackboard.

5. In-Class Work

Three things to do in class. There is no coding lab today; the graded artifact is the ethics discussion. Use the checklist to track your progress.

  • Take the ACM Code self-check below. Ten scenario questions that drill matching issues to principles, the analysis method, and the discussion rules. About 15 minutes. It ends with a score, a completion code, and a per-question recap.
  • Pick your issue and choose your two principles. Settle on the issue you will write about and the two ACM principles that most sharply illuminate it. Sketch, in a sentence each, how each principle connects to the facts.
  • Start drafting your main post. Begin the post in the Ethics Discussion board. You do not have to finish in class, but leave with a working outline. The main post is due 5 Nov, 2300.

ACM Code Self-Check

Ten questions. Read each scenario and pick the principle or answer that fits, then click Submit. This is practice for the discussion, not a graded item, but it is the fastest way to get the Code into working memory.

Before you begin

Enter your name. It will appear on the score card so you have a record of your work if you want to screenshot it.

CS210 Lesson 27 · ACM Code Self-Check

Ten questions on matching computing scenarios to ACM Code principles, the analysis method, and the discussion rules. Pass at 70% or above; below that, take it again after reviewing.
How this works: One question per card. Pick your answer and click Submit. Feedback appears, then click Next to move on. Answers lock once submitted, so think before you submit. After all ten, you get a score, a completion code, and a per-question recap. This is practice, not the graded discussion — it is here to get the ACM Code into working memory before you draft your post.
6. After Class
  • Finish and post your main post to the Ethics Discussion board. Main post due 5 Nov, 2300.
  • After the main-post deadline, read your classmates’ posts and write your two substantive replies. Replies due 9 Nov, 2300 (both M-day and T-day sections).
  • Include a documentation statement at the end of your main post. If you received no help, it must say “None.” Vague statements incur a deduction.
  • Heads up: Lesson 28 is GR3, covering Lessons 18–27. Use the review materials to prepare; there is no new reading for the next lesson.
Need help? Schedule EI with your instructor. Bring the issue you are considering and your two candidate principles, or a draft paragraph you are unsure about. The most useful question is “here is how I applied this principle to these facts, is the reasoning sound?” Specific drafts get specific feedback. The Resources section has the full ACM Code if you want to consult it first.