views:

498

answers:

8

In what particular situation you will need a depth knowledge of math/physics in software engineering?

+7  A: 

Good knowledge of Mathematics is highly recommended [not mandatory]. Physics in my opinion is not that crucial to know but basic physics knowledge will surely help.

Computer science is rooted to Maths and both programming and mathematics require good analytical and problem solving skills.

this. __curious_geek
It has been said "Computer Science is neither about computers or a science". It is a branch of maths. Of course most of what we (software developers) do is not computer science, but the craft of programming.
Richard
There is also the other aspect of Human Computer Interraction (HCI). So you don't need Physics or Maths if you want to specialise in that area of computing...
J Angwenyi
+1  A: 

For programming itself: it is helpful to come up with relations and functions, but no depth knowledge is needed. If you wan't to deal with deeper questions and more theoretical stuff: yes, it is math. Physics is not needed, unless you want to solve a physics problem of course.

Femaref
+3  A: 

Depends a bit on your line of work. If your trying to implement some kind of gravitational model for a game engine, knowledge of physics will surely help.

I think knowledge of math is required however, you will always encounter some problems that have to do with mathematics. For instance, I work as a web developer; for one client we had to make a tool/feature on his website that calculates distances between to places. But the programmer didn't know how to implement/use Pythagoras theorem...

Lex
didn't know pythag? wtf?! this is taught to 12 year olds! I wouldn't even put this in the "knowing maths" category, I'd expect it from any base level of education.
fearofawhackplanet
Yeah, I was pretty suprised myself, but I had to explain how he had to do it. Of course, it did ring bells, but he couldn't come up with it himself...
Lex
A: 

To answer your question: you will need good maths and physics if you are writing scientific (well, physics-type scientific) and engineering programs. For more general purposes good maths is better than bad maths but bad maths is often enough and physics may be totally irrelevant. Good maths is a question of topic (eg graph theory more useful than real analysis, arithmetic more useful than topology) and depth of knowledge.

High Performance Mark
A: 

Computer science cherry picks mathematics for its needs, at least where you aren't using computing for an area that is heavily mathematical, for example games programming.

This includes logic, graph theory, statistics, vectors and trigonometry, set theory. For the average job your daily task will involve logic and not much more. If you get an above average job then this may differ.

Chris S
A: 

I'm a Game developer and frankly I must say that you don't need a lot of math and very little physics. All I used so far are Trigonometry,Linear Algebra (for 3d matrices) and some interpolations. I woudn't really say that's complicated math. As for physics some knowledge about mechanics and forces should help if you want to simulate the environment but otherwise I woudn't really see the point.
I also did some other applications in my spare time never needed any math that's over 8th grade.

Sanctus2099
A: 

Programming is basically thinking in an organised way about a problem. Math and physics are fields where you need to think pretty clearly too. So if you know some math, it will be useful to you because you'll have learned how to structure problems and solve them.

As for specific mathematical concepts, math is such a wide field that whatever specialised topic you might end up programming, you'll have to pick up a book and learn it. For instance, I did an engineering course with loads and loads of physics and math, but I had to learn all the financial mathematics when I started work, because that kind of thing is pretty specialised. But not hard to learn if you're used to thinking in an organised way.

Carlos
A: 

The question asked about 'Software Engineering' specifically, and, of course, Software Engineering can include somewhat more than programming. As a software engineer you'll need to do things like estimate the effort required to do a project, or estimate the impact of risks. Risk mitigation and some effort-estimation models are based on probability distributions that are not trivial, and, to be used as intended, must be understood.

Magnitude estimations are another area. If you are designing an algorithm that can potentially be used many times or need to handle large amounts of data, then you will want to evaluate how the time required for a candidate algorithm will grow when it's required to execute many times or with increasing data loads, versus some other algorithm that may be more or less efficient. That requires a math model of your algorithms.

My advice: if you plan to be involved in some of the larger aspects of software development, don't bypass the math courses.

Gary Mrenak