11 — Computer Science in Society: Responsible Computing

A structured guide to designing, evaluating, and governing computing systems that are secure, private, correct, reliable, fair, accessible, and socially responsible.

The Scope of Responsible Computing

Computing systems shape health care, education, employment, transportation, communication, government, and personal relationships. As a result, technical decisions have consequences beyond whether a program runs.

A responsible computing professional asks two connected questions:

  1. Does the system work as intended?

  2. Should the system be built and used in this way?

The first question leads to engineering concerns such as security, , and . The second leads to concerns such as , fairness, , safety, and the public good.

A useful evaluation therefore considers both system behavior and human consequences. A technically successful system can still be harmful if it exposes personal information, excludes users, produces discriminatory outcomes, or encourages unsafe behavior.

Takeaway: Responsible computing combines technical quality with accountability for the effects of technology on people and society.

Security Principles

protects systems, data, and users from unauthorized access, alteration, destruction, or disruption. The provides a basic framework:

  • Confidentiality: Only authorized people or systems can view information.

  • Integrity: Information and program behavior remain accurate and are not improperly changed.

  • Availability: Authorized users can access systems and information when needed.

For example, an online banking system should keep account numbers confidential, prevent unauthorized balance changes, and remain available to customers.

Security is a system property, not merely a password feature. Important practices include:

  • Authentication: Establishing who a user or system is.

  • Authorization: Determining what an authenticated user may do.

  • : Granting only the access necessary for a task.

  • : Using multiple protective layers.

  • Secure defaults: Beginning with the safest practical configuration.

  • Fail-safe behavior: Limiting harm when errors occur.

  • Accountability: Keeping appropriate records so important actions can be investigated.

  • Threat modeling: Identifying assets, attackers, vulnerabilities, and consequences before implementation.

Cybersecurity risk management includes governance, identification, protection, detection, response, and recovery. Prevention matters, but monitoring, incident response, and restoration are also part of security.

A school database, for example, might combine role-based access control, encrypted connections, backups, monitoring for unusual activity, and a recovery plan. No single control is sufficient by itself.

Takeaway: Strong security protects confidentiality, integrity, and availability through coordinated preventive, detective, and recovery measures.

and Data Responsibility

concerns people’s ability to control information about themselves and to avoid inappropriate observation or use of that information. Security helps protect data, but a secure system can still violate . An organization might securely collect far more location data than it needs or use information for an unexpected purpose.

Responsible data practices include:

  • : Collect only information necessary for a stated purpose.

  • Purpose limitation: Use data only for communicated or properly authorized purposes.

  • Transparency: Explain what is collected, why it is collected, how long it is kept, and with whom it is shared.

  • User control: Provide meaningful access, correction, deletion, or withdrawal mechanisms where appropriate.

  • Retention limits: Delete or anonymize information when it is no longer needed.

  • by design: Address during requirements and architecture rather than adding it after deployment.

Security and ask different questions. Security asks whether unauthorized parties can access or damage information. asks whether information is being collected and used in an appropriate, expected, and proportionate way.

Takeaway: Protecting data is necessary for , but also requires restraint, transparency, appropriate use, and meaningful control.

and

means that software behavior satisfies specified requirements for relevant inputs and conditions. depends on requirements that are clear, complete, and consistent. A requirement such as “process requests quickly” is too ambiguous to verify without defining what “quickly” means.

Useful techniques include:

  • precise specifications and contracts;

  • code review and peer inspection;

  • unit, integration, system, and acceptance testing;

  • static analysis and type checking;

  • assertions and runtime checks;

  • formal methods or mathematical proofs for especially critical components; and

  • traceability from requirements to design, code, and tests.

Testing can reveal defects, but passing tests does not prove that software has no defects. Tests examine selected cases, while untested inputs and unusual interactions may still fail.

is related but distinct. A program may produce the correct result for ordinary inputs yet fail when a network connection is interrupted. It may also produce the right result but crash frequently, or continue operating while producing incorrect results.

Reliable systems anticipate faults and limit their effects through input validation, error handling, graceful degradation, redundancy, backups, timeouts, recovery procedures, monitoring, logging, maintenance, and testing under normal, extreme, and failure conditions.

An elevator controller, for example, should respond safely not only during a normal ride but also during sensor failures, power interruptions, invalid commands, and communication errors.

Takeaway: concerns satisfying requirements; concerns consistent operation over time and under expected faults. Both require explicit requirements and evidence from multiple assurance techniques.

