Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Is programming the new math? (infinigons.blogspot.com)
78 points by pankratiev on April 10, 2011 | hide | past | favorite | 37 comments


Physical education is the new math. Students don't like to be trapped in stuffy classrooms. They want to be outside and run around in the fresh air and sunshine. Over the semester, not only have my students improved markedly in physical fitness, but they've learned critical problem solving skills. We're playing football. They've developed increasingly sophisticated plays, analyzed defenses and developed counter-strategies. They fluidly execute novel strategies informed by planning and an awareness of the evolving whole-field situation. Clearly, PE is the new math.

WTF? Math has specific content and method. A proof is not a program. A for loop is not an integral. Your vaguely technical subject is not a substitute for math just because your students seem more engaged. Teaching people to think logically isn't the point of math, any more than it is the point of history, biology, literature or, yes, even programming. If your students have fuzzy feeling when problem solving, they probably have fuzzy ideas about math. They haven't been taught clearly. If they're uncomfortable with reasoning in math, they haven't been forced to develop intellectual independence. And foisting of "check the steps" on a computer won't help. And don't get me started on how naive an ideas of correctness that is.


A proof is not a program.

The Curry–Howard isomorphism[1] would beg to differ. I think programming is much closer to math than this comment gives it credit for. In some sense, programming is even stricter than math. When doing math, you just have to satisfy your instructor or your reader. When programming, your program must run on a real computer -- there's no room for hand waving or imprecise arguments.

[1] http://en.wikipedia.org/wiki/Curry–Howard_correspondence


While I admit it is true in the technical sense of Curry-Howard, it is certainly not true in the sense the OP meant: that learning program is a substitute for learning mathematics.

Let's examine the post in light of C-H. I'm not super familiar with Python, but I believe it is dynamically (that is to say, singleton) typed. This might not correspond exactly to Python, but let's assume there is an any type, product types (for forming tuples in function arguments) corresponding logically to conjunction and function types corresponding logically to implication. Any well-formed expression (e.g. 0) has any type, so any is true as a proposition. Thus, all types are inhabited and all propositions are true. By proof irrelevence, the logical content of any Python program is equal to the constant function 0. In other words, they have no proof content. Thus, I claim the students here are not doing math via programming in the techincal sense of C-H.

I stand by my original claim that they are not doing math by programming in a looser sense, either. I studied computer science, spent a dozen years working as a programmer and now I'm studying math in graduate school.

> I think programming is much closer to math than this comment gives it credit for.

I might have said something like this before I started doing serious math.

You make a mistake by thinking that programming and math are the same, except that programs get "checked" by computer. That's like claiming that video games are more physically demanding than sports because the rules are enforced perfectly.

Math is about understanding why something is true. A program that uses or applies a mathematical idea rarely (never?) contains a proof of that idea's correctness. For a mathematician, testing is insufficient evidence for truth. Proofs are universal and they generally apply to an infinite number of cases. There is a deep qualitative difference between conceptually understanding why something is true and checking a finite number of cases, or even implementing a procedure to check those cases. You can try to belittle mathematical methods by calling them hand waving or imprecise, but programmers are not even trying to do what they do.


I think the issue is not that mathematics is bad, but rather that it doesn't deserve the privileged place it has in the curriculum. Maths above pre-algebra is not generally useful, but instead it is only useful to those who go on to study the more technical subjects (e.g. engineering).

Maths is maths, and will always be a powerful tool. But the author is saying that most people need to learn problem-solving and logic more than they need to learn maths; for most people maths is useful only in that it teaches problem-solving and logical thinking. Thus, replace it with programming.

In my opinion, I think a far better idea would be to replace the 'computer studies' classes with programming. Most of these classes teach how to use Excel and Word, and if they do programming it's only a limited variety using Visual Basic. Modernise, guys!


I had a rather bruising experience last fall "teaching" precalculus to a lecture of 180 students. Although I'd try to engage the students and explain how the stuff is useful, the students would have none of it. I got scathing reviews about how I was teaching stuff that wouldn't be useful until calculus 2 (which is, of course, a feature and not a bug).

We're fundamentally talking about 18-year-olds with bad attitudes here. If we can engage them with programming as opposed to further disengage them with math, I'm all for it. Anything that hastens the realization that learning is your own responsibility would pay great dividends to the students.


