Fog Creek Software
Discussion Board




just how much math is needed to program anyway

So I think you should be good at math to program. But I'm not a zealot about it. I do a fair amount of algebra in my own coding and also trigonometry, but also the sort of reasoning and problem solving done in math is quite useful in programming, it's the same sort of thing.

Now he New York Times today says the reason why jobs are going to India is because only 30% of US high school seniors were able to correctly do the integration:

/
| (x-1)^2 dx
/

Well, I know how to integrate and I think it should be a college requirement, sure. I am totally blown away that 30% of high school seniors can integrate too! Teaching calculus in high school is a very new thing anyway, it was not done at all before 1960, according to several of my older relatives and friends I have asked. And when I graduated, there sure wasn't no 30% of high school students taking calculus!! In fact, at the well regarded university I went to, there was definitely not no 30% of students knowing how to integrate either!

So in Japan, 87% can do the integration. Yeah, Ok. Know of any good must have Japanese software? There are some Japanese games I have played and they are quite poor - way to linear, and don't require any programming skills to create anyway.

I have a bit of specialty in applications that do a lot of math and yet I have NEVER had to do an integration in my code. I did once have to use Runge-Kutta or something like that where you integrate by brute force, but that certainly didn't require any knowledge of calculus.

Anyway I don't buy this claim that american schools are so bad that we don't know how to program because only 30% of high school seniors can integrate.

i am very skeptical that some fat cat in some corporation says 'lets outsource all programming to japan because the japanese programmers are much better at math and that is a critical need for our software that we simply can not find fulfilled in the US'

So whatcha think? Anybody here solve a lot of differential equations symbolically in their work and have to write the code to do so?

Speaking of which, was Matlab, Maple, Excel, or Mathematica written in Japan? Where were those programs written? Anybody know?

Dennis Atkins
Wednesday, February 11, 2004

Oh and here's the times article if anyone wants it:

http://www.nytimes.com/2004/02/11/opinion/11KRIS.html

Dennis Atkins
Wednesday, February 11, 2004

I have a math degree and have never used math beyond 8th grade trigonometry in my programming work.

z
Wednesday, February 11, 2004

I don't think it is valid if you are looking for a direct effect, i.e. I cannot do calculus therefore I cannot program.  It is invalid to say that one is the reaosn for the other.  I do think, however that programming thinking is very mathematical in nature (at least it used to be, this enterprise stuff is less so) and if kids aren't forced to learn math they will probably not go on to study computers or any other type of engineering.

As for High school Calculus being a new thing, I doubt it and I wouldn't go by "older relatives".  There has been a gradual decline in high school quality since the 1950s at least and I think if you went back earlier, say to the 20s, you might find calculus being studied in better high schools.

name withheld out of cowardice
Wednesday, February 11, 2004

I have a master's in math, and a master's in CS, and I have done very little integration in my life.  One of my huge pet peeves is that people who take a couple of freshman calculus course claim they know mathematics.  I hear this constantly from engineers.  Newsflash!  A diff-e-qs course does not mean you know math. 

Math is about mental discipline and rigor.  It's about having the intellectual wherewithal to be able to construct a proof.  It is NOT about being able to integrate a stupid function.  You can buy a hundred dollar program that'll do that for you.

anon
Wednesday, February 11, 2004

np-completeness is a bare minimum:-)

Prakash S
Wednesday, February 11, 2004

