Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# Maths for algorithms.

pawan chopra
Ranch Hand
Posts: 417
I would like to know What topics in maths one should know to learn algorithms?

Deepak Bala
Bartender
Posts: 6663
5

pawan chopra
Ranch Hand
Posts: 417
Deepak Bala wrote:Addition, subtraction, multiplication, division

Devaka Cooray
ExamLab Creator
Marshal
Posts: 4262
229
Many! Including sets, boolean algebra, series, or even calculus would be helpful.

Deepak Bala
Bartender
Posts: 6663
5
On a more serious note, I found differentiation and maxima / minima helped solve a problem recently. The problem was reduced to an equation and the equation's minima gave the answer

Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15207
36
Probably one of the most famous books with regard to this subject is Introduction to Algorithms. I had a course with that book at university a long time ago.

Note that a video lecture of this course is available from MIT.

In my opinion, every serious programmer should know something about algorithms, and should know the basics of analysis of algorithms and big O notation.

pawan chopra
Ranch Hand
Posts: 417
Jesper Young wrote:
In my opinion, every serious programmer should know something about algorithms.

I agree with you. But I started with Introduction to Algorithms and found it tough. So I thought I should learn mathematics first. I almost forgot everything in maths. It will be helpful if you can suggest some good tutorials and books.

Soumil Shah
Ranch Hand
Posts: 54
pawan chopra wrote:I would like to know What topics in maths one should know to learn algorithms?

entire maths...

Chris Baron
Ranch Hand
Posts: 1061
@Jesper: thanks for the link to the MIT OpenCourseWare page! I'll surely attend some lectures there.

I have also my problems with math. We were able to "deselect" it at high school. And, taking the path of least resistance, i did. Now i regret it. So i simply never learned the symbols of higher mathematics. I'm sure it would be much easier to understand if they use java code.
cb

Steve Fahlbusch
Bartender
Posts: 602
7
Hardly meaningless, but...

might i suggest: Concrete Mathematics: A Foundation for Computer Science

marc weber
Sheriff
Posts: 11343
Logic.

Pat Farrell
Rancher
Posts: 4678
7
Any serious study of algorithms needs at least some level of calculus and a bit of probability. If you watch the MIT Open Courseware lectures, you will see that they assume a fair amount of college level math. Then it is MIT, so they know that their students have the background.

Of course, you need calculus and some probability to be any kind of Engineer.

Henry Wong
author
Marshal
Posts: 20892
75
Pat Farrell wrote:Any serious study of algorithms needs at least some level of calculus and....

Personally, in over 20 years as a developer, I had to use calculus only once... I had to use this algorithm to control the number of VmWare members in the grid to process work (with a fluctuating load).

Basic junior high school math and algebra probably covers more than 90% of the cases. I also used geometry, trigonometry, and statistics too -- but these are dependent on what I was working on.

Henry

Pat Farrell
Rancher
Posts: 4678
7
Henry Wong wrote:
Pat Farrell wrote:Any serious study of algorithms needs at least some level of calculus and....

Personally, in over 20 years as a developer, I had to use calculus only once...

For sure, the study of algorithms needs a bit of calculus, but in the real world, you rarely need to prove that your algorithm is O(n^2)

I do think that academic study is important in practice, so that you know that using a O(N^4) algorithm is a really bad thing if N is greater than about 5.

I have managed folks with MS in Computer Science that didn't fully grok this. Its like seven way RDBMS joins, sure, they work in theory, but they are way bad in practice.

pawan chopra
Ranch Hand
Posts: 417
Steve Fahlbusch wrote:Hardly meaningless, but...

might i suggest: Concrete Mathematics: A Foundation for Computer Science

Its Knuth's book must be hard