Ask HN: Discrete Mathematics Help

5 points by jamiefriedrech ↗ HN
I am starting human computer interaction/CS degree next year, and I'm worried about Discrete Math.

I didn't put much effort in HS towards math, and scored accordingly. This is the only math course in the degree, I have no experience in the matter and want to know if this is especially challenging or if I'll be fine if I try?

There's also ~6 months till I actually start, what would be the best use of my time in learning the fundamentals?

Thanks

9 comments

[ 2.8 ms ] story [ 27.1 ms ] thread
Don't worry. If I were only taking one course in mathematics, this would be the one. Not because it is the most interesting math, or the most beautiful, but it gives you the most bang for the buck, followed by, maybe, the probability/statistic domains and then abstract algebra (basically the Latin of mathematics).

Discrete Mathematics is basically counting and algorithms, both of which you already know how to do, even if you didn't know it.

If you don't want to waste your time, follow these simple rules:

-Work out (don't copy answers) ALL assigned problems, including extra credit problems.

-If you spend more than 30 mins stuck on something, stop and re-read. In maths, you cannot skim. It all necessarily builds on previous work. That is the nature of the beast and there is no getting around it. If after re-reading you are still stuck, go get help. Do not continue to stare at the problem. 80% of the time you'll simply reinforce your confusion and frustration. Do not go online for help either. That is, more often than not, an endless rabbit hole where the vast majority of material will have nothing to do with your problem.

-Just refer to the assigned book, and if that isn't enough, maybe one supplementary book on the subject, as recommended by a grad student specializing in that area of math and that also (super important) thinks like you. (You'll actually need to talk and interact with them to determine this.)

-Unless you are already acing the material, NEVER miss class. Math professors are infinitely more likely to assist a student they see in class. I think that is because most people have an aversion to the subject that they think is the greatest thing in the world. So dissing the subject makes them pretty irate.

-If your answer doesn't match the books, initially it's easy to think the book has a mistake. The sooner you can squash this impulse the better. Go back and write out your work step by step, in the most exacting detail. If you are still not matching the book, go to office hours and have the professor look at your work. They will be able to see where you went wrong almost at a glance. Plus, you'll look like a badass for doing math like math is supposed to be done. The alternative is to look like an ass emphatically arguing that the book has an error, and then when the professor spends 10 mins walking you through the problem till they can extract where you went wrong, you'll be embarrassed and the professor will be irritated.

So. That sounds like a lot of work, but, unless you're a math wiz, that's actually the easy way. There are two alternatives. One, randomly go through the material only when you think it's important and make a frustrating mess out of the whole exercise. Or, two, do the minimum amount of work required to get a C. Math professors often make getting an A difficult but doable, a B imminently doable, a C super-doable just so they don't have to hassle with that group of students which would otherwise make their life a living hell if she were to give them a D or F. You generally have to work your ass off to get an A+ or F, especially in the 101/201 level classes.

If you take only one thing away from reading this, let it be, discrete math is actually a super useful, almost indispensable tool for the CS tool-chest.

Very much appreciate the response! Thank you, very useful.

Once last thing to annoy you with, I have 6 months until I begin the course and I'd like to be as prepared as possible. Do you have any suggestions?

No problemo!

Personally, if I had to do it again, I'd purchase a used copy of "Discrete Mathermatics with Graph Theory, 3rd Edition" by Edgar Goodaire and Michael Paramenter and then download the instructors solution manual. Then work through the book. This only works if you have the discipline to work out the problem before checking your work. If you don't, you can sabotage yourself. You'll gain false confidence in what you know and move on before you actually understand what you just did. Then on test day you'll have no clue what to do and it all backfires.

Learning math is super personal though. Do what works for you. Try a couple different approaches. And work around other people doing or that have done the math you're learning. One of the most under appreciated aspects of mathematics, in my opinion at least, is learning to "do" mathematics, as opposed to learning the structures, axioms, definitions, theorems, algorithms, etc. that compose the corpus of mathematics. Doing or practicing mathematics around others that are doing the same allows you to learn that super important aspect much faster than practicing on ones one, where you only learn after making costly and frustratingly discouraging mistakes. And sometimes, even then you might not learn from that.

Both your comments here are pure gold. Thanks for taking the time to be so helpful.
I was hesitant to post the question, but s/he has reaffirmed my belief in the good of humanity.
It sounds like your high school experience is a reflection of attitude not ability.

While it is currently possible to have a career in computing with just discreet math, my observation is that many of the most interesting problems and work in computing are more readily understood in mathematical terms...that's sort of the nature of any technical discipline: I've read Einstein wished he knew more math.

Good luck.

Any other suggestions outside of Discrete Mathematics that I should be learning? Outside of the prescribed courses.
Everything. One mathematical form description is often isomorphic with another form, and the new form may make the problem easier to solve. Any math you learn may provide useful insight and there's a whole career in which to learn.
Basic Linear Algebra is useful in any GUI programming, especially games. Numerical Analysis is also generally useful.

It depends on your interests what else might be useful.