Decide on the algorithm: *how* the program will do that
An algorithm is a step-by-step procedure to solve some problem (or set of problems)
where each step is explicitly specified and requires no judgment, that is guarenteed to terminate
in a finite number of steps.
Write code -- implement the algorithm in a programming language