There’s more to mathematics than rigour and proofs
terrytao.wordpress.com
terrytao.wordpress.com
In programming, the closest I’ve seen to a widely practiced theory has come out of the Haskell community. There, you can see the beginnings of a theory in which programs are constructed out of formal building blocks like monoids and functors and where appeals to category theory and monad laws guide design decisions.
It’s a start.
I also really can't get away without mentioning Edward Kmett[4], Conal Elliott[5], and Edward Z. Yang[6] for writing both blog posts and code expanding on the practical advantages of theoretical methods.
[1] https://personal.cis.strath.ac.uk/conor.mcbride/ further work available extensively at StackOverflow, user Pigworker (http://stackoverflow.com/users/828361/pigworker) and you should definitely attempt to read Kleisli Arrows of Outrageous Fortune if you're interested in some dependently typed madness.
[2] http://www.haskellforall.com/ and especially http://www.haskellforall.com/2012/09/the-functor-design-patt...
[3] http://hackage.haskell.org/package/pipes-2.5.0
And there's the inimitable Luke Palmer [2], whose blog contains nuggets of gold for those who care to dig through the archives.
Most of the intuitions of programming are not provable and will not become provable, ever. I think I can back that up using the properties of the arithmetical hierarchy from Yu I. Manin.
http://pauli.uni-muenster.de/~munsteg/arnold.html
Richard Courant, the classic book of which is referenced in the article, remarks in the preface of one of his other books how the logical order of presentation of mathematical theories is much different from the order that works best pedagogically. I wish more educators would understand this seemingly simple observation.
Initially, the students do not know how to write a coherent proof. That is why we give them formal tools such as induction, and require them to write clearly, detailing their steps. When we do not do this, we see catastrophic lack of logical and coherent thought. Sometimes, this is the result of them not being able to _write_ their thoughts coherently, but more often, it is a results of their thoughts not _being_ coherent in the first place. Formality is used, partly, as forced coherency in writing, in an attempt to induce coherency in thought.
Once the students are able to write coherent proofs, sure, let them ride fast, let them "freestyle" proofs, with the confidence that what they're writing is what they intend to write, and with the skill to communicate concisely, clearly and unambiguously with informal language. If they can do it, more power to them. Often times, however, they need a lot of time with the training wheels, before they can ride fast and not fall disastrously.
Those are in my opinion excellent examples of courses developing intuition without sacrificing rigour:
http://ocw.mit.edu/resources/res-18-006-calculus-revisited-s...
http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-...
I also love the books by Richard Courant for how they manage to explain the concepts in crystal-clear English writing, present both the applications and the theory, building up the rigour gradually.
>The emphasis is more on computation than on theory.
That's grade school mathematics in a nut shell.
He identifies three sequential stages in learning mathematics - the pre-rigor/intuitive handwavey stage, the rigorous 'axioms and proofs' stage and the final post rigorous stage (quoting from the article) .
'in which one has grown comfortable with all the rigorous foundations of one’s chosen field, and is now ready to revisit and refine one’s pre-rigorous intuition on the subject, but this time with the intuition solidly buttressed by rigorous theory. "
Many interesting thoughts on the transitions from one stage to the next. Great post.
I got out of mathematics (despite getting a PhD from a top department) because I felt that if all but a few dozen mathematicians in the world were shot, the progress of mathematics would not be much impeded, and I wasn't sure I would be in that several dozen. I did think I was that good in economics and related disciplines, but in that case there was a question as to what would get listened to. And so I wound up in a non-academic career ...
And before any of that, I got out of physics because it seemed boring. In the mid-1970s, that was a very fortunate decision. Going to grad school in math was somewhat about "Oops, I'm leaving my major, now what? Oh yes, I also finished a math major, and I can probably get into an excellent school and buy some time to decide what to do next ...."
If you are interested, [1] describes the experience of a professor teaching how to write correct and readable proofs about program semantics using the interactive theorem prover Isabelle/HOL.
Isabelle/HOL can make you learn fast because it allows one to get instant feedback on a proof. Proving things may then become surprisingly addictive.
The apprentice is lax, undisciplined, and writes buggy code.
The journeyman sees all that he has wrought upon the poor world with his awful code, and immediately takes to applying every precept he can to produce rigorously engineered and stable code.
I leave it to the imaginations of others to perceive what might lay in the third step.
The math major replied "3 is prime. 5 is prime. 7 is prime. 9 is ... NOT prime. The hypothesis is false."
The chemistry major replied "3 is prime. 5 is prime. 7 is prime. 9 is ... NOT prime. 11 is prime. 13 is prime ... The hypothesis is looking good, within experimental error."
The engineering major replied "3 is prime. 5 is prime. 7 is prime. 9 is prime. 11 is prime ..."
That's one way to cope when you're overmatched by rigor. ;)
3 is prime, 4 is prime, 5 is prime... :)
Even at rigorous stage, offloading computation increases dramatically exposure to solutions and builds intuition faster by orders of magnitude.
* * *
Offloading computation only works when you understand what the computations are and why we do them. That's something that must be learned, it's not knowledge that springs fully formed into our minds as soon as we step into a classroom.
Carrying out computations thus gives us explicit and implicit knowledge of how the things we may eventually automate actually work. But it's also valuable because it trains us to compute in a precise and effective manner—a capability that remains useful later on. For instance, in logic it's often important to be able to carry out syntactic manipulations (e.g. into normal forms) in one's head, or even tacitly.
I'm sure there are plenty of examples from other areas of mathematics where computation is important, it's just that we do it so automatically that we don't think about it. Often I've found that students have trouble following proofs that take logically and computationally innocent steps without saying what's going on. Here I don't mean things like applying AC in the background, but just simple tricks like de Morgan's laws or taking the contrapositive. They have difficulty because they haven't taken those steps often enough themselves to have internalised them.
And in particular I would like to hold up Electricity and Magnetism 2. Calculating the momentum of a magnetic field, in all but the most trivial case, takes a full sheet of paper: being rows and rows of 8 inch long equations as you carry out the tedious work of canceling terms; moving things in and out of square roots; and multiplying large polynomials together. It's all basic algebra stuff you learn in high school but it's a slog to work through and so time consuming that you actually lose track of the big picture and end up with very little better understanding at the end.
As far as I know that's why things like tensor and bra-ket notation had to be invented in the first place. Without a compressed notation the ability to get a correct answer to any interesting problem became less a question of knowledge and more a question of probability of transcription/sign flip errors.
not that anybody teaches sophmores tensor notation.
- What is the tangent line? How does it connect with the derivative?
- What is a limit. How is it used to make the above rigorous?
- What is the Fundamental Theorem of Calculus? Why, non-rigorously, would you expect it to be true?
That is not a random list. That's a list of the most important concepts taught in the first Calculus course or two. If you couldn't give a quick impromptu explanation of ALL of them, then you failed to master the key concepts. (Don't worry, most can't.)
To get to Terry Tao's formal math stage, you'd need to take proof-heavy courses such as real analysis.
But what I mean is that 25th time you're doing an integral to ram home some trigonometric identity or working out a fourier series for PDEs it's not because anybody hopes that this is the time you get the epiphany it's because the teachers need something for the grade books and you need to be able to do it during a midterm.
Assuming Wolfram wasn't engaged in just an attempt to sell more mathematica licenses I would assume that was kind of his point. If you dump the most of the endless repetition on to maxima/maple/mathematica you could actually spend the semester on the concepts and proving them instead of focusing so heavily on the student's facility at algebraic manipulation.
Now having had to do everything by hand I have the sort of knee jerk reaction that "well I had to do it so they should do it too" but then I also remember that it sucked giant balls. As I see it is students definitely need pretty solid facility at doing this sort of shit and so we get the classic: "where do we draw the line" problem, which means I should probably not be counted as a proponent of Wolfram, so much as maybe a sympathizer (in this regard; fuck NKS).
*also while I take didn't real, I did get a minor in math which included Basic Concepts of Mathematics, or as I tend to remember it "that semester of not being able to divide because it's not defined over the integer set" but it was certainly a purely proof oriented course, and my numerical methods 1&2 were at least 50% proof based, I've done the formal rigor thing.
I understand the grader was in a hurry, and the trig identity demonstrating that my answer was, in fact, equivalent to the standard one is not easy. But I had the right answer! And proved it was right, right there on the test!
I still remember the outrage. Over a question that did not matter then (I got an A+ in the course either way) or now.
Sure, play with those at first by hand, but try to plot and play with those functions in, say, Mathematica. Pretty soon you'll be able to intuitively "know" how any of the functions you could be thrown at exams should look like, which in itself is pretty usable skill.
Unrelated, I'd find it even more usable in physics, where solution guesstimate developed by exposure to numerous examples computationally solved can reliably indicate the correct solution as soon as you read the exercise or a problem.
The tick-tock analogy of a poster here makes more sense: rigor informs intuition, decreasing likelihood of error, and intuition generates hypotheses to be verified with rigor. But mathematicians I know don't think in intuition that can be perfectly converted into rigor.