Week 04 · overview
Week 4: Programs Are Systems
A program is not just a pile of lines that execute from top to bottom. It is a system that accepts inputs, stores state, makes decisions, changes state, and produces outputs. This week you will learn to read small programs the same way you read a service or network: identify the boundary, trace the state, observe evidence, and test one change at a time.
The defensive connection matters. Many software failures begin when a program receives an input the author did not model, reaches a branch nobody tested, or changes state without leaving useful evidence. You do not need exploit code to study that problem. You need a precise execution trace.
This week
- Programs Have State — model input, variables, branches, state changes, and output.
- Branches Create Alternate Futures — trace the same program through different paths and explain why the result changed.
- Validate Before You Trust — add a narrow input boundary, test valid and invalid cases, and document what the control actually proves.
Evidence artifact
Build an Execution and Input Boundary Record containing:
- the program's input boundary;
- a state table for at least three cases;
- one branch trace;
- one malformed-input case;
- the control you added;
- a positive retest and a negative retest; and
- one limitation that remains.
The goal is not to write clever code. The goal is to make program behavior explainable.