
Is programming the new math?  - pankratiev
http://infinigons.blogspot.com/2011/01/is-programming-new-math.html
======
mian2zi3
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.

~~~
panic
_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>

~~~
mian2zi3
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.

------
yaks_hairbrush
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.

~~~
calibraxis
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.

~~~
cynicalkane
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.

~~~
calibraxis
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'.]

------
klochner
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.

~~~
zeteo
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.

~~~
ippisl
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.

------
candeira
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.

------
noblethrasher
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.

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

------
ahlatimer
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/>

------
kylemaxwell
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.

------
georgieporgie
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.

~~~
dkokelley
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.