There does tend to be a relationship between Math skills and computer programming ability. I would suggest that the comparison might be that people that can handle Calculus can make that extra leap of abstraction, similar to programmers that understand pointers. (See http://www.joelonsoftware.com/articles/fog0000000006.html)

Gord Schmidt
Wednesday, February 11, 2004

As an american public school graduate, I can assure you that high school in america does suck. Whether or not it needs to be improved is another story.

Regarding southeast asian 8th graders. As someone who has spent a significant amout of time in singapore, hong kong, shanghai, beijing, and tokyo, I can assure you those statistics are misleading. Yes singapore has the strongest 8th graders in mathematics...however most of the students stop taking math altogether after 8th grade! If you don't use it, you lose it. 

Mathematica was written by stephen wolfram, btw.


Wednesday, February 11, 2004

I think the more important question of mental qualifications should be directed at journalist.

m
Wednesday, February 11, 2004

> Mathematica was written by stephen wolfram, btw.

So he is German? He went to high school in Germany then? Just wondering.

Dennis Atkins
Wednesday, February 11, 2004

>> "I would suggest that the comparison might be that people that can handle Calculus can make that extra leap of abstraction, similar to programmers that understand pointers."

Integrating a function is abstract?!?  Pointers are abstract?!?  No.  I can't think of more mundane, concrete concepts than integration and pointers. 

Draw a function on an x-y plane.  Shade in the area under the curve.  There's your integration.  How much more concrete can you get?

Draw a box that's a memory location.  Draw an arrow to it with it's address.  Can it be more concrete?

Topology is abstract.  The foundations of math are abstract.  Integration & pointers are mastered by dullards the world over!

anon
Wednesday, February 11, 2004

stephen wolfram is from the UK. he was a math prodigy, receiving his PhD in physics from caltech at age 20. he now lives in illinois.

http://www.stephenwolfram.com/about-sw/


Wednesday, February 11, 2004

"Math is about mental discipline and rigor.  It's about having the intellectual wherewithal to be able to construct a proof."

I'm with you, anon.

Haven't used math a lot myself for programming, but definetely helps organising one's mind and train deductive and inductive thinking.

Vlad Gudim
Wednesday, February 11, 2004

I can't figure out integrals. I don't really know what a definite integral is. I can do derivatives, sometimes, but it's really hard for me. My math skills only go up to induction, and then stop completely.

This hasn't been much of a handicap in my work, but if I *could* do that kind of math, it would make me *better* at it. When I finally managed to beat derivatives into my skull, it opened up all kinds of new ways to look at problems, so I know there's a lot of benefit to be had just by incrementally extending my math skills to simple concepts. I still have my college calculus text, so I open it up on occasion and try to pound my head through the concept of integrals.

So while I wouldn't say you NEED a lot of math to succeed as a programmer, I would certainly say you should HAVE a lot of math, because it's good for you. Cram as much math into your head as you can manage, but don't sweat it if you can't get through as much calculus as the next guy.

Caliban Tiresias Darklock
Wednesday, February 11, 2004

Maths and programming have some similar skills, e.g. the ability to do "symbol substitution". I think it's also true that, at least in pre-CS days (and maybe still), they hired mathematicians to learn programming. And, some domains require mathematics knowledge as well as programming knowledge, but as you say there's a whole lot of programming that doesn't require (specifically) calculus.

Christopher Wells
Wednesday, February 11, 2004

I agree, I haven't used anything beyond 2nd degree functions in my code.

But we probably aren't missing it because we don't know what we're missing.

Alex.ro
Wednesday, February 11, 2004

Re: the japanese.

I don't believe those numbers. I've spent way too much of my adult life in tokyo, and as far as I can tell, the only thing japanese schools are good for is teaching students how to be japanese.

The stereotype of the math genius, samaurai, innate kung-fu ability asian person is quickly dispelled when you have to walk over 15,000 japanese teenagers sleeping drunk in a pile in front of the shibuya train station. 

Incidentally, computer programming in the USA sense: 'enterprise' and desktop apps is a very low prestige job in japan. Most of the good programmers I met there were chinese or indian. No enterprise or desktop software of note was ever written in japan.

Any japanese person inclined to go into programming either goes into robotics or games programming.


Wednesday, February 11, 2004

It's interesting that Mr. Kristof uses the example of the American space program as an argument for increasing American technical skills.  At mission control in Houston, the design of the operation was such that the first row of people dealt almost entirely with the detailed mathematical problems that came up over the course of a mission.  But there were several rows behind those guys becoming increasingly non-technical, leading all the way back to central management.  And this is at a highly technical organization!  Maybe the important lesson is that these required talents ought to be in the right proportion, rather than that 80% of the population should be capable of working in "the Trench".


Wednesday, February 11, 2004

also, one reason no one understands how to do calculus in america is because the teaching methods learned when people get teacher training are SO HORRIBLE. ugh.  If anyone has struggled with calc, and wants to really learn what's going on, they should get the book "Calculus Made Easy" by silvanus p. thompson. I would have been totally hosed as a math major if I hadn't  worked through this book.

http://www.amazon.com/exec/obidos/tg/detail/-/0312185480/002-7122608-4228016?v=glance

note: this is also the same book richard feynman used to teach himself calculus.


Wednesday, February 11, 2004

I do not understand. Calculus? But since computers are COMPUTErs why use Integrals? A loop does the job, does it not?

disclaimer: I am not a Maths student, in that, no Maths after 12th Std.

Regards

KayJay

Inidan Developer in India
Wednesday, February 11, 2004

Comparing high school students is rather disingenuous.

Yes, Japanese high school students have much harder work loads and generally better academic acheivement than US high school students.

After they graduate, they spend four years partying and getting totally drunk.

In the US, college students, particularly engineering students, work their a**es off. End result is at least competitive with the Japanese if not superior.

If you want to compare education, compare results at the END of the educational process, not in the middle.

Oh, and I haven't had to do an integral in 10-15 years either. :-)

Chris Tavares
Wednesday, February 11, 2004

Indian, if you integrate x**-1 dx from 0 to infinity that way, it'll take a long time and you'll get a less precise answer when you eventually terminate prematurely than if you'd done the symbolic integration.

But I think that the other posters are right.  There are usually more important things to worry about than how to integrate some particular function or another.  If you understand the first principles behind integration and differentiation, you've gotten what you really need out of Calculus.  Unless you have some kind of specialized need, there's no reason to memorize books full of special-case integration techniques.


Wednesday, February 11, 2004

Outside the EUA, americans are very known by their marketing :P

Dewd
Wednesday, February 11, 2004

I'm sick and tired of hearing about how poor US schools are because we don't outscore other countries.  As somebody else pointed out, in many, many other countries, the poor students are removed from the academic system early, so we are comparing our average kids to other's best.

Furthermore, let's not forget that it is in EVERYBODY's best interest to scream bloody murder when it comes to our education system:

* Idiot Democrats scream that we need to raise taxes to fund our failing schools. 

* Idiot Republicans scream that we need voucher systems to mend our failing schools. 

* Idiot teachers' unions scream that they need pay raises to fix our failing schools. 

* Idiot CEOs scream that they *have* to outsource to India at 30 cents on the dollar because we don't have enough engineers because of our failing schools.

* Idiot software engineers scream that we'd be doing better if not for our failing schools.

The list goes on an on!  Stop the charade.  Our schools are just fine.

anon
Wednesday, February 11, 2004

x**-2 dx from 1 to infinity, rather


Wednesday, February 11, 2004

> why use Integrals? A loop does the job, does it not?

Integrals and the like are 100% accurate, where a loop can only provide an estimate. Most of the time, this is perfectly acceptable, because you're losing more precision in the IEEE floating point format than you are in making the estimate. However, those of us who work in high-speed airborne instrumentation systems don't get the luxury of estimates and loss of precision... if we're off by even a tiny fraction, it can make the difference between a safe flight path and collision with the side of a mountain.

Caliban Tiresias Darklock
Wednesday, February 11, 2004

My highschool offered Calculus to select seniors and very select juniors only.  The focus in highschool was to give the amount of math one would need to get by in the world if one stopped their education immediately after highschool.

My college required calculus for all business degrees and most other degrees as well.  I think most colleges see it as a way to welcome people to the rigors of college life - "Here's math as you knew it, now here's a wholely different way of looking at it - learn now". 

I would wager that most people who are good programmers are good at math (to a certain degree).  They can learn the rules and procedures to integrate or approximate integration, or compute del or whatnot.  I'm not saying that they can produce an Epsilon-Delta proof, but they can probably deduce the quadratic formula if given some time and they can probably learn more advanced calculus if they desired to do so.  Learning rules and methodologies is something most careers demand, programming is no exception.

Lou
Wednesday, February 11, 2004

> why use Integrals? A loop does the job, does it not?

Loops vs integrals might give "slight" difference in performance and memory usage, specially for bigger intervals of integration.

Vlad Gudim
Wednesday, February 11, 2004

Indian and blank,

Yes, the way to go in numerical computation is to just add the dang thing up. I may be using the wrong name, but if its right, then with Runge-Kutta, you do a 2nd order approximation by dividing up into segments and adding up the polygons (rectangles with a sloped top). Doesn't work for curves that go in circles like Newton worked with, but for whatever those curves are that don't cross themselves or stuff. Jeez, I don't remember any of the terminology but I bet I can still code this stuff up and if not ten minutes of flipping through my old text books will do it... anyway, when you do the slope thing, then you can get some really crazy high precision and the algorithm is utterly trivial.

I really enjoyed taking calculus myself and have taught it in high school and community college also. I found that calculus is easy, but that is when for the very first time I really understood algebra. It's the algebra that knocks you on your butt in a calculus class.

If somebody knew nothing about calculus, it wouldn't affect my decision to hire him or her for the majority of programming jobs. I'd consider good crades and a love of calculus and math to be a big plus, but its not going to be a determining factor unless its revelant to the project at hand. And if its that math intensive anyway, I'd probably be the guy doing it myself anyway cos its fun  and leave the other bits to others.

Dennis Atkins
Wednesday, February 11, 2004

> Draw a function on an x-y plane.  Shade in the area under the curve.  There's your integration.  How much more concrete can you get?

Hey anon, you are first person to describe me in plain
words integration, and I've had it in high school.

When you add, you can represent it to yourself with fingers
and two hands. Multiplication is rows and columns, but
integration?! Man, I never knew if I am supposed to get
positive or negative number, small number or huge number
or whatever.

Thanks.

VPC
Wednesday, February 11, 2004

anon,

Thanks. I think our schools are pretty good overall too. Gosh I wonder Why foreign kids all are itching to come to the US to study if its so bad.

Not every kid can or should be studying calculus. if I had to fix schools I would:

* Make easy expulsion of troublesome students
* Reimplement paddlings
* Reintroduce disciplinarian boarding schools for rapists, bullies and drug addicts
* Reintroduce gifted classes and magnet schools for the kids who want to learn
* Reintroduce shop, apprenticeships and trade training for kids who are not brilliant but who are not troublemakers
* End high school at age 16 and move kid to either college, the workforce, or trade school.
* Make college and trade school free as long as you do ok and are not a troublemaker.
* Allow principals to fire dud teachers
* Get the feds out of schools entirely

As far as academics go, I wouldn't change much as its clear the population is overtrained as it is for most jobs, which require no skills beyond button pushing. Any sort of problems to be fixed need to be handled on the local level through empowering adminstration, empowering teachers, empowering students and empowering parents to to what they think is best rather than follow the political dictates of some distant tyrant.

Dennis Atkins
Wednesday, February 11, 2004

OK, I looked through my old source code base. The algorithm I described for doing integrals is Romberg's algorithm.

Runge Kutta is a numerical method for solving differential equations. I used that on some image compression software I did a long time ago.

And if you want to solve for zero crossings, use Newtons method.

You now know 90% of the important things necessary for numerical computation.

But don't get too confident yet -- the details of finite precision when coupled with the extreme dangers of recursion are what's going to kill you because you instantly fall into the realm of chaos mathematics. And that stuff is WAY harder than calculus, OR topology.

So there.

Dennis Atkins
Wednesday, February 11, 2004

If you do any OpenGL graphics work you have to mess with vectors and matrices.

MR
Wednesday, February 11, 2004

what do you mean by "chaos mathematics?" that was my specialty as a math major, and the only reason I specialized in that is because it was much easier than the other paths I could have taken. :)  I'm assuming you mean something other than what I did...

