Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As the title says,

How important is Discrete Mathematics for a Computer Scientist? Background: I'm pursuing a Master's degree with a focus on fundamentals such as Algorithms, Complexity and Computability Theory and Programming Languages to get a good foundation for working in the field of Parallel Computing.

Some more background: My university grants a lot of freedom in the choices of courses for my Master's degree. It's officially called "Software Engineering", but due to a the broad range of electives, a different focus is possible. Interestingly, none of the electives is a lecture in Math! I'm thinking about doing a course about Discrete Mathematics that would take half a semester to complete successfully, even if I can't use it for my degree. So with this question I'm trying to find out if the effort is justifiable.

share|improve this question

put on hold as off-topic by Kilian Foth, Bart van Ingen Schenau, ratchet freak, amon, Telastyn 2 days ago

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Kilian Foth, Bart van Ingen Schenau, ratchet freak, amon, Telastyn
If this question can be reworded to fit the rules in the help center, please edit the question.

13  
It is discretely important. –  Spoike Aug 31 '12 at 14:44
4  
I'm confused. You ask about how important discrete mathematics is for a computer scientist and then say you're getting a degree in software engineering. Although it's important to both, both the breadth and depth of discrete mathematics varies depending on if you want to do work in computer science versus software engineering. –  Thomas Owens Aug 31 '12 at 14:48
1  
I had discrete math in bachelor... helped me in computer graphics and artificial intelligence. –  K.. Aug 31 '12 at 14:48
1  
@Thomas Owens: The degree name is Software Engineering. I chose that one because it provides the freedom to actually focus on Computer Science (there isn't a specific degree for that at my university...) –  mort Aug 31 '12 at 14:56
2  
Seriously though I have a bachelors degree in Software Engineering and discrete maths was mandatory. I wish we started with discrete math earlier because the whole proofs section alone helped me understand other college level math courses a lot more (e.g. Calculus, Linear Algebra, Statistical Math, etc.). It made things, at least for me, a lot more clearer and easier to learn. –  Spoike Aug 31 '12 at 15:42

2 Answers 2

up vote 24 down vote accepted

As a Computer Scientist looking to get a Master's degree with focus on "Algorithms, Complexity and Computability Theory and Programming Languages" I would say Discrete Mathematics is very important.

Discrete math will help you with the "Algorithms, Complexity and Computability Theory" part of the focus more than programming language. The understanding of set theory, probability, and combinations will allow you to analyze algorithms. You will be able to successfully identify parameters and limitations of your algorithms and have the ability to realize how complex a problem/solution is.

As far as the programming language, discrete math doesn't touch on how to actually program; but rather it can be used for software system design specification. I used "ZED" in university, and it was dealing with designing a system using set theory. I'm not sure what percentage of software systems are designed with set theory these days though.

The last important concept to grab out of discrete math is boolean algebra. This is very useful not only for creating logical solution, but it is very useful in programming too. Software can be made/broke simply on the boolean logic in it.

Overall, discrete math is not a numbers class for the most part. It makes you use your brain in ways no other classes do. It is a logical thinking class and you must have patience if doing proofs/logic computations don't come easy to you. I've seen people change majors because they couldn't think "abstractly" enough to get through the course.

In short, I would make a stance that discrete math would be important class to take for a Computer Scientist/Software Engineer.

share|improve this answer
1  
Was going to answer but this is essentially my answer. –  Eliot Ball Aug 31 '12 at 15:37
    
Great answer. +1 –  Ryan Kinal Aug 31 '12 at 18:20
    
It's been a few years, but I remember Discrete Math going into Languages. First half of the class was Boolean Algebra and Sets, second half was languages and automata. Were they just combining two classes? –  Chris Jan 9 '13 at 12:52
    
I guess it depends on the pace of the class. If it was learning about a bunch of theories I guess you could get away with saying it was one class; but if you're writing something like an automation spec using Set language, then its a combination of two classes. Discrete math is a broad enough topic that it should only teach theory and use examples (i.e. homework) to elaborate on the theory. –  NETscape Jan 9 '13 at 14:57

Actually Discrete Mathematics is the backbone of Computer Science or I say the Theoretical Computer Science. Without The study of Discrete mathematics, We miss the crux of Computer Science-Logic Development. It brings rational clarity to your solutions and a formal way of analysing a problem.

Every field in computer science is related to discrete objects whether it is databases, Nueral networks, Computer Organization, Compilers, Network Programming etc. I would say it is the 'parent subject' of computer science and every one should study this subject.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.