The act of describing a program in unambiguous detail and the act of programming are one and the same. To describe something in sufficient detail to tell a computer what to do is the same as telling the computer what to do. The discipline of programming is the discipline of thinking clearly about what you want done and expressing it so precisely that a machine can execute it.