underscore
Wednesday, February 11, 2004

I've always thought the single biggest stupidity of schools is the way they iterate through the same thing over and over because they keep sending the kids off on one vacation after another. If we did away with summer vacation altogether, we could recover not only the months of summer vacation (fully three years of instruction) but also a nearly equivalent amount of time previously wasted on review. With an extra six years of time to teach children NEW things, we could graduate children from high school with the equivalent of masters degrees -- and undoubtedly produce a number of 21 year old doctors.

The idea of taking all schools private and returning a 2% royalty from their graduates' gross incomes has been discussed often in recent years, as well, and I haven't found any solid reasons why this shouldn't be done.

Caliban Tiresias Darklock
Wednesday, February 11, 2004

If you take away summer vacation, when do the students get to be kids? Children need that recharge time.

Not to mention those who have jobs in high school.

Chris Tavares
Wednesday, February 11, 2004

Caliban -
There is more to education than just school.

Devil's Advocate
Wednesday, February 11, 2004

"One of my huge pet peeves is that people who take a couple of freshman calculus course claim they know mathematics. "

That's a pretty weird pet peeve, anon.

I doubt that such a person claims to have complete understanding of math just as I doubt you do.  I think it is fair to say that such a person knows less about math than you do but probably more than someone who never went past arithmetic.  What is the problem? 

