I want to share this article with everyone. In addition to being exceedingly well written and cogent, it also says things I’ve been trying to say for years- and makes me want to say things I hadn’t thought of before. Go read it, trust me.
Unfortunately, this article made my mind want to metaphorically jump on the horse and gallop off in all directions, so the ensuing post may not be as coherent as it might be.
First, I want to point out that there is ample evidence that the majority of humans have an innate mathematical sense- one could almost make the case that having a mathematical sense is part and parcel to being human. Consider for a moment the wild popularity of music, architecture, even much of classical art, chess, go, and poker- all of which have deep mathematical underpinnings. Or consider the popularity of the game Soduko. I laugh when people tell me they like Soduko because it doesn’t involve any mathematics- the game is nothing but mathematics. When you’re playing Soduko, and you find yourself saying “Because of this two here, the two in this box can be in this column. Because of that 2, it can’t be in this other column, and because of this other 2, it can’t be in this row, therefor this last remaining square has to be a two”, what you’ve done is create a mathematical proof. It may not look like it, but it is. And, just to pound the last nail into this coffin, Soduko (generalized to larger rectangles) has been shown to be N-P Complete, meaning that it sits in nicely with number theory, abstract algebra, graph theory, and other “pure mathematics”.
The problem is that we’ve decided (or, more darkly, had it decided for us) as a society that we don’t want to teach our children math or science. Oh, we say we do. You ask people in the street should we teach our kids more math and science, and something like 93.8% of them will say “yes” (the other 6.2% will say “get away from me, you freak!”). The troubles generally start when we stop talking in safe abstractions and start actually thinking about doing something about it. At which point the conversation generally goes something like this:
Teacher: So we’ve decided to teach your kids more math and science.
Parent: Good. I want this to happen.
Teacher: OK. I’ve prepared a curriculum introducing evolution, the ancient earth theory, the big bang…
Parent: (interrupting) Wait one gosh durn minute here! What’s all this you’re teaching? Evolution? That the earth is more than 6,000 years old? What do you call THAT?
Teacher: Um, science?
Parent: That’s not what I beleive- I only want you to teach those things that I believe, or which don’t offend me. And call it Science.
This isn’t to disparage religion. Quite the contrary, in fact- despite it’s heavy use of religous terminology, it’s not about religion at all- it’s about politics. What Paul Lockhart (rightly) decries as the mind-numbing, soul-destroying aspects of “education” are, to many people, the most important part. See, mathematics- and art and literature and philosophy and history and all the other subjects if taught correctly- are about thinking for yourself, questioning, challenging, understanding instead of just reguritating. The problem with this is, once you start questioning, it’s hard to get you to only question “safe” topics. If you’re used to questioning and challenging the validity of a mathematical or scientific proof, you might start questioning or challenging the validity of an economic theory. What evidence does it have, what logic, which assumptions? If you’re used to analyzing and critiqueing art, you might start analyzing and critiqueing political platforms. What hidden meanings and analogies might this political slogan hold?
Adults (generally) do what they’re taught as children- and school teaches you to sit down, shut up, and do as you’re told. To be serfs, not citizens. It’s a citizen’s duty to question, challenge, and confront. It’s a serf’s duty to shut up and do as they’re told. As a side note, this is why I love the title of this blog (even though Robert came up with it)- Enfranchisement is not a legal state, it’s a mental state.
Note that there are attractions to being a serf, to just doing what you’re told. Firstly, it’s easy- you don’t have to think. Second, it’ s not your fault if things go wrong. And you don’t have to worry about the other serfs being different- everyone is just alike. And it’s probably easier to raise kids who sit down, shut up, and do as they’re told (three qualities not notably present for me or my siblings). And parents are an, arguably the, authority in a child’s life- and it’s uncomfortable to have a child questioning a religous, political, or social belief that the parent hasn’t questioned. So I don’t think this effect is the result of some evil genius intent on controlling the world (with his sidekick Pinky). Also, the effect is too wide spread- it’s not evil legislators in the capital enforcing this on schools- generally it’s the parents and school boards themselves. This is a grass roots sociological phenomenon. But, for whatever reason, the result is to push the teaching of math and science- and history and art and music and thinking and learning- out of schools. And to raise generation after generation of serfs, not citizens. To the detriment of our democracy and society.
Galloping off in a different direction for a moment, what he says about mathematics applies equally well to computer science- even if you don’t accept that computer science has anything to do with mathematics, or programming. Thinking of computer science as a bunch of algorithms, like quick sort or mark and sweep garbage collection, is just like thinking mathematics is arithmetic and a bunch of formulas to memorize. Mathematics, computer science, and programming are all about solving problems. What Mathematics and computer science have that programming doesn’t is generality. When you step back and ask yourself, now that you’ve solved this problem, now that you’ve made this program work, what does this imply about other problems and/or programs? You’re no longer programming, you’re no longer merely coding, you’re engaging in computer science.
If you’re programming and you’re not doing computer science, you’re screwing up.
Think about what I just said that. What I said was that if you’re programming and you’re not thinking, in a generalized and abstract way, about what you’re doing, you’re screwing up. Because if you are thinking about what you’re doing in a generalized and abstract way, you’re doing computer science. And if you’re not, you’re Cobol programming. Cobol programmers were, still are, notorious for not generalizing. If your metric of success was lines of code they were stellar- Cobol programs routinely hit multiple millions of lines of code. But even if your metric was just working programs, they were pretty good. But their code sucked. It was impossible to understand, and damned near impossible to change. Even something as simple as adding a few more digits to the date required heroic (and expensive) effort. Their code wasn’t elegant, it wasn’t art.
A common question, asked both by children of math and by programmers of computer science, is “what is this good for?” Paul Lockhart’s response is (paraphrased) “Nothing! It’s just art!”, which is where I disagree with him. It’s the wrong question, a question which makes a faulty assumption, not unlike asking someone if they’ve stopped beating their wife yet. The assumption is that the usefullness- of mathematics or of computer science- is in some sense implicit in, or part of, the subject itself. The expectation is that mathematics and computer science are a lot like auto mechanics. Once you learn automechanics, you can fix cars. If you plan on spending a lot of time fixing cars, say, by getting a job as a mechanic, it might be worthwhile learning. But if you’re not planning on working at a garage, learning more than the most basic stuff is really optional.
What is different about mathematics and computer science and physics from arithmetic and programming and auto mechanics is generality. Of course, the computer science/mere programming dichotomy is even worse, as we don’t have an excuse. Before the invention of computers, you needed humans to not just do mathematics, but arithmetic. And we still don’t have robots doing our car repair for us (it turns out there is a surprising amount of art involved in car repair- which is why it’s still a popular hobby). But we programmers don’t have any excuse- we have the perfect machine for taking over any part of our job which is tedious, boring, repetitive, and/or mechanical- the computer. A programmer should only be facing hard problems- if they’re not, they’re not taking sufficient advantage of the computer. Having the human do something the computer could do, like churn out reams of code, may make the programmer appear productive- but they’re not, not really.
But to only be solving hard problems, that requires generality. We need to not only understand what one program can teach us about another, but to express that understanding in a concrete fasion- in code. And Paul Lockhart’s point is that generality, with the attendent solving of deep problems, is something that we’ve been taught since childhood not to do. And that is the core problem.
No related posts.
Pingback: Warum ich Mathematik in der Schule lange gehasst habe « Das Gelbe vom Ei