๐3.2: Impact of Program Design
Table of Contents
๐ This page is an expanded version of CSAwesome Lesson 3.2 from Runestone Academy (Barb Ericson, Beryl Hoffman, Peter Seibel)
Impact of Program Design
We are living in an age of rapid development in technology and automation. Software and hardware developers increasingly have real impacts on peopleโs lives. As Computer Scientists, we follow the following ACM Professional Code of Ethics which includes broad guidelines such as โavoid harmโ and โrespect privacyโ.
However, sometimes programs have unintended consequences. It can be difficult to ensure system reliability, which refers to a program being able to perform its tasks as expected under stated conditions without failure. Programmers should make an effort to maximize system reliability by testing the program with a variety of conditions.
The design and creation of software has impacts on society, the economy, and culture. These impacts can be both beneficial and harmful. Programs meant to fill a need or solve a problem can have unintended harmful effects beyond their intended use.
โ๏ธ Legal issues and intellectual property (IP) concerns can also arise when creating programs. Programmers often reuse code written by others and published as open source which is free to use. Incorporation of code that is not published as open source requires the programmer to obtain permission for (and often purchase) the code before integrating it into their program.
๐ฌ DISCUSS: Do you see IP addressed anywhere on my website?
Ethical Issues in AI/ML
๐ง The fields of Artificial Intelligence (AI) and Machine Learning (ML) increasingly pose ethical questions in our world.
HOT TOPICS:
- โDeepfakeโ AI-generated media (videos, photos)
- Automated hiring algorithms (resume-scanning)
- Facial recognition software (biometric data at airport security)
- Autonomous vehicles (self-driving cars) use machine learning to learn to follow lanes and avoid collisions, which could make our world much safer.
- Self-driving cars do not get distracted by text messages, they donโt drink and driveโฆ
- However, what if the car needs to make an moral decision about avoiding a collision with a pedestrian by causing an accident that may also lead to the loss of life?
Ethical Design of Technology
โ ๏ธ Who is responsible for decisions around ethical issues in technology design?
- Programmers?
- Companies?
- Governments?
- Users?
Watch the following video to explore ethical dilemmas in designing self-driving cars:
๐ฌ DISCUSS: If you were a programmer for autonomous vehicle software, how would you approach such decisions?
๐ฎ Interested in exploring the trolley problem more? Check out this Neal.fun game to develop your intuition for decision-making:
๐บ Here are some other interesting videos about the impacts of AI in different domains:
- AI in Healthcare: Using artificial intelligence in radiology clinical practice
- AI in Agriculture: New farm machines to kill weeds and harvest crops
Technology is Not Neutral
Historian Melvin Kranzbergโs famous first law of technology argues that โtechnology is neither good nor bad; nor is it neutral.โ For more information on this topic, see Stephanie Hareโs presentation Technology is Not Neutral, which also examines strong counterpoints.
โAs weโre designing the system, weโre designing society. Ethical rules that we choose to put into that design [impact society]โฆ Nothing is self-evident.โ ~ Tim Berners-Lee, Creator of the World Wide Web
๐ฎ Try this game about non-neutrality in software design:
From the creators: โSurvival of the Best Fit is an educational game about hiring bias in AI. We aim to explain how the misuse of AI can make machines inherit human biases and further inequality. Much of the public debate on AI has presented it as a threat imposed on us, rather than one that we have agency over. We want to change that by helping people understand the technology, and demand more accountability from those building increasingly pervasive software systems.โ
In-Class Activity: Ethics Exploration
๐ป In small groups, choose a modern software application to investigate its social and ethical implications.
- Social media feed algorithms (pick a specific app to look into, like TikTok or Instagram)
- Deceptive UI/UX patterns (disguised ads, trick wording, fake scarcity, โconfirmshamingโ)
- Gig economy apps (Uber, DoorDash, etc.)
- Mental health chatbots or companions (Friend, โghostbotsโ)
- Deepfakes and AI-generated media (Sora, Dall-E, etc.)
๐ RESEARCH:
- How the software works โ highlight specific design choices
- Weigh the benefits and possible harmful effects โ from the perspective of different stakeholders
- Describe ethical issues that may arise โ during the design process or later consequences
TIP: Current events and real examples would be helpful to include here!
๐ฃ๏ธ Prepare a short PRESENTATION for your class:
- You could make it visual on Google Slides/Canva (3-5 slides max)
- OR you could just write a script/notes for a speech
- Use one or more of the ethical frameworks below to guide any decision-making arguments โฌ๏ธ
EX: โFrom a utilitarian standpoint, we think this app is ethical because helps more people than it harmsโ

This graphic is from a lesson about Deceptive Patterns in UI/UX Design that I gave in one of my graduate school courses. The topic relates to what we learned last year in our Intro to Web Development course, check it out ๐
โญ๏ธ Summary
-
(AP 3.2.A.1) System reliability refers to the program being able to perform its tasks as expected under stated conditions without failure. Programmers should make an effort to maximize system reliability by testing the program with a variety of conditions.
-
(AP 3.2.A.2) The creation of programs has impacts on society, the economy, and culture. These impacts can be both beneficial and harmful. Programs meant to fill a need or solve a problem can have unintended harmful effects beyond their intended use.
-
(AP 3.2.A.3) Legal issues and intellectual property concerns arise when creating programs. Programmers often reuse code written by others and published as open source and free to use. Incorporation of code that is not published as open source requires the programmer to obtain permission and often purchase the code before integrating it into their program.
Acknowledgement
Content on this page is adapted from Runestone Academy - Barb Ericson, Beryl Hoffman, Peter Seibel.