name withheld out of cowardice
Wednesday, February 11, 2004


Short of an occassional foray into 3D work, I've rarely used specific mathematical skills in programming. All of my work is for corporate clients and involves business rules, not math. I've never had to integrate, or calculate a tangent or use Avagodro's Number in my professional career.

..however,  I think being able to think analytically is a required skill for both mathematics and software development. So, having a solid background in math can have a beneficial impact in your software development skills for no other reason that it increases your analytical skills.

Further, it also depends on the type of programming you do. A lot of the libraries that I use are built by people who understand math much better than me and were able to shield me from having to worry about the algorithms and complex data structures that went into building it.

My math skills aren't that great, so I wouldn't be very good at writing compression routines or programs that do things such as analyze sound waves. I'm just not good enough at that stuff. (I'm jealous of those that can, though.) But that hasn't hindered me in my career because I prefer to work more in the business realm.

In short: Math=good. Math=more opportunities. Math!=better programmer.

Mark Hoffman
Wednesday, February 11, 2004

"One of my huge pet peeves is that people who take a couple of freshman calculus course claim they know mathematics. Newsflash!  A diff-e-qs course does not mean you know math. :

Newsflash! This is the nerdy, ego-centric crap that kept people like you from getting invited to frat parties in college. And is the reason people still think people like you are socially inept geeks who argue over pointless things.

I Hate Whiners
Wednesday, February 11, 2004

For a lot of math stuff, particularly numerical computation, some sort of iterative or recursive calculation is involved. No matter how high your precision is, it's not infinite. So something gets truncated in a calculation somewhere. Start iterating, and in a lot of cases an obvious and simple algorithm completely breaks apart due to the lack of infinite precision errors rapidly spiralling out of control and making all your data results totally erroneous.

Getting around this effects in the sorts of problems where they occur is quite difficult.

Topography on the other hand is pretty easy. I had to speed up some off-line video filtering algorithms for a client that made software for hollyword special effects firms. Their filters took days to run. I got it down to real time processing by mapping the FIR filters to hyperspatial curves in n-dimensional space, then folding the curves, collapsing the dimensionality and resulting in very efficient IIR filters.

Dennis Atkins
Wednesday, February 11, 2004

>> "I doubt that such a person claims to have complete understanding of math just as I doubt you do."

I never claimed to have a "complete understanding of math."  I got a master's in it, but for heaven's sake, I'm a developer, not a mathematician...  And I highly doubt you'll find a mathematician who has a complete understanding of math.



>> "That's a pretty weird pet peeve, anon [...]  What is the problem?" 

The problem is I came from a family of engineers - my dad & my three brothers.  Part of it, I admit, is that when I said I was going to major in math, I was treated by them like I said I was going to become a drug dealer!  ;-)

Now I work at a firm that creates engineering software, and again, I'm surrounded by engineers.  Engineers who constantly say things like, "Well, when you get involved in higher math, blah, blah, blah."  These are people who've taken dif-e-qs and maybe a linear algebra course!  They know nothing of higher math.

Real math is proof.  Proof, proof, proof, proof, proof.  It's not memorizing how to do fourier analysis.  It's rigorously constructing all the machinery necessary from axioms that allows cookbook engineers to do fourier analysis.

anon
Wednesday, February 11, 2004

I don't think that you have to know a lot of math to do most business aplications, but there are certainly a lot of other areas in programming where it would be helpful.  Here's my take on math:

o - People who took calculus will probably never use it, but doing a run of the mill average, weighted average, or standard deviation calculation is a walk in the park for them.  Many people I know who stopped at algebra struggle with basic concepts that people who studied more advanced math take for granted.

o - High school geometry used to include formal proofs, but this req't was dropped in the 90's by many schools.  This was a mistake because formal proofs teach you a displined problem solving process.

o - Many subjects have their underpinings in math (physics, statistics, graphics, the list goes on and on and on).  Having a firm grasp on the problem space is essential for any programmer.

Nick
Wednesday, February 11, 2004

>>Engineers who constantly say things like, "Well, when you get involved in higher math, blah, blah, blah."

"higher" is a relative term.  But, of course, as an elite mathematican you knew that, right?

Nick
Wednesday, February 11, 2004

>> "Newsflash! This is the nerdy, ego-centric crap..."

Egocentric?  It's not egocentric of me to point out that bowling isn't really a sport!  Why would you claim that it's egocentric of me to point out that dif-e-qs isn't really mathematics?

anon
Wednesday, February 11, 2004

So... anon, you would not consider Newton or Laplace to be mathematicians, by your definition.

Interesting perspective. Me, I say the guys that are bright enough to discover new fields of math that change the world are most certainly mathematicians.

Dennis Atkins
Wednesday, February 11, 2004

3D graphics programmer.  Thanks to OpenGL & DirectX I have to know basic high school trig. 


Wednesday, February 11, 2004

