Best computer science books according to Reddit

Reddit mentions of Concrete Mathematics: A Foundation for Computer Science (2nd Edition)

Sentiment score: 34
Reddit mentions: 67

We found 67 Reddit mentions of Concrete Mathematics: A Foundation for Computer Science (2nd Edition). Here are the top ones.

    Features:
  • Extremely fast! It’s the fastest manual Santoku and 15 Degree style knife sharpener available
  • Creates an ultra-sharp 15 Degree edge
  • 2-Stages, sharpening and honing/polishing, for an arch-shaped edge that is stronger and more durable
  • Uses 100% diamond abrasives in stages 1 and 2
  • CrissCross technology for an extremely sharp edge with lots of “bite”
Specs:
Height1.44 Inches
Length9.38 Inches
Number of items1
Weight2.645547144 Pounds
Width7.82 Inches
#12 of 1,900

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Found 67 comments on Concrete Mathematics: A Foundation for Computer Science (2nd Edition):

u/LateBroccoli · 64 pointsr/compsci

Long answer is here

Short answer is "stop whining and learn while you still can"

Regards,

Someone who didn't

u/Lhopital_rules · 64 pointsr/AskScienceDiscussion

Here's my rough list of textbook recommendations. There are a ton of Dover paperbacks that I didn't put on here, since they're not as widely used, but they are really great and really cheap.

Amazon search for Dover Books on mathematics

There's also this great list of undergraduate books in math that has become sort of famous: https://www.ocf.berkeley.edu/~abhishek/chicmath.htm

Pre-Calculus / Problem-Solving

u/Lericsui · 26 pointsr/learnprogramming

"Introduction to Algorithms"by Cormen et.al. Is for me the most important one.