I think your employers set you up for failure. Nearly all educational institutions make math seem like something only weirdos could enjoy, for their later employment as tools of industry.

I say that as someone who was once so motivated to learn math, I lied to a highschool precalculus teacher in order to take proof-oriented calculus at a university. (Though she thought she forebade me, I gained prerequisites in a summer-school, running as fast through the material as I was allowed, passing the maximum 3 tests per day — one test per chapter — once I hit my stride. This allowed me to take classes at a university with a highly regarded undergrad math program).

Yet... the university class was boring. Producing "rigorous" epsilon-delta proofs (and whatever else we did) was a tedious exercise which improved my abilities in no significant way. Probably made me dumber. I took only one more math class after that. All of it was a waste of time. Didn't "teach me how to think better" or any of that paternalistic claptrap.

I wish you did not blame your students for their "bad attitude." I sincerely don't mean to be rude, but maybe your attitude could also use some modification. In a better world, you might have been teaching an intro to enjoying one's inborn mathematical abilities, with a crack team of TAs from the psychology dept undoing everyone's damage from earlier schooling.


I can't figure out what your hatred of epsilon-delta proofs has to do with employers setting up a pre-calculus teacher "for failure" and the indoctrination of students as "tools of industry".

I'm sorry that your introduction to real math left you sour, but I assure you that epsilon-delta proofs are not a conspiracy by the industrialist class to brainwash kids away from critical thinking--or whatever you are alleging.


My "hatred of epsilon-delta proofs"? Boy, your little put-down is not only insulting, it's even absurd that I have feelings one way or another about simple mathematical techniques. Unless 'boredom' = 'hate' in your world.