>> "So... anon, you would not consider Newton or Laplace to be mathematicians, by your definition."

I know you're being facetious, but you can't apply today's standards to people of a different time.  However, since I didn't explicitly state it, here goes:  While in centuries past, the calculus *was* cutting edge mathematics, in 2004, it isn't really that impressive.  In much the same way, in centuries past, it required a genius to create the concept of 'zero', but today every remedial math second grader has mastered the concept.

anon
Wednesday, February 11, 2004

First, the post was about some journalist thinking of a reason why we are outsourcing.  The reaon is very basic: APPARENT cost savings (why, stupid managers for the most part, I think some outsourcing can be efficient).

About Math. The rare times I've had to use equations I found them, I did not create them. I recognized the need for them and sought them out.

Programming. Like lawyers and doctors. Do you want a surgeon taking care of your children? Is there just one programmer, THE programmer. Nope.

Personally, I work with databases and business rules as someone mentioned above. I spend as much time with the end users and analysts as I do "programming". I use AS MANY libraries and existing code as I can. I'm more like a middleware programmer.

So it all depends. Side note. I've been impressed with the Math people I've met.  I like people who've had to use their brains.

Me
Wednesday, February 11, 2004

"Why would you claim that it's egocentric of me to point out that dif-e-qs isn't really mathematics? "

Because of your condescending "You don't know math until blah blah blah blah." I'm sure you're right in one sense, but I hear this drivel from so many techies it makes my stomach turn.

"You aren't a real programmer until...."
"Unless you know <x> then you aren't..."
"Unless you've done math proofs, then you don't know math"

ad nauseum..

This "I'm better than you because I know <x>" affliction seems to affect techies almost exclusively. The sad part is, most techies don't even realize they suffer from this ego-driven disease. They just wonder why the rest of the world looks at them like they are from outer space.

I Hate Whiners
Wednesday, February 11, 2004

"Newsflash! This is the nerdy, ego-centric crap that kept people like you from getting invited to frat parties in college. And is the reason people still think people like you are socially inept geeks who argue over pointless things.
"

They have lots of friends now though...

on Orkut.

:-}
Wednesday, February 11, 2004

>> "Because of your condescending"

I'm not condescending.  My close friends are both uneducated & educated, rich & poor.  My best friend is a plumber with a GED.  (He's making more money than most of us developers, too.  And his job's not about to be exported to India :-) )

I couldn't possibly care less what social/intellectual standing you have.  Just don't make false claims.  You don't know higher math if you've only taken a couple of sophomore classes in it.  I'd never dream of claiming to know a lot about heat transfer just because I took an undergraduate course in thermodynamics.

bob
Wednesday, February 11, 2004

Oops.  I'm not anon anymore.  Oh well.

bob
Wednesday, February 11, 2004

[This "I'm better than you because I know <x>" affliction seems to affect techies almost exclusively. The sad part is, most techies don't even realize they suffer from this ego-driven disease. They just wonder why the rest of the world looks at them like they are from outer space. ]

Actually it is not exclusive to just techies. It's all around you. People have complexes and don't understand their place in society or in the world in general so they need (as anon said) proof. They are basing all of their decisions on things the "know" and they need to constantly prove these things right.

Example belief - I know math and I am a good programmer because math has helped me become a good programmer. All programmers should know math.


It's these beliefs that shape us but our constant need to prove our beliefs is enough to drive a suppose sane man (myself, I have proved it)... MAD

trollbooth
Wednesday, February 11, 2004

>Teaching calculus in high school is a very new thing anyway, it was not done at all before 1960, according to several of my older relatives and friends I have asked.

But it's becoming very important. I had the option to take Calc or PreCalc in high school and this was back waters (the aloha state isn't too well known for it's educational prowness, despite my teacher's best efforts)

Li-fan Chen
Wednesday, February 11, 2004

Actually my point on Newton and Laplace is that they did not discover calculus by doing proofs. Proof that calculus worked had to wait several hundred years. And there are those who claim that the guy who came up with the delta epsilon proof is the mathematician and newton and laplace were just talentless, lucky monkey-hacks who didn't understand the aloof and fine principles af mathematics with a capital M. I reject this argument and say that they guys who are pushing the envelope with math are not the dudes alone in some ivory tower with their precious proofs which could be 50% typos and no one would even be able to tell the difference. :-)

Dennis Atkins
Wednesday, February 11, 2004

By the way, isn't the answer x^3/3-x^2+x+C?

