Generally, the craft of programming is the factoring of a set of requirements into a a set of functions and data structures.