⚖️ Ethics in Computing

AI Ethics

Why AI Ethics Matters

"The question is not whether AI will transform society, but how — and who decides."

AI systems increasingly make decisions affecting: - Hiring and lending - Healthcare diagnoses - Criminal justice - Content moderation - Autonomous vehicles

Core Ethical Principles

Principle Description
Beneficence Do good, promote well-being
Non-maleficence Do no harm
Autonomy Respect human agency and consent
Justice Fair distribution of benefits/burdens
Explicability Transparency and accountability

Key Issue Areas

1. Bias and Fairness

Problem: Historical bias in training data → learns historical discrimination

Example: Amazon's hiring tool (2018) — Trained on 10 years of resumes → penalized women's colleges, terms like "women's chess club"

Type of Bias Source Mitigation
Historical Past discrimination in data Reweighting, counterfactual fairness
Measurement Proxy variables (zip code → race) Remove proxies, causal modeling
Representation Under-sampled groups Oversampling, synthetic data
Evaluation Metrics favor majority Disaggregated metrics, equality constraints

2. Transparency & Explainability

Level Description Example
Global How model works overall Feature importance plots
Local Why specific prediction SHAP, LIME
Counterfactual What would change outcome "If income +$10k → approved"
# Explainable AI example
import shap

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)
// C++ doesn't have native SHAP library
// Use Python bindings or integrate with Python for SHAP
// Alternative: Use ML libraries with built-in feature importance

// Example using LightGBM feature importance
#include <LightGBM/c_api.h>

void print_feature_importance(BoosterHandle booster) {
    int num_features = 0;
    int* feature_importance = nullptr;
    LGBM_BoosterGetFeatureImportance(booster, 0, -1, &num_features, &feature_importance);
    for (int i = 0; i < num_features; ++i) {
        const char* name = nullptr;
        LGBM_BoosterGetFeatureName(booster, i, &name);
        std::cout << name << ": " << feature_importance[i] << "\n";
    }
    free(feature_importance);
}
import java.util.*;
import ai.djl.modality.vision.transforms.*;
import ai.djl.modality.vision.classification.*;

// Use DJL or Weka for feature importance in Java
import ai.djl.repository.zoo.*;

public class FeatureImportanceExample {
    public static void main(String[] args) {
        // Using DJL for XGBoost/LightGBM feature importance
        // This is a placeholder - actual implementation depends on model
        System.out.println("Use DJL/Weka for feature importance in Java");
    }
}
using System;
using Microsoft.ML;
using Microsoft.ML.Data;

// ML.NET feature importance (permutation-based)
public class FeatureImportanceExample {
    public static void Main() {
        // ML.NET permutation feature importance
        var context = new MLContext();

        // Example using permutation feature importance
        // var importance = context.PermutationFeatureImportance(trainedModel, testData, labelColumn);
        Console.WriteLine("Use ML.NET permutation feature importance");
    }
}

3. Privacy

Concern Approach
Data minimization Collect only what's needed
Anonymization k-anonymity, differential privacy
Federated learning Train on-device, share updates
Homomorphic encryption Compute on encrypted data

4. Accountability & Governance

┌─────────────────────────────────────────┐
│           AI Lifecycle                  │
├─────────────────────────────────────────┤
│  Design → Develop → Test → Deploy       │
│     ↓        ↓       ↓       ↓          │
│  Ethics   Code    Test    Monitor       │
│  Review   Review  (bias,  (drift,      │
│           standards safety) feedback)   │
└─────────────────────────────────────────┘

5. Autonomous Systems

Domain Ethical Questions
Autonomous vehicles Trolley problems, liability
Weapons Lethal autonomous weapons
Healthcare Decision authority, consent
Surveillance Consent, proportionality

Responsible AI Development

Development Checklist

  • [ ] Diverse team — multiple perspectives
  • [ ] Bias assessment — before training
  • [ ] Impact assessment — affected communities
  • [ ] Documentation — model cards, datasheets
  • [ ] Testing — adversarial, edge cases
  • [ ] Monitoring — drift, feedback loops
  • [ ] Redress — appeal process for affected

Model Cards (Mitchell et al., 2019)

## Model Card: Resume Screening v2.1

### Intended Use
Screening software engineering resumes

### Training Data
- 50K resumes (2019-2023)
- Anonymized, balanced gender/ethnicity

### Performance
| Group | Precision | Recall | F1 |
|-------|-----------|--------|-----|
| Overall | 0.87 | 0.82 | 0.84 |
| Women | 0.85 | 0.79 | 0.82 |
| Men | 0.88 | 0.84 | 0.86 |

### Limitations
- Not validated for non-software roles
- English-only resumes

Regulatory Landscape

Regulation Region Key Requirements
EU AI Act EU Risk tiers, banned uses, conformity assessment
Algorithmic Accountability Act US (proposed) Impact assessments for high-risk AI
GDPR Art. 22 EU Right to explanation, human review
NYC Local Law 144 NYC Bias audit for hiring algorithms

Practical Frameworks

IEEE Ethically Aligned Design

  1. Human Rights — AI must respect dignity
  2. Well-being — Maximize benefit
  3. Accountability — Clear responsibility
  4. Transparency — Understandable and auditable

Montreal Declaration

  • Respect for autonomy
  • Protection of privacy
  • Solidarity — shared benefits
  • Democratic participation

Practical Steps for Developers

Phase Actions
Design Stakeholder mapping, harm modeling
Data Audit sources, consent, representativeness
Training Fairness constraints, adversarial testing
Eval Disaggregated metrics, stress testing
Deploy Gradual rollout, monitoring, kill switch
Maintain Drift detection, feedback, retraining

Resources

  • Weapons of Math Destruction — Cathy O'Neil
  • Artificial Unintelligence — Meredith Broussard
  • Algorithms of Oppression — Safiya Noble
  • The Ethical Algorithm — Kearns & Roth
  • Papers: "Model Cards for Model Reporting" (Mitchell et al., 2019), "Datasheets for Datasets" (Gebru et al., 2021)