Alyosha`
Wednesday, February 11, 2004

bob, maybe you're a decent guy and not condescending at all.  Who knows, maybe the engineers you work with we're being snobs themselves when they spoke of "higher math" and deserve a comeuppance.  But the way you expressed yourself above, you're coming off as a snob.

Also, re:
"I'd never dream of claiming to know a lot about heat transfer just because I took an undergraduate course in thermodynamics."

Bad analogy.  Most engineering schools require 2 years of calculus level math.  If you took 2 years of thermodynamics you _would_ know a lot about thermo.  So comparing 1 to many isn't a valid comparison.

And besides, who says 2 years isn't a lot of math?  It is compared to your average person.  It isn't compared to someone with a BS in Math.  If you have a BS in math, do you know a lot about it?  Maybe not compared to some of the professors. It's all relative.

Nick
Wednesday, February 11, 2004

trollbooth and dennis make an important point. 

i've known many people who were quite smart who suffered from a psychological disorder very prevalent in academia - they believe they have to master every aspect of their field before they start doing something interesting.

this was particularly prevalent when i worked in bioinformatics. the molecular biology guys were of the thinking "ok, maybe once I do my second post doc, and take this third class in biostatistics, I'll be able to start contributing to my field."   

I also know some mathematically oriented people like this. They just don't believe they can do anything until they've mastered all of mathematics. The problem with math these days though, is that it is physically impossible to master all of mathematics. Even if you are an advanced student who finished calc in junior high school, and continue taking math up to a PhD, you will still only have gotten through the 19th century!

Einsten did not know the math necessary to prove his ideas when he first published his paper. James Watson did not know all of molecular biology when he discovered the structure of DNA.  and so forth.

you really will go bananas if you think you have to master everything in order to move forward.

on the other hand, it would be nice if programmers thought they had to master more than the "learning perl" book before they called themselves expert programmers, but that's a dead horse, beating.

underscore
Wednesday, February 11, 2004

Alyosha, integrate by simplifying substitution:

I (x - 1)^2 dx
--
u = x - 1
du = 1 dx
--
I u^2 du
(u^3)/3 + C
((x - 1)^3)/3 + C

There are a million tricks for integrating various types of functions, but you might as well just use Mathematica or Maple.  Just remember the axioms.


Wednesday, February 11, 2004

I expanded (x-1)^2 to x^2-2x+1 before integrating.  For some reason I have fear of the substitution method (probably from years of forgetting to multiply by du; not that it matters in this case).

Same answer, anyways.

Alyosha`
Wednesday, February 11, 2004

Heh. I use integration a lot when doing algorithmic analysis of the code I write.

SG
Wednesday, February 11, 2004

Dennis Atkins,

My only assertion is that, today, calculus & differential equations are just goofy lower-level undergrad courses.  They hardly qualify as 'higher math' as term is most commonly used in today's parlance.  Many engineers who've just taken these courses, however, think they know higher math.  I believe this shows an ignorance of the subject.  It's just a pet peeve!


>> "And there are those who claim that the guy who came up with the delta epsilon proof is the mathematician and newton and laplace were just talentless, lucky monkey-hacks who didn't understand the aloof and fine principles af mathematics with a capital M."

I don't know how this relates to my assertion, but it's an interesting point nonetheless.  I certainly don't agree with these people either.  Genius doesn't conform to formalized systems as far as I can tell.  Whenever I have a flash of insight - modest as my flashes of insight are - I'm always left to formalize the proof as an afterthought.  It's the paperwork that just has to be done. 

But doing the paperwork saves a lot of wasted intellectual energy.  Before calculus was placed on firm logical ground, people would spend insane amounts of time arguing about Zeno's paradox, or arguing about what the the limits of interesting series were.  And they were just arguing about nonsense.  As soon as the epsilon-delta framework was born, the answers to these questions became plain as day. 

bob
Wednesday, February 11, 2004


>> "It's these beliefs that shape us but our constant need to prove our beliefs is enough to drive a suppose sane man [...] MAD."

"What we need is not the will to believe but the will to find out."
- Bertrand Russell

bob
Wednesday, February 11, 2004

> If you take away summer vacation, when do the
> students get to be kids?

I don't think this is really an issue. One would hope that they already manage to be kids all year, not just during the summer.

Caliban Tiresias Darklock
Wednesday, February 11, 2004

what is this 'salad cream'?
888

anon
Wednesday, February 11, 2004

'Salad cream' seems to be the JoS equivalent of "Godwin's Law": http://www.faqs.org/faqs/usenet/legends/godwin/

Christopher Wells
Wednesday, February 11, 2004

Taking away the summer holidays is a bloody stupid idea.

A friend of mine who lived abroad, and thus had to send her children to boarding school, once remarked somewhat incredulously, that the more one paid the longer the holidays.

Of course, the reason you are paying more is because of the academic results, not the holidays, but the fact that academic results are not increased by longer holidays is clear.

Shorten the holidays, and the students will actually learn less. Do you think you're more productive if you work fifteen hours a day, seven days a week?

Stephen Jones
Wednesday, February 11, 2004

In Australia, we don’t study Math, we study Maths :)

Jussi (www.zeusedit.com)
Wednesday, February 11, 2004

Dennis:
Maple was written by a couple people in Waterloo Canada.  It is developped by MapleSoft and was spawned off from what I believe was a graduate level of work at the University of Waterloo.
see www.maplesoft.com if you are interested.

Stephen Depooter
Wednesday, February 11, 2004