Sorry to even mention this and get your blood pressure up. (Didn't mean to scratch a sore spot by simply criticizing an educational system that I certainly paid my dues in.)

And BTW, in addition to your other unsupported inferences (ironic given the subject matter), I wouldn't confuse not taking further math classes with stopping one's mathematical education. If you insist on reading things that don't exist in someone's words, how do your proofs turn out well? You must be constantly assuming things which aren't given, and even changing "equals" to "not equals" in a problem to turn it to one you have a textbook solution for.

[Edit: Ahh... Not to sound at all stalker-y, but I looked at your public account info to understand your perspective better. I see that not only you studied at UChicago — which probably means Spivak's Calculus and learning epsilon-delta proofs might be a matter of pride with you — you work at a financial market. My comment does contain a criticism of the status quo, which you may have strong ideological feelings about and therefore respond with a bit less rationality than otherwise. And... maybe I did come across as calling a subset of people here 'tools'.]


>Producing "rigorous" epsilon-delta proofs (and whatever else we did) was a tedious exercise which improved my abilities in no significant way

And you want to blame that on the course itself? This is exactly the problem with education--kids feel like its the teachers responsibility to force them to get something out of it. It is your responsibility, no one else's.

Furthermore, I took analysis in college and I gained a great deal from it. It made me a much more precise thinker, mathematically and otherwise. Your lack of growth from the course is no ones fault but your own.

Edit: thinking about the issue a little bit more I realize that its not as clear cut as its "your fault". There is a big problem with how math is taught, especially at the younger grades. My issue with your blaming the course and the teacher for your lack of growth is that once you're at the college level you shouldn't need the teacher to do a song and dance to keep your attention. You're supposedly there for one reason only, to further your own education. Thus the responsibility is on you to get as much as you can out of every course. If the content of the course didn't match your expectations then the problem lies elsewhere, not in the material or how it was taught.


Do you apply this logic to other aspects of your life? You purchase a product and blame yourself if you didn't receive the intense personal growth implied by its advertisements?

Or do you consider all teaching methods equal in effectiveness?

When I teach, my "customers" are my students. I wish to do well by them, not blame them when I failed to inspire. I attempt to learn from mistakes I've made and seen, and try do a better job. My being a passive consumer wouldn't help anyone.


>You purchase a product and blame yourself if you didn't receive the intense personal growth implied by its advertisements?

I do blame myself if my expectations didn't match the actual product I received. It is my responsibility to make the best choices for myself. Of course when it comes to college courses, much of the blame for incorrect expectations lies with your advisors. I had the same issue.

Another issue that I see all the time with people who consider themselves "good at math" is that they have no idea what real math is. They breeze through standard "applied" math courses (calculus and prereqs) and then hit a brick wall when they hit real math where you do proofs. This isn't a problem with the material or how its taught, its that people's expectations are way off. It just makes no sense to blame the teacher or the material here.

>I wish to do well by them, not blame them when I failed to inspire.

I commend you for this; we would all be better off if every teacher has this dedication. But, at some point the burden has to shift to the student to find their own inspiration. Once you get past a certain line, the time spent has to be dealing with difficult material, not making sure the students are properly inspired. The line varies depending on the subject. But when you're taking a college level advanced calculus class, you have crossed the line where motivation is your responsibility. I think what you learned taking the course is simply that proof-based mathematics isn't for you.


I'm fine with proofs and am unsure where you see me stating otherwise. ;) Would you please point out where I say I don't like them? Me being bored in an art class doesn't translate to me hating art. (I suspect you may be projecting external feelings onto me.)

I didn't like the non-university classes either, but I produced math in them. I wouldn't enjoy programming in PHP in a cubicle, but I can deliver software this way.

Of course, proofs are not all that math is, and I have a vague suspicion that many mathematicians leave "rigor" as a fairly un-analyzed concept, ironically... but math's foundations would be far weaker without proofs.

My disagreements with these societal practices is more about an educational approach, than the technical concepts of mathematics itself. If I went to a very fundamentalist religious school, I probably would have criticisms about it too.

Do you see no difference in the effectiveness of teaching methods? Might I not think one has severe flaws, as a consumer/producer who put in the hard work, and mention improvements?


>I'm fine with proofs and am unsure where you see me stating otherwise.

It was an assumption based on your words (epsilon delta proofs and whatever else we did were tedious) and my experiences with people who dislike classes of proof-based math. No projecting here--I enjoyed my analysis class. We a fair number of epsilon-delta proofs.

My issue with your initial response was that you were implicitly blaming the class for being boring and causing you to lose your enthusiasm for math. My point is that its not their job to foster your enthusiasm, especially at that level.

Now of course, we should always be re-evaluating how subjects are taught to make sure information is being conveyed as best as possible. But we have to resist the temptation to immediately blame a student's failing (by any measure) on the teacher being inadequate in some way. If we start the conversation on that note then the space of potential solutions becomes severely restricted.


(Yes, to clarify, by "projecting external feelings", I didn't necessarily mean your feelings, but those of people you've met. Maybe I was unclear.)

I am what you might call an autodidact. When I observe an institution isn't sufficiently good, I pivot and fulfill my requirements elsewhere, for example by reading a book or meeting passionate people informally. I do not believe that this autodidacticism is great efficiency-wise, but often it's unfortunately better than alternatives.

When evaluating the earlier poster's anecdote of teaching 180 adults, of course it's very unlikely that she/he had the terrible luck to draw 180 (or even 100) genetic freaks who were born with terrible attitudes. (And even if she/he did, just wait a semester and problem solved!) Far more likely to me: at least one major institution failed them along the way. So it is clearly useful to identify which ones failed — especially if it's the one you're in, as that's the one you have most control over. (Teachers in particular have a position of power in the classroom.)

(The power of institutional analysis is you can completely replace the people in them, and they'll still function essentially the same.)

More important — if you realize that your approach is clearly unsuccessful, I think you need to stop, reevaluate and probably pivot. Be open to shattering your worldview. Rather than plod on stubbornly in a direction you know leads to abject failure, because most people around you are willing to fail miserably in the same way. (Or because "But it's not in my job description!") I do not intend to be such an extreme romanticist of failure. In fact, today I happened to institute post-mortems at work, to identify our little failures. Not to blame, but to improve.

It is important for teachers to have good attitudes, and it's disheartening to meet those ironically unwilling to learn. But I've met wonderful teachers.


I agree with all your points. My gripe is basically that, in most discussions I've seen about the failings of schools, the problem is always "identified" as being a failing of the teacher. It's taboo to raise issue with students own internal motivations, environment, home life, etc. We need to be willing to point fingers at everyone involved.


You know, it's funny. I got a degree in math with a minor in CS. While I directly use the CS much more today than the math, I firmly believe my analysis courses -- delta-epsilon proofs included -- set me on the right course in properly examining matters and not settling for handwaved explanations.

I suppose it's a matter of perspective, but then again the "math" that junior high and high schools usually teach isn't really math. Rather, it is a brief explanation of boring topics, taught in a boring way to emphasize rote memorization. I'd prefer to see teachers focus on the joy of exploring a concept so that you understand it actively versus passively, and (yes) rigorous logic as well.

We'd have a better citizenry overall if people thought like mathematicians, whether or not they "use" the material.


If my junior high and high school curriculum didn't even make it through precalculus after the typical six years of dedicated math courses, often featuring nightly homework, I would probably wretch at the mention of math too.

I suspect that your students had already learned that they weren't going to use the covered material, even within subsequent math classes -- by being taught the same material year after year.


Perhaps an apprenticeship-system might be worth a try? Let them work together with adults---that might put some sense into them.


I've long believed the master-apprentice system to be the most effective type of teaching system. Unfortunately, it doesn't scale.


You just need more masters. It works fairly well in Germany.


It scales, but only in a massively parallel way.


Teaching 180 18 year olds math in the same room, at the same time?

How much does that cost?


Let's see... in tuition, the students paid collectively over $300,000. Between me and the two TAs who were grading and doing discussion sessions under me, about $60,000 was spent on teaching for the class (the $60,000 figure includes the graduate student tuition waivers and our health benefits).


Is that $300K their collective annual tuition or the amount paid for the credit hours for the course?


Just for the precalculus course.


180 students for a single term can get over 5 million USD pretty easily in the US.


A common gripe from young students when learning math is "I'm never going to use this!"

With programming, it's much easier to motivate the subject matter - students want to learn the math so they can improve their projects.

Similarly, I found linear algebra and linear programming much more interesting when I was studying economics, and classical physics much more fun when writing little javascript animations.

So maybe applied math is a better approach at the intro levels. I'm just not sure how we get there from existing math-centric teachers and curricula.


Good point, but in any case "I'm never going to use this" is hardly ever a valid excuse. Its consistent application would rule out almost everything we call education, save the narrowest vocational training. It's also self-defeating: if you don't learn it, then indeed you'll never have the opportunity to get a STEM-related, well-paying job for using it.

I could never understand some people's obsession with only learning things of immediate and obvious use. You should study math for much the same reason you study Shakespeare: to learn to think about things you had never thought about before, in ways that you had never imagined to exist.


Education should not be about immediate and obvious use, true.but at least it should be about long term use.

So when people learn history, for example, they should get some stories that help them define their national identity, in the long term. but if they just learn a bunch of dates that they forget a short time after the test, they just wasted their time.

Does math, as taught today, have long term value? for non technical people, i'm not really sure.


Spot on, "I'm never going to use this!" can be dismissed straight away as student use and see the results in their programs.

My own maths ability increased dramatically when I got interested in astronomy, likewise trying to write games in basic.


The problem with "I'm never going to use it" is that it's a self-fulfilling prophecy. Further down the line, this attitude excludes you from jobs and opportunities where you need to be able to use it.

I say teach math (up to algebra and basic trig and calculus) and programming in every high school. Dropping out is so much easier than dropping in at a later age.


Some subjects just cannot be taught from authority. The problem with math education, as I see it, is that primary and secondary school math teachers really can't answer too many 'why' questions (for a variety of reasons such as lack of knowledge or lack of time).

Teaching math from a programming perspective (or vice versa) should work since you must (as opposed to 'shall') model problems you care about in terms of math.


Iterative programming is the new arithmetic, Functional programming is the new math.


I had a short stint as a research assistant for a prof who's using programming to teach high school seniors and entering freshmen math skills [1]. I'd have to ask him how the research is going now, but the preliminary results were encouraging.

[1]: http://sites.google.com/site/computationalsystems/


As much as the discussion has focused on defending mathematics and the importance of teaching it, that's not to discount the value in teaching kids about coding. Whether or not they later become hackers, they'll have an appreciation for how things work and an interest in doing rather than simply watching.


I always found math to be problematic because it builds on itself, yet math classes vary so much by school and teacher. I ran into difficulty in a graduate level course simply because I had never once been shown algebra with inequalities.

Also, you don't get instant, positive feedback, and immediate indication of whether your solution is correct as you do when programming.


I think there is a limit to the positive feedback programming presents as well. Sure, a program may run as intended, but what if there are bugs that need to be worked out? What if there was a cleaner, faster way to perform the operations that version 1 did? This is what I truly enjoy about programming. Not that there is "instant, positive feedback," but that there are so many approaches to a solution, and room for refinement to make the program faster and cleaner.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: