Big idea: Programs affect real people. Reliable design, careful testing, and respect for others' code and data are part of writing software responsibly.
Learning objectives
Explain the social and ethical implications of computing systems.
Reliability
System reliability means a program does its job as expected under stated conditions. You improve it by testing with many kinds of input: typical values, edge cases (0, empty, the largest allowed), and invalid input.
Impacts and intellectual property
Software can help or harm society, the economy, and culture, sometimes in ways its creators didn't intend (a navigation app sending heavy traffic through a quiet neighborhood).
Code you didn't write is someone's intellectual property. Open source code is published for reuse under a license; other code needs permission and often payment.
Check the license and give credit when you reuse code.
Key points
System reliability: the program performs as expected under stated conditions. Testing improves it.
Programs have social, economic, and cultural effects, including unintended ones.
Reusing code raises legal and intellectual-property questions; open source licenses permit reuse.
Watch out
Check the license before copying code into your program.
Quick check
A game passes all its tests on desktops but crashes on phones. What property needs improving?Show answer
Reliability. It must be tested under more conditions (devices).