“On the cruelty of really teaching computing science”, E. W. Dijkstra, 1988

“…all by itself, a program is no more than half a conjecture. The other half of the conjecture is the functional specification the program is supposed to satisfy. **The programmer’s task is to present such complete conjectures as proven theorems**.”

http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html