I did it the same way as Alyosha`and even got the same answer. First time doing integration in more than 15 years. Got to say it's more like being a computer than programming one - it's just following an algorithm.

By the way, sometimes we used to do integration of real data by cutting out the area under the curve with an exacto knife and then weighing the paper.

pdq
Wednesday, February 11, 2004

I think I can answer the question "how much maths is needed to program" ...

At high school, I was the best maths student at my school. I also won prizes in maths competitions. After that, I got good marks in two years of maths at university. In other words, I'm not an idiot and I certainly used to know maths.

After reading the first post, I had to run to wikipedia to refresh my memory of exactly what integration is. I have used so little maths as a programmer that my knowledge of mathematics has rotted.

Rather sad I think.

Sum Dum Gai
Wednesday, February 11, 2004

Someone, way back when, described numerical integration by approximating the area under the curve with trapezoids and adding them up, and then said "that's Romberg's algorithm". Not quite. Romberg's algorithm is what you get when you do the trapezoid thing for trapezoids of width h, h/2, h/4, etc, and then extrapolate to h=0. There's a neat way of organizing the calculations that makes it quite easy to implement, and it's startlingly effective when the integrand is sufficiently well behaved.

Going even further back, to the original question: No, of *course* the fact that "only" 30% of US high school seniors know how to do a simple integral isn't the reason for ... well, for anything, really. But whining about the terrible state of education is a great way to feel good, because it lets you (1) bask in your superiority to the Children Of Today and (2) complain about how things are being run, without any real danger of (3) making you actually have to *do* anything.

It's possible that more (or better) mathematics teaching in US schools might be beneficial to the children, or to the US economy, or something. But if so, it's got nothing to do with the ability to integrate (x-1)^2.

How much mathematics do you need to know for programming? Approximately none, unless you're working in a problem domain that needs it. But being able to think like a mathematician is helpful: don't believe anything until it's proved, break things down into steps simple enough that you know they're right, be on the lookout for counterexamples, and so on.

Finally, here's a marginally relevant joke that I can't resist telling even though it isn't all that funny. So, these two mathematicians go to a restaurant and get to arguing about the terrible state of education, just like JoS regulars. The one who's claiming that the world is going to the dogs because no one knows any math[s] any more gets up to go to the euphemism, and the other one sees an opportunity to get one over on his colleague. So he quickly calls the waitress over, and explains to her that in a couple of minutes he's going to ask her a question, and he'll give a very good tip if she answers it with "one third x cubed". She agrees, and wanders away repeating vaguely "one thur dex cubed, one thur dex cubed". So, the other mathematician comes back to the table, and the first one says to him "You say that the economy is in decline because no one knows any mathematics any more. I don't believe you. I bet you $10 that even the *waitress* here knows enough math[s] to do a simple integral." His colleague accepts the bet. So, he calls the waitress over again, and says "Excuse me, but my colleague and I are having a disagreement. Can you tell me the integral of x squared, please?", to which she duly replies, slowly and mechanically, "one thir dex cubed". As she walks away from the table again, she pauses and adds "plus an arbitrary constant, of course".

Gareth McCaughan
Wednesday, February 11, 2004

>> " In Australia, we don’t study Math, we study Maths :) "

You've put your finger on it!  That's the problem in the US.  The rest of the world learns more maths than we do - we just learn the one.

bob
Wednesday, February 11, 2004

> Shorten the holidays, and the students will actually learn
> less.

That doesn't make any sense. Try this simple test.

1. What did you have for dinner last night?

2. What did you have for dinner three days ago?

See how much harder #2 is? That's just three days. How hard would it be to remember something for three *months*?

Well, virtually impossible. That's why we have to go over it all again when the kids get back from summer vacation.

> Do you think you're more productive if you work
> fifteen hours a day, seven days a week?

No. But aren't you proposing that I would be more productive if I worked six hours a day, three days a week? I don't think so. I think you might be more productive if you worked six hours a day seven days a week, or if you worked fifteen hours a day three days a week. But I don't think working less time is necessarily a good thing just because working more time is a bad thing. I think there's an optimal amount of time, and an optimal way to divide it up. I suspect that for mental pursuits it's probably closer to six hours a day, seven days a week. (Physical effort, I think, would be the exact opposite: work the hell out of it, then let it alone for a while.)

Caliban Tiresias Darklock
Wednesday, February 11, 2004

Mental fatigue is a very real problem, much like physical fatigue. You need to rest.

Sum Dum Gai
Wednesday, February 11, 2004

The article is very *interesting* It reminds me of a Don Henley song about the press "It's interesting when people die - give us dirty laundary" .
Math skills definately help in programming.  But does Japan have a Silicon Valley or a Redmond?  If not, there is a missing ingredient...

Eddie Dickey
Wednesday, February 11, 2004

Calculus is damn near useless

Laurel
Thursday, February 12, 2004

"See how much harder #2 is? That's just three days. How hard would it be to remember something for three *months*? ... That's why we have to go over it all again when the kids get back from summer vacation."

I don't know about you, but I have a hard time remembering how to ride a bicycle if I haven't done it in three months.

Okay, that was my snarky response that was meant to point out the difference between short-term memory and long-term memory.  Clearly I remember LOTS of things from longer than three months ago -- the reason being that they were committed to long-term memory.

I remember in school being distinctly frustrated with being re-taught stuff I already knew from last year ... all for the sake of the dummies in the class who never really learned it the first time around.

Alyosha`
Thursday, February 12, 2004

> But I think that the other posters are right.  There are usually more important things to worry about than how to integrate some particular function or another.  If you understand the first principles behind integration and differentiation, you've gotten what you really need out of Calculus.  Unless you have some kind of specialized need, there's no reason to memorize books full of special-case integration techniques.

---------
Damn straight.  Memorizing Integral tables is one of the most useless schemes devised by the Academic powers that be to prove how smart they are, and how stupid their students are.

The amount of time that has been wasted memorizing integral tables, which could have been used to do something productive, like learning how to apply integrals, is down right mind boggling.  Landing on Mars would be a distant memory had we not scared thousands (if not millions) of students away from advanced math with these stupid integral tables. 

There is absolutely no one in today's industry that has benefited from memorizing integral tables.  There are certainly a lot of engineers who have benefited from applying integration.

Ok I had a bad experience with integral tables, and I did study Calculus in High School, and went to get a Math minor in College. ; )

christopher baus (www.baus.net)
Thursday, February 12, 2004

I've never used any math beyond Trig and algebra in my programming. Now, I do use the HECK out of them for positioning things on the screen and creating resizable forms.

And I went all the way to DE (Differential Equations) with me BSEE degree.  I loved DE, but mostly because it gave me a chance to practice with all the lower math course skills and worked on real-world problems.


