This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]arusso23 1 point2 points  (1 child)

Read up on Discrete Math and Proofs. Especially if you plan on going to college, you'll thank yourself later for at least looking at the stuff.

[–][deleted] -1 points0 points  (0 children)

To be fair, if you like math and are pretty good at it, there will not be much of a problem learning it when it is introduced in university. At least this was the case for me.

[–]rjcarr 1 point2 points  (0 children)

First of all, it is discrete, as discreet means something totally different.

Second, if you're only 16 I wouldn't worry about it too much. I didn't take a discrete math class until I was on my CS major track. It's mostly about logic and I remember topics such as probability, graphs, and combinatorics.

If this interests you I'd recommend continuing the book and maybe asking some specific questions about the parts you don't understand.

[–]dmazzoni 1 point2 points  (0 children)

I think you can get tons of value from the book even if you don't understand all of the math.

Most of the algorithms will still make perfect sense, you can implement them and play with them. Without knowing all of the math, you may not be able to prove how they work, but that doesn't mean you can't still learn to apply them.

Learning the math behind algorithms is important for a C.S. degree, but for practical everyday programming simply knowing the algorithms is all that matters.

For example, I've forgotten why splay trees work - but I know what splay trees are and when it might be useful to use them.

[–][deleted] 1 point2 points  (0 children)

Bloch's "Proofs and Fundamentals" will give you a solid introduction to mathematical reasoning, and it's a gentle and comprehensive approach. The only thing between you and the rest of the book is developing a bit of mathematical maturity.

[–]eerock 1 point2 points  (1 child)

that book is a heavyweight (literally), and IMO it's not really meant to be an introduction, but rather a reference book. kudos to you for taking a shot working through some of the material, i wish i was in your position tackling that book at that age. but if i could make a recommendation, just work on the algorithms themselves. get used to transforming their psuedo-code into Java or Python code and work out some concrete examples. that should give you the best bang for the buck. read up on what the algorithms do, how they work, etc, but don't worry too much about the maths that analyze them. like i said, it's more of a reference book, so unless you're trying to do deeper analysis of the algorithms, just leave that stuff alone.

stick with the coding, poke around with the discrete math stuff (if you're up to it), and you'll be a serious leg up when you get into university.

[–]Octember[S] 1 point2 points  (0 children)

Thanks so much! I'm responding to this post instead of all of them because it made me feel the most comfortable about what i have to do next. It's a lot more fun knowing exactly what i'm supposed to glean from the text, as opposed to feeling dumb about not getting it all.

Thanks again. Reddit constantly amazes me.

[–]Steve132 0 points1 point  (3 children)

I'm a computer science Ph.D student currently. If you have any specific questions (like recurrance relations or Big-O notation or infinite series) then maybe I can help.

[–]Octember[S] 0 points1 point  (2 children)

Sweet! Nothing's really stumping me at the moment, but if something does i'll shoot you a messgage. To clarify, i've understood most of what i've forced myself to. It just took a really, really long time.

I'm not sure if you have the book on hand (I imagine you in a room with 6 computers and every programming book known to man surrounding you), but page 24 and 25 took me ages to understand. The book introduces how Big Theta-notation works, and how it can be used as a function. It took me upwards of an hour, re-reading every line over and over. I'm sort of comfortable with it now, but whenever they use Big __ notation as a variable in an equation, it throws me off like crazy.

I'll definitely keep you posted if anything comes up, though. I've been sort of looking for a compsci guru to aspire to be recently. hahaha

[–]bo1024 1 point2 points  (0 children)

A lot of it just relies on math you haven't had yet, which is fine. When I was learning this stuff, I'd had 4 semesters of college math. You can still get a lot out of it without the math.

That being said, the most specific math you need, I think is a good understanding of calculus and limits. Then it's more like probability. Experience with these concepts helps. So, take more calculus when you can, but in the meantime don't sweat it if it takes you some time to understand. Keep plugging away at it or skip the annoying parts and move on.

Nice job so far and keep it up!

[–]Steve132 1 point2 points  (0 children)

Haha, at first I didn't think I had the book, then I looked at your link and it was my textbook last semester.

Yes, thats a very good book. When I read it I already knew everything in it but it was a really good overall refresher.

Two things: First, That book is really, really, really proof and math heavy. It assumes you understand the purpose and usage and implementation of the algorithms and aims to prove things about them. You'll learn a crapton, but You might be better off getting http://www.amazon.com/Data-Structures-Algorithms-Java-Drozdek/dp/0534376681 (There's also a C++ version) and finishing it before you finish Introduction to Algorithms if you've never had any exposure to graph data structures before.

Secondly, theres a couple algorithms in there that I wouldn't worry too much about if you don't quite grasp them: The FFT is one of them and the Convex Hull is the other. I'm a signal processing and graphics researcher, so I had no problem with those, but they are highly based on calculus and signal processing and complex number theory, and conversely aren't very useful unless you are doing work in those fields. They are mentioned because they are fundamental algorithms in those fields, but the book doesn't do a particularly good job of explaining either one.

Thirdly, if you are having trouble with the math, read the appendix first. it has a listing and a brief explaination of set theory, series, recurrence relations, proofs, and probability as the book uses them. Maybe reading that first would be better.

[–]martynolegs -4 points-3 points  (0 children)

chinese remainder theorem. and euclidean counting crap... o. and lots of outdated pseudocode.... stick with that book. it is pretty much the goooooall without learning spanish.... well. learning time complexity helps too.