"Computer programming (often simply programming) is the craft of
implementing one or more interrelated abstract algorithms using a
particular programming language to produce a concrete computer program.
Programming has elements of art, science, mathematics, and engineering"
Understand the problem and requirements
Design or select an algorithm to solve it
Express (code) the algorithm in a programming language (e.g., C)
Test and debug the program until it works and meets the requirements
Write documentation as appropriate for users and/or future programmers
Maintain the program as the requirements or computing environment changes