It think that *most* people would be better served by spending the SAME amount of time on MATH, but only covering half us much material. Spend the other half of the time practicing it on real world problem.

Ya' know why this doesn't happen?

Most Math teachers don't understand how to APPLY math. All they know is the book.

The real Entrepreneur
Thursday, February 12, 2004

-----"I think there's an optimal amount of time, and an optimal way to divide it up."-----

On that we're agreed; the difference is that I reckon for education it is quite close to the present situation. A six to eight week break in the summer, and either two other breaks for Christmas and Easter, or one end semester break and two short breaks within the semester.

I'm afraid I'm going to turn your argument back against you. Who is likely to have a better memory of breaks and their effect on learning; you who last experienced them years ago, or me, who has just started a new semester having come back from one a week ago?

After a few weeks tempers fray, and both staff and students become jaded. I know that after a few weeks I really need a short break, and teaching is a lot easier than learning.

There are also practical problems to your suggestion. The long summer break is necessary to let parents take theiir children on vacation outside of school time. And there are plenty of other activities done during the summer that are necessary for children's education, from summer camps to tours with a drama group or orchestra, to language holidays in a foreign country. And read a few biographies, and you will see how many of the most intelligent learned outside of school in the vacations. Take away the vacations and there is no time for that reading.

The argument that they forget during the vacation is also flawed. You would need to revise every year anyway. Come September they are still a year behind what they learnt last September, except your way they would not be refreshed after the break to take in the revision quickly. Every single EFL course I know spends about the first 15% of its material on revision, independent of whether the students are following on a week later or six months later.

Stephen Jones
Thursday, February 12, 2004

>> "And I went all the way to DE (Differential Equations) with me BSEE degree."

Wow!!!  All the way to DE?!?  That's almost a superhuman feat.

>> "I loved DE, but mostly because it gave me a chance to practice with all the lower math course skills..."

Lower math course skills?  So implicitly then, you're saying that DEs is higher math.  Aaaauuuuggh!  This is exactly what I'm talking about.  Engineers: sophomore level mathematics courses are not higher math.

bob
Thursday, February 12, 2004

> Real math is proof.  Proof, proof, proof, proof, proof.

IIRC, the second or third lecture (after defining plus and multiply and one and zero) of my undergraduate math course at Cambridge was something like:

  Proove that 1 times 0 equals 0:

  1 = 1 //from definition of =
therefore
  1 + 0 = 1 //from definition of 0
therefore
  1*(1 + 0) = 1*1 //multiply both sides by same constant
therefore
  (1*1) + (1*0) = (1*1) //commutativity
therefore
  (1*0) = (1*1) - (1*1)
therefore
  (1*0) = 0
QED


"Series and limits" came later, and calculus or analysis after that.

Christpoher Wells
Thursday, February 12, 2004

This all depends on the kind of programming you do.  For most business and applications programm, you only need basic math (i.e. how to compute an average, how to center something between two coordinates).  But there are other kinds of programming, such as CAD, 3D games, engineering simulations, and so on.  Obviously you need more math for those types of applications.  For heavy math in an unlikely place, try to write your own JPEG decoder from scratch.

Junkster
Thursday, February 12, 2004

[After reading the first post, I had to run to wikipedia to refresh my memory of exactly what integration is. I have used so little maths as a programmer that my knowledge of mathematics has rotted.

Rather sad I think]


Or is it? Do navigator become sad because they have GPS now and don't need to break out the sextant. I doubt it. His job is easier now and he can focus on the more important, getting from point A to point B on time.

Remember, we are here to create. We are here to explore and push the limits of software using our tools. If we need Math to do so then we will break out that tool, sharpen it, and have it ready when needed. If it isn't needed then we will replace it's slot in our toolbox with one that is more useful at the time. And we shelve what isn't used.

It isn't a travesty, it's the state of programming today. I would say 90% of software developers don't need thorough knowledge of Math to create great software. And that is because the tools we have created are so well built and let us abstract such things. IMO more focus should be put on other areas anyway. We lack strength in quality assurance and it has become glaringly obvious to the public at large.

trollbooth
Thursday, February 12, 2004

> Wow!!!  All the way to DE?!?  That's almost a superhuman feat.

Sounds like we have a math snob on our hands.


Thursday, February 12, 2004

>  If you don't use it, you lose it.
100% right for me

I've been to math olympics, Putnam Competitions, started Honors Calculus in 9th grade and what not still for a while I stared at this blankly.  Eventully stuff started coming back but only for a few easy cases.  If it was something more complex I'd have to reinvent the formulas first...

Made me thing about other math and I'm not even confident about definitons anymore - is tan=sin/cos ot the other way around?

Same goes for 3 years of French and 2 years of Italian.  Apart from a few expressions you can hear on the Sopranos I can even ask for a cup of coffee.

tekumse
Thursday, February 12, 2004

> Same goes for 3 years of French and 2 years of Italian.

Not entirely: I went to a french-language school from age 5 to 11 and I still read and hear it as well as ever, though I haven't spoken it in 20 years. But it's true that I can no longer speak or write it fluently.

It's sin/cos by the way, for what it's worth.

Christopher Wells
Friday, February 13, 2004

---"I went to a french-language school from age 5 to 11"----

You probably picked up French as a joint first language. Very different from learning it as a second language at school.

I did a year's full time Sanskrit and Pali at University and can't remember more than half a dozen words of either.

Stephen Jones
Friday, February 13, 2004

*  Recent Topics

*  Fog Creek Home