19 ms·
Mathematics for Computer Science [pdf]
- GoodbyeEarl 10y agoFrom a person with only pre-high school math knowledge, what books/pdfs/moocs would you guys recommend in order to prepare for a future computer science degree? I've read that I would need linear algebra, discrete mathematics and calculus. Is that right? Is there any resource that targets compsci subjects?
- sjroot 10y agoI printed off the 2015 version (yes, the whole thing) and it has served as a very valuable reference. I wish there was a way to purchase a nice printed edition to support the authors. If they read this - thanks! Also, is a 2017 version of the course coming to OCW? I imagine that's why they'd release the updated PDF.
- moinnadeem 10y agoFreshman at MIT here taking this class -- the lectures are actually taught in a flipped classroom format, so I wouldn't imagine they would release the course considering there are no lectures to follow. I could see them releasing problem sets, however.
- sjroot 10y agoInteresting! Who is your instructor? Tell them to release a hard copy!
- vayarajesh 10y agoIs this a good start for Math required for Machine Learning ?
- jonnybgood 10y agoYes, discrete math is a good start for anything CS, but you'll definitely need more than what's presented here.
- mwambua 10y agoNot really. You're better off looking at introductory calculus and statistics. This book places more emphasis on discrete math. One good way to go about it is to audit an online course [like Andrew Ng's] and figure out what gaps you need to fill in your knowledge to understand the material.
- jpau 10y agoFrom what starting position are you asking from; what is your current math background?
- vayarajesh 10y agoI am familiar with Linear algebra and at most average understanding of graph theory. I know there is lot more math to cover for ML but I find it overwhelming to start
- vecter 10y agoAll you need for introductory machine learning is multivariable calculus (for some simple optimization stuff), linear algebra, and probability. If you don't know probability, here's a good course: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-fall-2010/ https://ocw.mit.edu/courses/electrical-engineering-and-compu.... Once you feel comfortable with those, you'll be more than ready to tackle 6.867: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/ https://ocw.mit.edu/courses/electrical-engineering-and-compu....
- jayajay 10y agoIn its current state, even cutting-edge machine learning is pretty accessible if you have a good understanding of linear algebra and calculus. If you want to do have a deeper understanding of machine learning then vector calculus, tensors, graph theory, etc. can only help you.
- __john 10y agoNot really. The paper deals with "conventional" CS math. Here are some good resources for ML/DL math. https://hn.algolia.com/?query=machine%20learning%20math&sort=byPopularity&prefix&page=0&dateRange=all&type=story https://hn.algolia.com/?query=machine%20learning%20math&sort...
- _qhtn 10y agoNeeds more: Linear Algebra: http://joshua.smcvt.edu/linearalgebra/ http://joshua.smcvt.edu/linearalgebra/ Calculus: https://cnx.org/contents/i4nRcikn@2.48:H2TLb2-S@2/Introduction https://cnx.org/contents/i4nRcikn@2.48:H2TLb2-S@2/Introducti... https://cnx.org/contents/HTmjSAcf@2.40:rrzms6rP@2/Introduction https://cnx.org/contents/HTmjSAcf@2.40:rrzms6rP@2/Introducti... https://cnx.org/contents/oxzXkyFi@2.49:72YaCFgv@2/Introduction https://cnx.org/contents/oxzXkyFi@2.49:72YaCFgv@2/Introducti...
- austenallred 10y agoI can't thank you enough for this comment
- trentmb 10y agoI would be remiss if I didn't also link Paul's Online Math Notes. http://tutorial.math.lamar.edu/ http://tutorial.math.lamar.edu/ Also: /r/learnmath We're friendly!
- llzes 10y agoYou're a godsend, thank you from another person. I've been slowly self working through textbooks my friends give me over the years after they finish from their classes but haven't really known which direction to go in being nontraditional.
- trentmb 10y agoDon't thank me- thank Jim Hefferon, Paul, and the OpenStax project for having the decency to make these materials available.
- austenallred 10y agoIs there a recommended order to these? I skipped two years of math in High School and ended up BSing my way through Calculus without learning any of it, so I'm trying to figure out what I may need to fill the gaps
- gumby 10y agoNo, this is for a general introduction to the mathematics of computer science. This looks like a basic (and good!) text any MIT freshman should be able to master. Perhaps it's for what 6.001 has morphed into? If you understand this stuff, you really need linear algebra for today's "deep learning", which perhaps is 18.03 (I can no longer remember).
- vecter 10y agoThis class is 6.042 and is not required for CS majors. 6.001 morphed into 6.01, which is something to do with python. 18.06 is linear algebra. 18.03 is differential equations, which you don't really need for machine learning.
- santaclaus 10y ago> 18.06 is linear algebra Is Gilbert Strang still teaching linear algebra at MIT? His intro materials to all things applied math are incredibly accessible.
- vecter 10y agoNo idea. He's definitely getting up there in years, so if he is still teaching now, I don't know how much longer it will be for. Strang doesn't teach 18.06 every semester anyway.
- p4lindromica 10y ago6.042 fulfills a math requirement for 6-3 (CS) students. https://www.eecs.mit.edu/curriculum2016 https://www.eecs.mit.edu/curriculum2016
- vecter 10y agoI meant Course 6, which can be 6-1 (EE) or 6-2 (EECS). Given that there are many 6-2 majors out there who say they've majored in computer science, it might come as a surprise to others who don't understand the MIT curriculum that a "computer science" major at MIT does not need to take this class.
- beisner 10y agoThis book is a really accessible primer on the basics. Much more readable than a lot of other textbooks, which kind of go all-out in terms of rigor rather than present things intuitively. This was one of the textbooks we used in Princeton's introductory CS theory class (COS 340: Reasoning About Computation). The probability section is especially good.
- whitenoice 10y agoOCW Video lectures for the course - https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/proofs/tp1-1/ https://ocw.mit.edu/courses/electrical-engineering-and-compu...
- dmlittle 10y agoIt'd be nice if they are able to record Leighton's 6.042 lectures. Meyer teaches the class 3 out of every 4 semesters in an inverted classroom setting (you read and learn topics on your own before lecture and lecture time is spent in smaller groups with TAs helping you solve problems) while Leighton teaches the class lecture style (which is better for OCW imo).
- jmstfv 10y agoYou might want to check the older version of this course https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/ https://ocw.mit.edu/courses/electrical-engineering-and-compu...
- dmlittle 10y agoI was lucky enough to sit in his lectures :) If anyone is considering this OCW course, I highly encourage Leighton's lectures.
- yomly 10y agoFor no particular reason opted to learn from one of the older lecture series. Can confirm that Leighton's lectures are a delight
- deleted 10y ago[deleted]
- madhusharma 10y agothanks for great information and i will definitely look into these lectures.
- deleted 10y ago[deleted]
- bad_hairpiece 10y agoWell, shiiiiit. I came to Hacker News to avoid doing my discrete math homework. While this is number 1, guess I'll plug Fleck's textbook from UofI http://mfleck.cs.illinois.edu/building-blocks/ http://mfleck.cs.illinois.edu/building-blocks/
- impendia 10y agoThis fall I will be teaching the required "Discrete Math for CS course" to about fifty students at the University of South Carolina. Previously I used Epp's book [1] which in my opinion is an outstanding book but regrettably is $280.44. Many of our students are working minimum wage jobs to make ends meet, and I don't want to make them pay so much if I can at all help it. Lucky I saw this!! I do have one reservation though -- many of our students come in with a weaker mathematical background than MIT students; for example we spent several weeks doing proofs by induction (and no other kinds of proofs) and this text doesn't seem to feature a couple of weeks worth of examples. I think I'll probably go with this and supplement as needed. Really it looks quite wonderful. (And hell, the book seems to be open source which would mean that I could potentially write supplmentary material directly into the book and make my version available publicly as well.) This thread seems like a particularly good place to solicit advice: experiences with this book or others, what you wished you'd learned in your own undergraduate course on this subject, etc. I've taught this course once before -- I feel I did quite well but I still have room to improve. Thanks! [1] https://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/ref=sr_1_1?ie=UTF8&qid=1488775608&sr=8-1&keywords=epp+discrete+mathematics https://www.amazon.com/Discrete-Mathematics-Applications-Sus...
- llzes 10y agoYou're the type of professor everyone wishes they had. That's so phenomenal you're looking out for your students like this. That and if you end up writing supplementary material for the book.
- Sean1708 10y agoIs it an American thing to force your students to buy textbooks? In Britain (at least at the universities that I know about) there tends to be 2 or 3 recommended texts, of which the library will have several copies, and they're meant for reference when you get stuck rather than learning the entire course.
- reducesuffering 10y ago
- 40acres 10y agoLooks like an excellent resource. What would the prerequisite math skills be before diving into this work?
- kevindeasis 10y agoIt depends on the person, but what is the median time in hours, for a person to finish this book?
- Curious42 10y agoI don't think you should be starting with a goal to finish the book cover to cover. It's an unrealistic, and ineffective goal. Although, if you think that works for you, go ahead.
- voycey 10y agoI failed so hard at this in my CS degree :(
- canadiancreed 10y agoYou're not the only one. Only course that I took that I crashed and burned on.
- cs02rm0 10y agoYeah. I had what was termed a "tolerated fail" on what I think was the equivalent on my (UK) course - "Foundations of Computer Science". Tolerated as in because I scored high in all other modules I didn't have to resit, fortunately, as I'm not convinced I'd have passed. I'm not convinced either that it's negatively affected my career. I do occasionally wonder if it was just not taught in a way I could get, whether I was just bored to tears because the theory was so separate from the application, or if it's actually just not that important a prerequisite.
- voycey 10y agoYeah I had the same, I have been developing now at various levels for 15 years since university and I can honestly say I have never once come across anything that has needed it! Then again I would say seeing as I am primarily web based it's not likely I would vs someone coding realtime systems
- trueSlav 10y agoThis is so stupid, the "primer on the basics" should be "Algorithmization for Computer Science", not a 900+ page math textbook (that doesn't even explore graph theory, calculus and differential calculus).
- Smaug123 10y agoSo if I understand correctly, this book is both too long and doesn't cover enough? (I'm confused about the book to which you're referring. If it's "Mathematics for Computer Science", then it does cover graph theory from p445.)
- sn9 10y agoCalculus is a prereq for taking the course in which this book is used. I'm pretty sure Differential Equations is also a required course for CS majors at MIT, too.
- qntty 10y agoRead the TOC again, there's plenty of graph theory. Calculus isn't important for CS.
- mindcrime 10y agoCalculus isn't important for CS. It can be, depending on what you're doing. Look at back-propagation in neural networks for example, where the whole thing is based on the chain rule from Calculus.
- qntty 10y agoYeah absolutely. Having a broad background in math can help in surprising places but there's much more math that has applications to CS than can fit in one class.
- dang 10y agoThis breaks the HN guidelines against calling names in comments: https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html. Please don't do that here. We detached this subthread from https://news.ycombinator.com/item?id=13800495 https://news.ycombinator.com/item?id=13800495 and marked it off-topic.
- ode 10y agoOn this subject, has anyone taken this (https://www.coursera.org/learn/discrete-mathematics https://www.coursera.org/learn/discrete-mathematics) MOOC on the same subject? Thoughts?
- nvarsj 10y agoAny opinions on how this compares to the Rosen and Epp books? I'm looking for something to prep for a graduate level CS algo course.
- lucb1e 10y agoThis document is over 900 pages. How long are you supposed to take to read and understand all of this? And is this really all necessary? On the surface this looks like an insurmountable task with questionable benefits. Don't get me wrong, but in the past 6 years of casual and professional programming, I've needed only a basic understanding of math, the most difficult thing being collision detection in games, and that includes doing RSA cryptography by hand. This paper starts off with proofs, something I've never had in school and which always seemed to me as if they only belong in scientific math papers, not practical life of someone doing computer science. I don't mean to criticize the document or math in general, I would genuinely like to understand what 900 pages of this is going to bring me, especially when it starts with something I've never needed or seen outside of theoretical math discussions.
- oerpli 10y agoI just skimmed the whole book and the content were about 70% of what we did in Discrete Mathematics in one term. A term has ~15 weeks with 4 hours per week. The exercises are not included in this - so I think 100-150 hours should suffice.
- Synaesthesia 10y agoIt's hardly insurmountable, but to answer your question, maybe people will read it because you're just curious, want to learn. Also you don't have to learn all, or any of it -maybe you could just use it as a reference book.
- bboreham 10y agoI have found the mechanics of mathematical proof invaluable when programming, because they show you how to be very clear about what you do know and what you don't know. Basically "Is this thing just a random example, or something that is true in all cases?" When I work on complex algorithms or concurrent systems I really feel the benefit of proof, because there's no way I could just test if the code is correct. In the book, explaining what a proof is, how proofs are typically constructed and how to write a good one takes them ten pages, all written in very down-to-earth language. Then there are eight pages of problems you could do if you wanted to test your understanding. I bet if you read those ten pages you'd feel there was nothing special there, just obvious ways to reason about things.
- ralmidani 10y agoI'm still brushing up on Calc, but may have to learn discrete math on my own, since Harvard Extension School offers discrete and algorithms during the same semester, and I don't want to wait 2 years before I can take algorithms. To that end, I bought a copy of the 1995 "C Edition" of Foundations of Computer Science by Aho and Ullman. It combines data structures and discrete math into one massive text. Does anyone have an assessment of that book? Is the combined data structures and discrete math a good approach? Does the book hold up well against more "modern" ones?
- deleted 10y ago[deleted]
- treehau5 10y agoDonald Knuth's "Concrete mathematics" is also a really good one, and can be found used on Amazon for roughly 30 dollars.
- MrInvisible 10y agoWas about to recommend this. Best discrete math book out there from my standpoint as an applied mathematician.
- hyporthogon 10y agoThis is awesome, thanks. Obligatory 'zoomout' recommendation: https://www.amazon.com/Mathematics-Content-Methods-Meaning-Volumes/dp/0486409163 https://www.amazon.com/Mathematics-Content-Methods-Meaning-V..., which I learned about from HN (http://hackernewsbooks.com/book/mathematics-its-content-methods-and-meaning-3-volumes-in-one/b60d8e964bedb248906ad064e952c997 http://hackernewsbooks.com/book/mathematics-its-content-meth...). Wish I had read/pondered this before grad math classes.
- aashu_dwivedi 10y agoI had used the second edition to refresh my probability before taking a class in AI and found the material succinct and very useful. It's only today that I found out that one of the authors is the CEO of the company I work for. I work for Akamai Technologies and the author I am talking about is Frank Thomson Leighton.
- kylemccann 10y agoDoes anyone know where I could find out more about Semantics, Operational Semantics, Denotation semantics and Type Systems?
- mattfrommars 10y agoFrom someone with an engineering background (mechanical engineering undergraduate 2014), do I need to study this if I want to transition into computer science/software developer/engineer post?