To become a better computer programmer I would like to take the time to learn discrete mathematics, but I am positive that I do not have the required existing knowledge to do so. So I would like to hear from the experts about what I really need to know to be able to take a discrete math class or to even be able to pick up a book and learn it on my own.

The extent of my math knowledge now is basic algebra. Probably not even high school senior level. Where should I start? I am guessing I should start with college algebra(or possibly even a remedial algebra), but I don't know where to go from there. Do I need trigonometry? The calculus? Calc II?

I wish I had worked harder in high school, but I didn't. Thanks for your answers.

  • 10
    $\begingroup$ If you can count, you can learn discrete math. (Terrible pun aside, basic algebraic manipulations and an understanding of functions is plenty to get started in discrete math.) $\endgroup$ Sep 7, 2011 at 20:28
  • 3
    $\begingroup$ Luckily, MIT has some nice introductory open courseware which will more than prepare you for discrete math courses. In fact, you'll do just fine in an introductory theory class with this under your belt: ocw.mit.edu/courses/electrical-engineering-and-computer-science/… $\endgroup$
    – ShyPerson
    Sep 8, 2011 at 4:48
  • 1
    $\begingroup$ @ShyPerson Link is dead, here's an updated link: ocw.mit.edu/courses/electrical-engineering-and-computer-science/… $\endgroup$
    – thordarson
    Apr 4, 2020 at 15:18
  • $\begingroup$ @thordarson: thanks for updating the link. $\endgroup$
    – ShyPerson
    Apr 5, 2020 at 5:30

1 Answer 1


You do need to be reasonably comfortable with basic algebra, if only so that you don’t worry about it; you do not need trigonometry or calculus. (If I had my way, high schools would replace most of their calculus courses with discrete math and elementary statistics.) What you chiefly need is the ability to follow logical arguments. Oh, and you need to be aware that you’ll often be dealing with exercises that are much less routine in nature than those in the math courses that you’ve had so far. Most of the mathematical tools that you’ll use in an introductory discrete math course are pretty simple; the trick is generally figuring out which ones to use on a particular problem and how to use them.

  • 3
    $\begingroup$ Of course, more advanced parts of discrete math may utilize other branches of mathematics... $\endgroup$
    – GEdgar
    Sep 7, 2011 at 21:03
  • 2
    $\begingroup$ @GEdgar: Of course. But that appears to be a problem for another day. Indeed, I think that one could do a good deal worse than an intro. discrete math course as preparation for going further in math generally. $\endgroup$ Sep 7, 2011 at 21:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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