The mathematics of programming and why we should teach it
David Gries · Journal of computing sciences in colleges · 2004
Much of the work on program correctness and how it could influence programming was developed in the 1970's. Nevertheless, first-semester texts and even second-semester texts on programming don't touch the topic, or pay only lip service to it. The students, the CS curriculum, and the field lose out because of this. We produce inefficient hackers, who can't see the beauty in well-done, disciplined programming. CS already has its field of Computational Complexity; we should be teaching Computational Simplicity. In this lecture, we will try to show how correctness concerns can be integrated into our courses and the effect that the integration has.