The "Dragon" book is maybe antoher one I would recommend, although it is a little bit more practical (it's about language and compiler design basically). It will also force you to do some coding, which is good.


Concrete Mathematics by Knuth and Graham (you should know these names) is good for mathematical basics.


Modern Operating Systems by Tennenbaum is a little dated, but I guess anyone should still read it.


SICP(although married to a language) teaches very very good fundamentals.


Be aware that the stuff in the books above is independent of the language you choose (or the book chooses) to outline the material.

u/cronin1024 · 25 pointsr/programming

Thank you all for your responses! I have compiled a list of books mentioned by at least three different people below. Since some books have abbreviations (SICP) or colloquial names (Dragon Book), not to mention the occasional omission of a starting "a" or "the" this was done by hand and as a result it may contain errors.

edit: This list is now books mentioned by at least three people (was two) and contains posts up to icepack's.

edit: Updated with links to Amazon.com. These are not affiliate - Amazon was picked because they provide the most uniform way to compare books.

edit: Updated up to redline6561


u/willardthor · 21 pointsr/compsci

During my studies, in my research (information-flow security), and as a working computer scientist, I practically never find use for analysis.

Most of (theoretical) computer science is based on logic and algebra, and deals with discrete structures.

That is not to say that real analysis has no home in computer science. Far from it.

Any aspect of computer science that deals with randomness touches on analysis. These aspects resort to probability theory to reason about randomness. And probability theory applies analysis. Example aspects in computer science include cryptography (pseudo-random number generators, hash functions, etc., which rely on number theory), formal verification (model checking, which sometimes uses continuous-time Markov chains as models), information theory (channel coding and signal processing), and machine learning (Bayesian networks).

And, as I am sure you know, optimization and analysis of algorithms (smoothed analysis).

You might find the following books interesting:

u/UnlikelyToBeEaten · 15 pointsr/math

Disclaimer: I only have a masters in maths, and I've just started working as a programmer.

Here are topics I enjoyed and would recommend

  • At least basic programming. I've heard that if you are interested in mathematics,you may be especially interested in the Haskel language.
  • Mathematical Logic and Meta-mathematics, some (very basic) model-theory. Personally, I also found set theory and the proof of the independence of the Axiom of Choice from the Zermelo-Fraenkel axioms incredibly interesting. The stuff from Gödel, Escher, Bach.
  • Probability theory and Bayesian statistics, along with some basic information theory and theory of complexity / entropy.
  • Basic category theory (though it's a hard subject to learn if you don't have some advanced algebra to motivate why things are done the way they are. It also took me about three or four tries before I finally started understanding it, and after that I found it quite beautiful. Your mileage may vary).
  • EDIT: Also, Knuth's Concrete Mathematics. The book is a very good source on the topic.
u/jacobolus · 14 pointsr/math

I take it you want something small enough to fit inside a hollowed-out bible or romance novel, so you can hide your secrets from nosy neighbors?

u/[deleted] · 12 pointsr/programming

looks like a decent single volume overview of undergrad comp sci math

another good single volume book on the subject is Knuth's Concrete Mathematics although definitely written at a higher level of mathematical sophistication

u/unovasa · 12 pointsr/programming

I really enjoyed Concrete Mathematics by Graham, Knuth, & Patashnik

u/cabbagerat · 10 pointsr/compsci

Start with a good algorithms book like Introduction to algorithms. You'll also want a good discrete math text. Concrete Mathematics is one that I like, but there are several great alternatives. If you are learning new math, pick up The Princeton Companion To Mathematics, which is a great reference to have around if you find yourself with a gap in your knowledge. Not a seminal text in theoretical CS, but certain to expand your mind, is Purely functional data structures.

On the practice side, pick up a copy of The C programming language. Not only is K&R a classic text, and a great read, it really set the tone for the way that programming has been taught and learned ever since. I also highly recommend Elements of Programming.

Also, since you mention Papadimitriou, take a look at Logicomix.

u/chromaticgliss · 10 pointsr/AskComputerScience

Caclulus track is typically required. Linear algebra is pretty useful (and often required). If you really wanna go into CS specific maths.... pick up a book on Discrete Math and give it a go. If you want to be really hardcore, pickup Concrete Mathematics ... good luck, hard book.

Honestly, you're probably better off spending that time learning a programming language. Specifically, whatever language your school teaches mostly. Math in a CS bachelor isn't very intense until you get into senior/graduate level courses.

u/RedSpikeyThing · 8 pointsr/programming

Concrete Mathematics by Graham, Knuth and Patashnik is a great start to almost all of those topics.

u/darkroastbeans · 8 pointsr/compsci

Props to you for working through a textbook with python! Someone recommended Concrete Mathematics to me a while back as a good resource for really sharpening my math skills. Knuth is one of the authors, and while the book does not discuss programming at all, I'm interested to see how, as a programmer himself, he explains mathematics.

A Khan video series would be awesome. I think there would be a lot of demand for it.

I think the thing I have the most trouble with is understanding math notation. For some reason all the symbols really confuse me. I can learn a new programming language syntax with relative ease, but when I try to learn math syntax, my mind just goes blank. Not sure why this is an issue.

u/bixmix · 7 pointsr/VoxelGameDev

Steps to build your own engine from scratch with no knowledge:

  1. Math: http://amzn.com/0201558025
  2. Programming: http://www.amzn.com/0321751043
  3. Intro Language: http://www.amzn.com/125785321X
  4. C++ Language (Reference Books):
  5. OpenGL Intro: http://opengl-tutorial.org/
  6. OpenGL Reference: http://www.opengl.org/sdk/docs/
  7. Scour the internet for voxel info

    Note: Most people who decide to put together a voxel engine take about 2 years from inception. At the end of the two years, they will have a library they could use to create a game. They've also already made it through the first 4 steps when they start.

    Without a degree program to solidify the concepts, I suspect that the first 4 steps will take at least 2-3 years: about 10-20 hours per week each week.
u/GenesisTK · 7 pointsr/uwaterloo

http://www-math.mit.edu/~rstan/ec/
I'll give you a brief about the book: It's really dense and probably will take you a while to get through just a couple of pages, however, the book introduces a lot of interesting and difficult concepts that you'd definitely see if you pursue the field.

https://math.dartmouth.edu/news-resources/electronic/kpbogart/ComboNoteswHints11-06-04.pdf
Is a Free book available online and is for a real beginner, basically, if you have little to no mathematical background. I will however say something, in Chapter 6, when he talks about group theory, he doesn't really explain it at all (at that point, it would be wise to branch into some good pure math text on group and ring theory).

https://www.amazon.ca/Combinatorics-Techniques-Algorithms-Peter-Cameron/dp/0521457610
This is a fantastic book when it comes to self studying, afaik, the first 12 chapters are a good base for combinatorics and counting in general.

https://www.amazon.ca/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025
I've heard fantastic reviews about the book and how the topics relate to Math 2 3/4 9. Although I've never actually used the book myself, from the Table of Contents, it appears like it's a basic introduction to counting (a lot lighter than the other books).

Regarding whether or not you can find them online, you certainly can for all of them, the question is whether legally or not. These are all fairly famous books and you shouldn't have trouble getting any one of them. I'm certain you can study Combinatorics without statistics (at least, at a basic level), however, I'm not sure if you can study it without at least a little probability knowledge. I'd recommend going through at least the first couple of chapters of Feller's introduction to Probability Theory and it's Applications. He writes really well and it's fun to read his books.

u/welshfargo · 6 pointsr/compsci

Discrete math and this textbook.

u/silverforest · 5 pointsr/IWantToLearn

Engineer here. The Navier–Stokes equations are expressed using vector calculus.

I'd just point you to books. I highly recommend actually doing the exercises at the end of each chapter.

John Bird - Engineering Mathematics

This is a good book that doesn't assume that you've completed GCSE mathematics. It brings you up to scratch to a level of mathematics I'd expect a first year undergraduate to have. Yes, it starts with fractions. A large chunk of it is geometry and calculus, though it does touch on some statistics and matrices and complex algebra on the way there.
It ends with you being able to solve basic separable 1ˢᵗ order ODEs.

Kreyszig - Advanced Engineering Mathematics

Higher-order ODEs, Linear Algebra, Vector Calculus, PDEs, Complex Analysis, Fourier. Oh, and linear programming and optimization.

There's a recommended study guide and order in the introduction.

Knuth - Concrete Mathematics

Just thought I'd include this here, since you're a programmer. Touches on some continuous and some discrete mathematics essential for computer science.

u/Thought_Ninja · 5 pointsr/learnprogramming

If you want to dig deep into the theoretical of programming, and help build a good foundation for OOP, patterns, and algorithm design, check out Concrete Mathematics: A Foundation for Computer Science. It is honestly the best textbook I have ever come across.

From there, if you're feeling really ambitious in studying algorithms, check out The Art of Computer Programming, but I should warn you, it is very dense and can be hard to understand even for accomplished developers.

Beyond that, I suggest checking out The Odin Project. It covers a variety of languages and frameworks including Ruby On Rails, which is pretty standard in app development these days. They have a lot of great references and side material. It's basically a "go at your own pace" open source coding boot-camp.

> Like I said, this is for me. I hate just being told "do this" and having no concept of why. I want to understand why I'm doing it, the implications for doing it "this way".

This... This is the mindset that will carry you and eventually make you stand out as an exceptional programmer. Learning how to do something might land you a job, but knowing how it works makes you an invaluable asset to any employer.

As long as you are passionate about learning the material, you will pick it up over time.

>This is where I realized that I was doing this wrong, at least for me. I'd be on codeabbey and know what I wanted to do, but not how. I realized that I needed to be building larger things to be working with oop concepts. I really felt I was missing a lot of "base" information.

Awesome observation. Doing studying and doing drills both have an important role in the learning process, but there are other forms of practice to include in order to reinforce the material in a meaningful way. Ruby Rogues Podcast has a great group discussion about how to learn that I highly suggest you give a listen.

Personally, I learn best by throwing myself into a project where I am in wayyy over my head. By struggling through problems, scrupulously tearing through documentation and examples, I learn a lot more of the why than the how at the end of the day.

I learned Javascript, jQuery, and AJAX by building a templating & ecommerce framework. I started out with little to no knowledge or understanding of how JS worked, and was forced to restart a number of times as I began to see what was good and what was not, but now I feel very comfortable working with it.

Find a problem, and solve it, because Computer Science is, really, just the art of problem solving.

Best of luck, and most importantly, have fun :D

u/another_math_person · 4 pointsr/learnprogramming

You might use calculus-based tools for some analysis, like if you look at Knuth's Discrete Math text, you'll see discrete integrals, which are certainly grounded in calculus.

As well, if you look at randomized algorithms, you might need to use some nontrivial probability stuff (like Chernoff Bounds - wiki). That isn't directly calculus, but there is a significant portion of useful probability that requires the use of integrals.

All that said, Linear Algebra is probably more useful for programmers (especially if they're doing graphics or games).

u/Shmurk · 4 pointsr/programming

Add Concrete Mathematics if you're a maths retard like me.

u/Noamyoungerm · 4 pointsr/learnprogramming

You can program without math, but you'll run into limits. Even math at a high school level will totally change the way you look at and think about some parts of programming.

This is something that I can attest to personally because I began programming with a 3rd grade math level myself. I can't really say what part math had in my perspective on programming, because I was also in the process of growing out of third grade, but when math finally "clicks" somewhere between high school and college, you learn to tackle these things differently.

You can program without math, but if you know the math you'll have a better understanding of what you're doing. You'll look at some problem you're trying to solve and say "hey, that looks awfully similar to a set of equations, instead of trying to solve them inside my program I should solve them by hand and plug in the solution".

Algebra is the really important one. Calculus also doesn't hurt. Trig is a must only if you see yourself doing anything related to graphics or games in the future. I also highly reccomend Concrete Math, but to understand that text you'll have to have a solid grasp of calculus.

u/hoolaboris · 4 pointsr/math

Concrete mathematics by Donald Knuth, Ronald Graham, and Oren Patashnik

u/yellowstuff · 3 pointsr/programming

There's a whole section on this problem in Concrete Mathematics. The first edition was published in 1989, and the problem was old then.

u/exeter · 3 pointsr/compsci

While not free, Knuth, Graham, and Patashnik's Concrete Mathematics is quite cheap on Amazon.com, and, if you work through it diligently, you'll have more than enough mathematics to tackle CS through the beginning graduate level.

u/dangkhoasdc · 3 pointsr/compsci

Concrete Mathematics - one of the best textbooks to study discrete math

u/SOberhoff · 2 pointsr/math

The Nature of Computation

(I don't care for people who say this is computer science, not real math. It's math. And it's the greatest textbook ever written at that.)

Concrete Mathematics

Understanding Analysis

An Introduction to Statistical Learning

Numerical Linear Algebra

Introduction to Probability

u/Ars-Nocendi · 2 pointsr/compsci

Algorithms in a Nutshell

Use it as a practical rendition of the math-rigorous material presented in CLRS, even though it does not cover everything CLRS has to offer. Nevertheless, it should make your journey a lot easier.

As for Math reference, try getting through [Concrete Mathematics] (http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025). Legend says that if you can get through that book, you are prepared in math rigor for most of algorithmic materials. XD

u/rabuf · 2 pointsr/compsci

Why not just buy the real thing? $54 new from Amazon, maybe less elsewhere, certainly less used. Or go to a library and check out the book. Even if you're not in school, most universities allow non-students (in the US, can't speak for other countries) to obtain library cards and check out books.

u/IRLeif · 2 pointsr/INTP

My elementary school and high school teachers made me detest mathematics at an early age, but I have taken up interest for it in later years. Last week, I purchased the books Concrete Mathematics and The Art of Computer Programming, which I plan to start reading soon. But first I need to school myself on some topics with Khan Academy and MIT OpenCourseWare. I've also posted this thread last week on /r/learnprogramming hoping to get some input, and lurking at /r/math and the Mathematics StackExchange. I'm quickly gaining interest for the subject :)

u/nziring · 2 pointsr/compsci

All the suggestions above a really good! I'd like to suggest a couple more; I
think these are necessary for a Computer Science god, if not a programming one.

Concrete Mathematics by Knuth & Patashnik

Computers and Intractability by Garey & Johnson.

That's all for now...

u/pg1989 · 2 pointsr/compsci

At first blush, this book seems pretty decent. However, my personal favorite discrete math textbook/reference is Concrete Mathematics. I would consider it a step up in difficulty from a canonical text like Rosen, but it does a great job of explaining some difficult subjects, especially recurrence relations.

u/bluecoffee · 2 pointsr/math

It's used quite a bit when you're analysing algorithms, and if you want a good exposition of it in that context you can't do better than Don Knuth's Concrete Mathematics (pirate copy).

u/G-Brain · 2 pointsr/math

A classic is Concrete Mathematics by Knuth et al. It has plenty of exercises.

u/Reptilian_Overlords · 2 pointsr/sysadmin

Can't exactly say. At your age the reality is that the workforce tends to be stacked against you, especially since you currently don't have an associates degree or prior professional experience in the field you're wishing to switch to.

Dev is slightly easier to get into besides administration as Dev is simply about what you can produce, whereas administration is more experience prone and tends to pay less on top of it.

Since you're interested in Computer Science, I would suggest the following books as I went through them while I attended university:

https://www.amazon.com/Computer-Science-Overview-Glenn-Brookshear/dp/0132569035

https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003

https://www.amazon.com/Scripting-Objects-Comparative-Presentation-Object-Oriented/dp/047039725X

https://www.amazon.com/Algebra-Trigonometry-James-Stewart/dp/1305071743

https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

https://mitpress.mit.edu/sicp/full-text/book/book.html

Basically anything off this: https://wiki.installgentoo.com/images/d/d7/1420500175412.jpg

u/FallingOutOfCorpLove · 2 pointsr/cscareerquestions

> I really don't know how to feel about going back to school at 26 and being completely incompetent at math, and really not wanting to get into debt.

You can get a better picture by yourself, and for cheap. Take out a fundamentals book like this one. Read all of it and do the exercises as you go. Do it again and again and, when you feel confident about your ability to punch through and understand things, then put money down for a degree.

Materials are widely-available for free on the Internet and none of this advice is specific to a career in CS.

u/SofaAssassin · 2 pointsr/cscareerquestions

What text book is this class using?

Computer science has a lot of foundations in things like calculus, discrete math, and things like graph theory, set theory, and number theory (and other things).

However, for an undergraduate, low-level algorithms class, you will probably only need to know discrete math and calculus. Graph theory is actually not a normally required math class for CS majors (though it is useful). Multiple Calculus courses is usually a requirement for CS majors. Typically, you take calculus and discrete math as prerequisites for algorithms. If you haven't taken those yet, and your math is basically middle-school level (algebra and trigonometry), then I think you need to do some catching up, especially since a lot of algorithms are typically proven through mathematical induction (learned in discrete math). Algorithmic analyses and Big-O notations are heavily discrete mathematics and abstract algebra with some calculus, as well.

I don't know if this book will be inaccessible, but I'd recommend Concrete Mathematics, which teaches a lot of the foundational math for computer science.

In reality, though, I'd recommend you take the prerequisite math courses like discrete math and calculus. It sounds like you came from a non-technical/science major at the last school, like liberal arts, so you are essentially starting from zero, even if you don't think you are. Plus, the math only gets more difficult (and much more interesting) from here on out - later courses in CS are extremely theory- and math-heavy (e.g. Foundations of computer science, Theory of Computation).

u/stardustnr4007 · 2 pointsr/learnprogramming

This is the best book you can get. I'm pretty sure you know Knuth.

Here's an extra book on proofs

u/enknamel · 2 pointsr/computerscience

Concrete mathematics http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025 is the best resource and doesn't skip any steps. The goal of the book is to give the computer science student all the mathematical knowledge to do algorithm analysis.

u/maksa · 2 pointsr/serbia

> Raspitaj se šta je programerska matematika i kakvo predznanje podrazumeva.

http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/

Ali ovo je trebalo za juče. Za sutra ti još trebaju statistika, verovatnoća i linearna algebra, da bi umeo da hraniš machine learning frejmvorke koji će uskoro postati standardna infrastruktura kao što je to sada baza.

u/partywithmyself · 2 pointsr/learnmath

I really enjoyed Concrete Mathematics

u/blindingspeed80 · 2 pointsr/compsci

Try this book for a start, then move on to the algorithms book dethswatch mentions.

Out of curiosity, given that you seem to be generally unaware of what CS entails (assuming you're not just trolling), what is the basis of your interest in the field?

u/elev57 · 2 pointsr/math

Concrete Mathematics by Knuth et al. I've heard this is the go to combinatorics (which includes graph theory) book for any mathematician.

Introduction to Algorithms is the classic first book for algorithms.

u/blexim · 1 pointr/math

This is exactly right. It breaks down like this:

[; \sum_{i = 1}^{x} \frac{x}{i} = \frac{x}{1} + \frac{x}{2} + \ldots + \frac{x}{x} ;]
[; = x (\frac{1}{1} + \frac{1}{2} + \ldots + \frac{1}{x}) ;]
[; = x \sum_{i=1}^x \frac{1}{i} ;]

In other words, because [; x ;] is a constant inside the summand we can just pull it out to the front of the sum as a common factor. Then we just use the definition of the harmonic numbers:

[; H_x \equiv \sum_{i=1}^x \frac{1}{i} ;]

And we're done:

[; \sum_{i = 1}^{x} \frac{x}{i} = x H_x ;]

If you find yourself doing sums like this often, I HIGHLY recommend Concrete Mathematics. In fact even if you don't do sums like this often, you should probably read Concrete Mathematics anyway. Because it's great.

u/keconomou · 1 pointr/netsec

I was hoping to get specifically into crypto/privacy. I've been learning from these books:

  • http://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000

  • http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/ref=sr_1_1?s=books&ie=UTF8&qid=1348702359&sr=1-1&keywords=concrete+mathematics

    and supplementing that with the Coursera Cryptography I class

    my eventual goal is to do either information security or penetration testing, but pen testing seems like one of those jobs that sounds great and seems so cool that everyone wants it. Like the job equivalent of planning on being a rock star.

    I've got a working knowledge at least of Java, but no programs to show for it yet (which was the source of my wanting this advice here.)

    Also, I have been doing this without a college, and don't really plan on going to college at any point soon.

    I do want to look into certifications, they were something I've had an eye on, but the opinions on their use is so varied on them I just figured I'd wait to get them until after I had a working knowledge base, then just blow through them to have the piece of paper.

    I've read around that the CISSP takes 5 years to take credit for, and the associates is like 3 or so. While I do want the most laudable one (i've read the DoD/Gov'ts cert requirements and it cares a LOT about the CISSP), That would mean 3-5 years of a catch-22 of not having the job to get the CISSP exp. with, because it would be my only cert so far and I can't take credit for it, therefore I have no certs and can't get exp.

    I've messed around with backtrack and armitage, and got through as much of Hacking Exposed (6th edition) to know at least the process, but haven't applied any of it and it seemed like it might be better to learn how things work before subverting details and breaking protocols for fun and profit.

    I do plan on getting the CISSP, but I'm not gonna start that process until I already have a job in the field i can use as experience to get more jobs, otherwise I'll just be sitting on my hands.

    Does that all seem alright, or do you have any advice? Sorry for talking your ear off, if that's what i did just now.
u/ablakok · 1 pointr/math

I just ran across this in chapter 2 of Concrete Mathematics and it blew me away. Finite calculus (already done by cwcc) is one way to derive it, but here is another way that uses a couple of tricks.

First notice that

2[1(1 + 2 + ... + n) + 2(2 + 3 + ... n) + ... + n(n)]

= 2[1(1) + 2(1 + 2) + n(1 + 2 + ... + n)]

= 2[1(1 + 1)1/2 + 2(1 + 2)2/2 + ... + n(1 + n)n/2] , using the sum of an arithmetic progression

= (1^3 + 2^3 + ... + n^3) + (1^2 + 2^2 + ... + n^2).

The first line can be rewritten as

[(1 + 2 + ... + n) + 2(1 + 2 + ... + n) + ... + n(1 + 2 + ... + n)] + (1^2 + 2^2 + ... + n^2), the sum of the upper triangular elements of a symmetric matrix

= (1 + 2 + ... + n)^2 + (1^2 + 2^2 + ... + n^2).

Comparing this with the fourth line yields the result.

The trouble is that tricks are OK, but I was hoping for a deeper reason.

u/Bayequentist · 1 pointr/algorithms

Generally after CLRS you should be ready to read TAOCP. But if you still feel insufficient, Professor Knudth has another book that you can look into to enhance the math background - Concrete Mathematics: A Foundation for Computer Science.

u/schmalz2014 · 1 pointr/funny

Read this book: Concrete Mathematics by Graham, Knuth, Patashnik. It should help!

u/AceCream · 1 pointr/math

Concrete mathematics is basically an expansion of knuths mathematical preliminary chapter in TAOCP, although it would probably be a bit much for typical engineering students at non elite colleges.

http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

For generating functions, the following is probably the best book.

http://www.amazon.com/generatingfunctionology-Second-Edition-Herbert-Wilf/dp/0127519564/ref=pd_sxp_f_pt/186-0047988-3920906

I had a combinatorics class this semester that covered the aforementioned topics but I wouldn't really recommend the book: it's a typical hand wavey undergrad cookbook type of presentation.

Amazon reviews are generally on point I would say just search combinatorics and delve in.

u/sgwizdak · 1 pointr/math

First, to get a sense as to the world of math and what it encompasses, and what different sub-subjects are about, watch this: https://www.youtube.com/watch?v=OmJ-4B-mS-Y

Ok, now that's out of the way -- I'd recommend doing some grunt work, and have a basic working knowledge of algebra + calculus. My wife found this book useful to do just that after having been out of university for a while: https://www.amazon.com/No-bullshit-guide-math-physics/dp/0992001005

At this point, you can tackle most subjects brought up from first video without issue -- just find a good introductory book! One that I recommend that is more on computer science end of things is a discrete math
book.

https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

And understanding proofs is important: https://www.amazon.com/Book-Proof-Richard-Hammack/dp/0989472108


u/TonySu · 1 pointr/learnprogramming

Have you tried searching Discrete Mathematics?

Discrete Mathematics

Concrete Mathematics

These should cover everything you need to learn an way way more.

u/AndreiSipos · 1 pointr/compsci

Knuth, Patashnik, and Graham's Concrete Mathematics.

Sedgewick and Flajolet's An Introduction to the Analysis of Algorithms.

u/fellipebl · 1 pointr/compsci

As far as I know to understand how a computer works it's also important to understand the algorithms running on that.

I'd suggest you to read something light like this (http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html) and after that read things like Knuth (http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/ref=pd_sim_b_2/191-9538329-5615213) (http://www.amazon.com/Art-Computer-Programming-Volumes-Boxed/dp/0201485419).

MIT's introduction to CS is also a nice begin (http://academicearth.org/courses/introduction-to-computer-science-and-programming)

u/Unfunny_Asshole · 1 pointr/learnprogramming

I second this.

Also, my professor has recommended some of the topics here for more detailed reading.

u/integersreals · 1 pointr/learnmath

I have Rosen's book. Haven't studied out of it, but use it as a reference sometimes. I get the feeling that both Epp and Rosen are on the same level(difficulty or otherwise). Right now I am going over forgotten elementary number theory to prepare for Concrete Math by Graham/Knuth/Patashnik which looks much more involved as compared to both Epp and Rosen (just by comparing the exercises).

u/StupidRobber · 1 pointr/computerscience

I've been told that this math book covers most of the basic material in CS: https://www.amazon.ca/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

Haven't taken a look at it yet, though.

u/magoghm · 1 pointr/math

This book might have what you're looking for: Concrete Mathematics: A Foundation for Computer Science

u/mian2zi3 · 1 pointr/IWantToLearn

I have to agree with this. The usefulness of calculus in CS depends on a lot on the domain. Calculus as a pedagogical necessity is dubious. I think you'd be better off learning math more directly connected to CS: discrete math, computability theory, algorithmic analysis, term rewriting, formal systems, type theory, etc. This is how I got started more or less, and ended up getting a PhD in math.

I there are particular domains you're interested in (robotics? finance? weather simulation? big data? distributed systems? cryptography?), you might start by learning math useful for that area.

Here is a good, general book suggestion to get started:

http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

Good luck!

u/_georgesim_ · 1 pointr/programming

Well, simply thinking that Knuth could make such a mistake, strikes me as naive. After all he wrote this and this.

u/tryx · 1 pointr/AskComputerScience

There's also Knuth et al's Concrete Mathematics. The writing style is very loose and casual but it quickly moves from fairly easy intro level stuff to graduate level mathematics, so whether you find it useful as an intro book depends on your background. It is however, and excellent discrete book if you work through it slowly and methodically.

u/rocketsocks · 1 pointr/askscience

Code every day. Work on as many little interesting projects as you can. If you don't know any languages I'd suggest starting with Python, there are a million different tutorials and resources online, so getting started shouldn't be a problem.

Add to that, read some books to learn about how software development projects work, different techniques, best practices, pitfalls, etc. Here are my recommendations on books: The Pragmatic Programmer, Refactoring, Code Complete (a bit dated, but still solid), Rapid Development (slightly mis-titled, it's a good overview of different development practices), The Architecture of Open Source Applications, and Design Patterns. Code as much as you can, be ambitious, be analytical and introspective about the problems you run into, and read and understand those books too. There's a lot more you'll need to learn to become a good developer, but what I've described will give you a very strong base to build on.

Oh, and if you don't already know discrete mathematics you'll need to pick that up. I'd recommend this book.

u/Xef · 1 pointr/Portland

THANKS FOR THE ADVICE. I DROPPED OUT OF COLLEGE TO GO TO A CODING BOOTCAMP THINKING THAT WOULD GET ME A JOB, BUT IT DIDN'T WORK OUT TOO WELL. COLLEGE WAS TOO SLOW PACED FOR ME. FOR EXAMPLE, I WAS ABLE TO SKIP A FEW CLASSES AND THE FIRST CLASS THAT I HAD TO TAKE WASN'T EVEN GOING TO GET TO POINTERS UNTIL WEEK 12. SO. SLOW. I CAN CODE IN C++ AND JAVA, THOUGH I'VE ONLY BEEN WORKING IN PYTHON FOR THE PAST COUPLE OF YEARS, SO THOSE TWO LANGUAGES ARE INCREDIBLY RUSTY(BUT I HAVE EXPERIENCE WITH OTHERS: SQL, PHP, JAVASCRIPT). I'VE RECENTLY BEEN DIGGING INTO ALGORITHMS AND THE MATHEMATICS OF CS, THOUGH. I'M CURRENTLY READING THE FOLLOWING BOOKS:

  • THE ART OF COMPUTER PROGRAMMING - KNUTH
  • STRUCTURE AND INTERPRETATION OF COMPUTER PROGRAMS
  • A PRACTICAL THEORY OF PROGRAMMING - CR HEHNER
  • INTRODUCTION TO ALGORITHMS
  • MATHEMATICS FOR COMPUTER SCIENCE
  • CONCRETE MATHEMATICS](https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025) - KNUTH

    MY MATH SUCKS, SO I'VE BEEN WORKING ON TEACHING MYSELF CALCULUS AND PROBABILITY/STATS.

    HOW SHOULD I MENTION THIS STUFF ON MY RESUME? I'VE CONSIDERED COMPLETELY REMOVING THE EDUCATION PORTION FROM MY RESUME, BECAUSE ALL THAT'S THERE IS SOME PARTIAL COLLEGE THAT WASN'T WORTH ANYTHING FOR CS/PROGRAMMING AND MY WEBDEV BOOTCAMP, WHICH I GET THE IMPRESSION CAUSES MY RESUME TO GO STRAIGHT TO THE REJECTED PILE... THE WORST PART IS THAT WHAT I DO HAS VERY LITTLE TO DO WITH WEB DEVELOPMENT. I'M NOT BUILDING STATIC WEBSITES. I'M BUILDING STUFF THAT SHOULDN'T EVEN BE A WEB APP AND I ONLY DO THE BACK-END STUFF + JAVASCRIPT.

    ANYWAY, I'M GOING TO START TRYING TO FOCUS MORE ON JAVA OR C++ AND SIGN UP FOR LEETCODE AND CODERBYTE LIKE YOU SUGGEST.