5 ms·
Dijkstra (the one who has a graph algorithm named after him, aside from being a really influential computer scientist in many ways) argued more or less exactly
by electronvolt 12y ago
Dijkstra (the one who has a graph algorithm named after him, aside from being a really influential computer scientist in many ways) argued more or less exactly what you're arguing: that formal methods (that is, formally proving, mathematically, that your code will behave as it should) are the appropriate way to teach computer science/programming. His argument is basically that computer science is very hard applied math, and should be treated as such.
You might find https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E... an interesting read, if you haven't read it before. There's been some interesting discussion of it on HN in the past, too.
- jamii 12y agoDijkstra also complained about lazy students who wasted valuable computing time on assemblers instead of just writing out the machine code by hand. I am strongly in favour of mathematical methods but that doesn't preclude exploratory work or visualisation. The idea that mathematicians spend all their time constructing rigorous theories and proofs is a complete illusion. It is common practice (outside of the Bourbaki school, at least) to alternate between building intuition through examples and solidifying intuition through rigorous proofs. See eg http://terrytao.wordpress.com/career-advice/there%E2%80%99s-more-to-mathematics-than-rigour-and-proofs/ http://terrytao.wordpress.com/career-advice/there%E2%80%99s-... (by Terence Tao, one of the most talented mathematicians alive). By comparison, we are extraordinarily lucky in programming in that everything we deal with is computable and representable. It is far easier for us to display examples and visualise systems. So while I agree that more understanding of mathematics and proof would aid in programming complex systems and I have certainly found that my degree in maths was a good preparation for programming, I don't see why we shouldn't also take advantage of the power of computers to help build the intuition that is necessary for rigour.