This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.

i hate the fact that i have to take math and physics courses for a degree in CS....for those of you that are in the industry..do you actually use discrete math/structures? calculus? physics?

im having a hard time understanding the correlation between these advanced math class and computer science...these schools just need people to take these math classes!!

Originally posted by m brown: i hate the fact that i have to take math and physics courses for a degree in CS....for those of you that are in the industry..do you actually use discrete math/structures? calculus? physics?

im having a hard time understanding the correlation between these advanced math class and computer science...these schools just need people to take these math classes!!

Those math classes will be what will help you the most. Provided you understand it well and can use it in relation to programming languages and architectures. Algorithms based on higher mathematics is the underlying core of all programming/designing. If you know it well, you definitely have an edge. Superficially speaking you dont need it, but thats what differentiates the truly skilled programmers from the rest. It's tough but worth it.

A Professional is one who can work best when he doesn't feel like it!

Yes these courses should be helpful.But now a days,speed,performance,memory are not considered big issues as they have become cheap.so as far as your code works, .

Originally posted by Arjunkumar Shastry: Yes these courses should be helpful.But now a days,speed,performance,memory are not considered big issues as they have become cheap.so as far as your code works, .

I dont agree with you. speed,performance,memory issues are going to stay here and for that we need above cources (algorythms,maths,stats...)

-Vinit

ali haider
Ranch Hand

Joined: Feb 05, 2005
Posts: 61

posted

0

Originally posted by Arjunkumar Shastry: Yes these courses should be helpful.But now a days,speed,performance,memory are not considered big issues as they have become cheap.so as far as your code works, .

To second that I would say speed,performance,memory have become cheap but they are not free. Bound to become critical at some stage of your application depending on it's size and complexity

Arjunkumar Shastry
Ranch Hand

Joined: Feb 28, 2005
Posts: 986

posted

0

I agree with you completely.But how many times we are being asked in the interview to analyse Radix sort?

Vinit Patil
Ranch Hand

Joined: Mar 17, 2005
Posts: 37

posted

0

Originally posted by Arjunkumar Shastry: I agree with you completely.But how many times we are being asked in the interview to analyse Radix sort?

1)These courses are not just for interviews, they are useful in real applications.

2)I dont know about 'Radix sort' but I know many times they ask for algorithms implemented in java.util.* packages etc. e.g. difference between HashMap & List ...(speed, performance,memory) ...

As abhi maj said, taking math classes will also help you in computer science classes. They improve your problem solving skills, and you'll have an easier time understanding the theoretical parts of computer science.

Having had math classes (or hard computer science classes for that matter) will also send a signal to future employers. Having proved, that you are able to understand and comprehend university level math will signal, that you are able to "learn". Hardcore classes are, "in my book", a good thing.

Most courses you take aren't "directly useful" to application development. Most courses do, however, teach you how to think about complex problems, model and analyze them. This is critical to being a good software developer.

How often do you see a help-wanted-ad that wants somebody good in math and science? The industry likes to use this as an excuse to hire foreign nationals. Academics like better funding. Once you've taught calculus a few times it's a breeze and you look like a genius.

In most case, IMO, it's more about selling education than it is needed for a career.

i hate the fact that i have to take math and physics courses for a degree in CS....for those of you that are in the industry..do you actually use discrete math/structures? calculus? physics?

Math and physics courses are rightly required for all science and engineering degrees.

Math is directly applicable to programming. While performance tends not to be an issue in most applications when the programmer has enough quantitative knowledge to select appropriate algorithms, programmers without this quantitative knowledge can easily write programs that don't scale to real deployment use. Calculus is a fundamental part of this quantitative knowledge.

A lot of discrete math is also applicable to the fundamentals of how programming languages work. To use them most effectively, you need to know how they work.

Physics is important for understanding how computer hardware works. While a software engineer doesn't absolutely have to understand this stuff, it can be quite helpful at times, especially when architecting an overall system.

Calculus and physics are generally useful for understanding the world - including many parts of the world that are often the subjects of various computer systems. While this kind of domain knowledge isn't required for every computer job, it is part of the well rounded education that a bachelor's degree represents.

If you hate math and physics, you might consider switching to a major that doesn't require them.

I used to hate those darn transformations - Fourier transforms, laPlace Transforms. I thought that it was the end of those things after my final exams.

Boy, was I wrong. At one of my job experiences, I needed to work an application (very peripherally related to Avionics) that required me to use all of these transformations...

So, yeah, they are used. In my case, very directly.

