1 / 6
Oct 2012

I'M WONDERING WHETHER I SHOULD STUDY DISCRETE MATHEMATICS OR NOT.

IS DISCRETE MATHEMATICS NECESSARY FOR PROGRAMMING? AND HOW MUCH DOES IT AFFECT ONE'S PROGRAMMING SKILLS?

I REALLY NEED HELP. WOULD YOU MIND ANSWERING MY QUESTIONS?
THANK YOU IN ADVANCE.

Step 1: Locate the caps lock and shift keys on your keyboard.

To answer your question, you should study discrete mathematics. It helps you understand the underpinnings of efficiency, or lack thereof, of effieciency. It also helps develop understanding of logic and other computer theory. While none of those things may seem interesting think of them as the strategy of a game. Anyone can move chess pieces around the board, but It takes a deep understanding of the game to be good at it. Think of discrete mathematics as your fundamentals of chess.

I never finished my computer science degree, but 10 years later, I still refer to my Sipser "Intro to the Theory of Computation" text at least once or twice a year.

Good luck!

Thank you very much.
My habit is Caps Lock programming, if it annoys you then I'm sorry.
I'm studying "Discrete Mathematics and its application" by Kenneth H Rosen, but it may take me a lot of time to study the whole book. So I'm wondering how much i should study in order to know all the necessary knowledge while saving time.
I've just begun to study programming, and I only have 1 year to prepare for the contest which choose the ones who will take part in the national contest.

As I said previously, it's a course usually studied at the university level. It will expand your theory knowledge. Can you solve programming problems without a complete understanding of discrete math? Sure. Will discrete math make you better? Absolutely.

A very important topic when discussing algorithms is Complexity. I wouldn't read only about it, but it's definitely a key point.

I'm not sure what "National Contest" you are talking about, but a good suggestion would be to start solving problems here, so that you can expand your mind through application while also studying theory.

Thanks. I've looked through Sipser's book, it's a great book.
Can you suggest a list of books that I can study? I'm lost now and don't know what to do. I'm doing problems here and other training pages such as USACO, Codeforces,... I really like computer science and I want to be better at it.

The only other book that I have that I get a lot of mileage out of is Introduction to Algorithms by CLRS. You can also check out the MIT course on OpenCourseWare.