Topic 3.2 Notes – Impact of Program Design
1. System Reliability
System reliability means a program performs its intended tasks under stated conditions without failure. In plain terms, it works consistently, not just when everything is perfect.
A reliable system:
- Produces correct output for valid input
- Handles invalid or unexpected input without crashing
- Avoids unpredictable behavior
- Continues functioning under reasonable stress
Think about stakes. A calculator app glitch is annoying. A hospital system glitch is dangerous. Reliability becomes an ethical issue when failure harms people.
Designing for reliability
Reliable programs don’t happen by accident. They’re tested on more than just the “normal” case.
When evaluating a method, mentally test it in this order:
- Normal case
Expected, typical input. - Edge cases
Boundary values like 0, empty arrays, minimum or maximum values. - Invalid cases
Negative numbers when not allowed, null references, out-of-range values. - Extreme cases
Very large inputs or unusual combinations.
Here’s a simple visual using a percentage example. The valid range is 0 to 100. The endpoints are edge cases, values in the middle are normal cases, and anything outside that range is invalid.

Valid percentage range with normal, edge, and invalid cases
Common reliability mistakes students make on quizzes and FRQs:
- Only testing the happy path
- Ignoring 0, empty, or maximum values
- Assuming inputs are always valid
- Forgetting what happens if something unexpected occurs
If an FRQ gives you a method that takes input, check whether it should validate parameters. Even just adding a conditional check shows stronger design thinking.
2. Social, Economic, and Cultural Impacts of Programs
Programs exist in society. They change behavior.
Impacts can be:
- Social
Changes in communication, relationships, privacy, or mental health. - Economic
Automation replacing jobs, new markets forming, shifts in how people earn money. - Cultural
Changes in media consumption, values, norms, or daily habits.
The key idea is that programs can create benefits and harms at the same time.
Examples of impacts you should be able to describe:
- Increased access to education or information
- Reinforcement of bias through algorithms
- Privacy concerns from data collection
- Unequal access due to cost or internet availability
On multiple choice, you might see a scenario and need to identify a positive or negative impact. On a written response, you may need to explain how a design decision affects users. Always think:
- Who benefits?
- Who might be harmed?
- How does this change behavior?
3. Unintended Consequences
Unintended consequences happen when software is used in ways the designers didn’t predict.
This can occur when:
- Features are misused
- The program scales from hundreds to millions of users
- Incentives encourage unhealthy behavior
- An algorithm optimizes the wrong goal
Here’s how that pattern usually works. A team sets a goal, builds a process around it, and keeps refining that process to better hit the target. If the original goal is flawed or too narrow, the system can become very good at producing unwanted outcomes.

Goal-driven development process
For example, if a system maximizes user engagement, it might unintentionally promote extreme or addictive content because that keeps people interacting longer.
The important mindset is that releasing software does not end responsibility. Developers must monitor and adjust when harmful patterns appear.
On the AP exam, strong answers acknowledge trade-offs. Avoid saying technology is purely good or purely bad. Real systems have both effects.
4. Intellectual Property and Code Reuse
Modern programmers reuse code constantly. That reuse comes with legal and ethical responsibilities.
Open source code
Open source means the code is published with a license that allows reuse under certain conditions.
Licenses may require:
- Attribution (crediting the original author)
- Including the license text
- Sharing modifications
- Keeping derivative work open source (depending on the license)
You must follow the license terms.
Code without a license
If there is no license provided, the default is all rights reserved.
That means:
- You cannot legally use it
- You must request permission
- Publicly visible does not mean free to use
This shows up often in exam questions. If code is posted online without a license, the correct move is to obtain permission or find alternative code.
Why this matters
- Using code without permission can lead to legal consequences.
- Respecting intellectual property supports ethical development.
- Professional programmers must verify licensing before reuse.
You don’t need to memorize specific license names for AP CSA. You just need to understand the principles.