And as an aside, once I realized how these transformations apply to life from a practical point of view, I came to appreciate them. If I had gotten this experience earlier, I would have aced those exams, instead of barely scraping thru [ March 31, 2005: Message edited by: kayal cox ]

m brown
Ranch Hand

Joined: Mar 01, 2005
Posts: 57

posted

0

i can understand the importance of algorithms and how it relates to programming....but do i really need to know how to calculate the centripetal acceleration of a object(physics) or the tangent of a sphere(calculus)??? you guys are saying "well yeah it might be useful, it could be useful", but have YOU actually used any of this stuff in the real world?

the reason im asking i guess is because i honestly forgot most of the math(i took all those courses about three years ago) and i really want to know is it even worth glancing over again or not....im guessing it probably isnt.

Originally posted by kayal cox: I used to hate those darn transformations - Fourier transforms, laPlace Transforms. I thought that it was the end of those things after my final exams.

Boy, was I wrong. At one of my job experiences, I needed to work an application (very peripherally related to Avionics) that required me to use all of these transformations...

So, yeah, they are used. In my case, very directly.

And as an aside, once I realized how these transformations apply to life from a practical point of view, I came to appreciate them. If I had gotten this experience earlier, I would have aced those exams, instead of barely scraping thru

[ March 31, 2005: Message edited by: kayal cox ]

How true, I could say the same thing about Linear Algebra. It seemed so useless, and so tedious to work out by hand, until I got involved in APL, which does inner product and matrix inverse as primitives and computer graphics which uses this stuff extensively. This is available in Java from the java.awt.geom.AffineTransform class. [ March 31, 2005: Message edited by: peter wooster ]

Originally posted by Arjunkumar Shastry: Yes these courses should be helpful.But now a days,speed,performance,memory are not considered big issues as they have become cheap.so as far as your code works, .

and that's precisely the attitude which causes software to not perform any faster now than equivalent software did 10 years ago on far less powerful hardware and take up gigabytes of harddisk space instead of fitting on a single floppy.

42

Jeroen Wenting
Ranch Hand

Joined: Oct 12, 2000
Posts: 5093

posted

0

that said, Math and physics are fun. But then I graduated in physics not CS so I may be a tad biassed

Originally posted by Mark Herschberg: Most courses you take aren't "directly useful" to application development. Most courses do, however, teach you how to think about complex problems, model and analyze them. This is critical to being a good software developer.

--Mark

Seconded. Over the years I've heard my fill of pontifications about how "to write Visual Basic apps, you have to know calculus forwards and backwards". In truth, the part of differential calculus that deals with functions is fundamental to programming, and algebra and the symbolic logic Caculus of Porpositions are extermely important, but for most of the rest, unless you're working with a particular mathematical discipline, the maths you need are about on the par for what an auto mechanic would need.

I think I can speak with some authority here, since I've been hired on a number of jobs specifically because I have an above-average mathematical background. I've done work with insurance actuarial apps (general math & statistics), mortgage portfolio valuation (more general math & statistics with a brief foray into partial differential equations) and laser printer design (geometry and calculus). But in general, I don't do heavy math on a routine basis.

I've flunked only one college course in my life. That was Calculus II, which I took after several years out of academia. I flunked it because I'd completely forgotten that the mathematical discipline of Geometric Identities even existed (last worked with it in 11th Grade and never since, outside that one class). I was attempting to relearn it at the same time I was trying to master harmonic series - which also I haven't gotten into anywhere else except for in early college where I was disassembling IBM's FORTRAN math library.

Overall, I'd say that it's more likely you'd get a job as a mathematician and use Java than directly be hired as a Java programmer to do heavy math.

Of course, some of the REALLY intensely mathematical computing (supercomputing work) is still done in FORTRAN.

An IDE is no substitute for an Intelligent Developer.

Warren Dew
blacksmith
Ranch Hand

Joined: Mar 04, 2004
Posts: 1332

2

posted

0

m brown:

i can understand the importance of algorithms and how it relates to programming....but do i really need to know how to calculate the centripetal acceleration of a object(physics) or the tangent of a sphere(calculus)??? you guys are saying "well yeah it might be useful, it could be useful", but have YOU actually used any of this stuff in the real world?

For calculus to be really useful, you need to know more than how to solve the problems - you need an intuitive feel for it that only comes with solving many many problems. And yes, I've used this knowledge in every programming job I've had.

I'll admit that I've only used my physics in maybe a third of my programming jobs. On the other hand, I use it every time I drive a car .. went off the road twice in the one year I was driving before taking physics, and haven't gone off the road in the 28 years since.