and Fairness

A computing system can produce when its data, design, assumptions, or deployment systematically disadvantage some people or groups. does not require intentional prejudice. It can arise from unrepresentative data, historical inequalities, subjective labels, proxy variables, unequal error rates, inaccessible procedures, or use in a context different from the one used during development.

For example, a hiring model trained on historical decisions from a workplace that recruited mostly from one demographic group may reproduce that historical pattern. Variables that appear neutral can act as proxies for protected characteristics.

Reducing harmful requires a process rather than a single technical adjustment:

  1. Define the system’s purpose and acceptable uses.

  2. Involve affected communities and domain experts.

  3. Examine data quality, representation, and collection conditions.

  4. Measure performance separately for relevant groups.

  5. Test for disparate error rates and harmful outcomes.

  6. Document limitations, assumptions, and known failure cases.

  7. Provide human review, appeal, or correction mechanisms when decisions significantly affect people.

  8. Monitor after deployment because data and social conditions change.

Fairness is not always represented by one mathematical formula. Different definitions can conflict, so responsible design requires explaining which harms are being considered and why.

Takeaway: Fairness requires attention to the whole sociotechnical system: data, algorithms, design choices, context, outcomes, and opportunities for correction.

and Inclusion

means that people with different abilities can perceive, understand, navigate, and operate a system. Users may have visual, auditory, motor, speech, cognitive, learning, or temporary disabilities. also benefits people in changing environments; for example, captions help someone in a noisy location.

The Web Content Guidelines organize around four principles:

  • Perceivable: Information is available through more than one sensory channel when needed.

  • Operable: Users can operate controls with different input methods, such as a keyboard.

  • Understandable: Content and interactions are predictable and clear.

  • Robust: Content works with a range of browsers, devices, and assistive technologies.

Practical measures include:

  • providing meaningful text alternatives for images;

  • adding captions and transcripts to multimedia;

  • ensuring sufficient color contrast;

  • making every function usable by keyboard;

  • showing visible focus indicators;

  • labeling form fields and reporting errors clearly;

  • avoiding unnecessary time limits or motion; and

  • testing with assistive technologies and people with disabilities.

should be included during requirements, design, implementation, and testing. Retrofitting it at the end is usually more expensive and less effective.

Takeaway: Inclusive systems are designed for varied abilities from the beginning and are evaluated with both criteria and real users.

Social Responsibilities

The effects of computing extend beyond the people who purchase or operate a system. Stakeholders may include users, nonusers, employees, communities, future generations, and the environment.

Computing professionals should:

  • communicate limitations and risks honestly;

  • protect confidential information;

  • avoid deceptive or manipulative design;

  • respect intellectual property and licenses;

  • consider energy use and electronic waste;

  • include affected people in requirements and evaluation;

  • report serious defects or risks rather than hiding them;

  • challenge unsafe or discriminatory practices; and

  • keep their knowledge current as technologies, threats, and social conditions change.

The public good should be a primary consideration. Ethical responsibility is shared across programmers, designers, managers, researchers, educators, policymakers, and users. Organizational pressure does not eliminate an individual’s responsibility to recognize foreseeable harm and raise concerns.

Takeaway: Computing professionals are accountable not only for implementation quality but also for foreseeable effects on people, communities, and the environment.

Applying the Principles

A proposed computing system can be evaluated by turning broad values into concrete engineering questions:

  1. Purpose: What problem is being solved, and who benefits?

  2. Stakeholders: Who may be helped, burdened, excluded, or harmed?

  3. Security: What must remain confidential, accurate, and available?

  4. : What personal data is collected, and is each item necessary?

  5. : What are the precise requirements, and how will they be verified?

  6. : What happens when components, networks, users, or assumptions fail?

  7. Fairness: Could the data or design create unequal outcomes?

  8. : Can people with varied abilities use the system independently?

  9. Accountability: Who can explain, correct, suspend, or appeal a decision?

  10. Long-term effects: What maintenance, environmental, economic, or social consequences may appear later?

These questions lead to practical activities such as requirements analysis, threat modeling, review, testing, documentation, monitoring, evaluation, stakeholder consultation, and post-deployment review.

A system is not fully successful merely because it runs. It should also be dependable, understandable, inclusive, proportionate in its data practices, and worthy of public trust.

Final takeaway: Evaluate computing systems as sociotechnical systems. Technical performance and human consequences must be considered together.