= Computer programming
<Computer programming> constructs, tests and revises <computer programs>[programs] that express computations in an executable or interpretable form. It connects a problem specification to data representations, <algorithms>, interfaces and error handling. Writing syntax is one part; deciding what results and failures should mean is also part of the task.
For example, computing an <arithmetic mean> requires representing the observations, accumulating their sum and dividing by the count. The <computer program> must also define what happens for an empty <input>, unavailable data or a number representation that cannot hold an intermediate result. Choosing an <algorithm> and testing ordinary examples does not automatically settle those boundary cases. A useful implementation makes its assumptions visible and supplies evidence through tests, analysis or <mathematical proofs>[proofs] appropriate to the claim.
Back to article page