0
101 Nov 25, 2006 at 11:44

Hi guys.

In computer science we are using discrete math right?

I want know what is the role of discrete math in computing.

I mean in our everyday lives, I’d like to see the importance of it.

I want to see the theories in discrete math is used in the field programming / software developing, games, web developing, business, or operating system stuff like that.

Cos I don’t see it. Especially if you are living where outsourcing is in rapid growth.

I’ve asked my professor on this one he will just answer “is included to my course a pre-requisite of automata” or “in some technology today”

I don’t want a general answer, I want a specific answer on this.

Thanks guys.

#### 2 Replies

0
101 Nov 25, 2006 at 12:17

If you dont know how discrete maths is applicable, you dont know what it is

0
165 Nov 25, 2006 at 19:52

Here’s an example. In games you want NPCs to be able to figure out how to get from one place to another. To do that you need a path-finding algorithm, which is a component of graph theory, which is part of discrete math.

That’s one specific example. More generally, discrete math is useful because it lets you do algorithm analysis. You can find out if an problem is solveable in polynomial time or if it’s NP-complete. You can find out if a problem is computable at all or if it’s undecidable. These are sort of important things to know so that you don’t waste your time trying to find an algorithm to an undecidable problem, or trying to come up with a fast algorithm for something NP-complete!

Moreover, discrete math will let you comprehend data structures, and I don’t just mean like arrays and linked lists, but like trees, graphs, heaps, deques, sets, dictionaries, hash tables, and so forth. And choosing the right data structure to apply to a problem is supremely important in all fields of programming.

Finally, even if the actual content of the class is less than useful, taking the class is still useful because it teaches you how to write and understand formal proofs. This is an absolutely necessary skill if you think you might ever want to do research in CS, and not just spend years being a grunt programmer for other people’s projects.