14 ms·
Mathematics for Computer Science: Readings
- mikevm 9y agoLatest edition of the book: https://courses.csail.mit.edu/6.042/spring18/mcs.pdf https://courses.csail.mit.edu/6.042/spring18/mcs.pdf
- abhishekjha 9y agoI wonder how one would read 1000+ pages of a technical book like this.
- deleted 9y ago[deleted]
- metric10 9y agoCheck out “How to Read a Book” by Mortimer J. Adler. It seems like a pithy title, but he’s quite serious and has interesting things to say on the subject.
- cultvoid 9y agoSome famous runner who's name I can't remember and probably didn't exist anyway once said "I can't run 200 miles. But I can run 1 mile - 200 times". Start from page 1 and iterate from there.
- SebNag_ 9y agoThis analogy does not capture the problem that the human brain constantly forgets...
- jjoonathan 9y agoIf you assume that "run 200 miles" doesn't refer to a single run but rather to the capability of running 200 miles, the analogy works much better. If you stop training the ability to run 200 miles vanishes even more quickly than an equivalent feat of learning.
- marpstar 9y agoSure it does. If you really wanted to read and understand this book and dedicated time each day to understanding 3 pages worth of content, you could read the book in a year. Remembering 3 pages of content per day (especially in math where concepts build on each other) is really not hard.
- dsacco 9y ago> Remembering 3 pages of content per day (especially in math where concepts build on each other) is really not hard. I disagree. Or rather, I think that's unsustainable. Any given three consecutive pages from Spivak's Calculus are probably doable on a daily basis. But is would be legitimately hard for most people to go through three pages of Rudin's Principles of Mathematical Analysis each day and consistently retain that information. Axler's Linear Algebra Done Right is very readable, but Halmos' Finite-Dimensional Vector Spaces will start getting just as dense as Rudin. These are difficult textbooks even when students are well-prepared for them with prerequisite courses. Terence Tao wrote two books to cover (with better exposition) what Rudin did in one. I think it would be pretty hard to read consistently three pages of Tao's Analysis I each day, before he even gets to limits. I think you're underestimating the intellectual effort here. In my opinion, even if you're reading a math book targeted to your level, committing to reading and understanding three days of material each day would become exhausting. A typical semester is 15-16 weeks, with lectures 1 - 3 times a week, and most undergraduate courses do not actually work through the entirety of a 300 page textbook. Even at that slower pace it's not typical for most people to ace the course. If you read three pages a day and had a solid understanding of it, you'd be absolutely breezing through math courses. In my experience students need to really step away from the material and let it percolate for a bit every so often in order to solidify their understanding. I really don't think you can partition the material into equal, bite-sized amounts each day. The learning progression doesn't tend to be that consistent or predictable.
- ianai 9y agoOne awesome thing about math is it is self organizing. Many topics are composed of many smaller topics. As an anecdote, we used to say people “actually learned” (high school) algebra in calculus 1 and trigonometry in calc 2/3. In those cases it was more that to solve those problems required using algebra and trig coherently. So to learn those 1000 pages is to, to some extent, learn a core set of techniques across many different contexts. It compresses the required mental load. For the exceptions to that rule, well, you can skim over them and know enough about them to recognize their applications later.
- deleted 9y ago[deleted]
- gnulinux 9y agoHuman brain is extremely good at selecting the important information that it shouldn't forget.
- flatline 9y agoI’ve read technical books like this for fun. Math is a little tricky because a lot of time you need to really spend time working out the algebra to get the concept, but sometimes you can still just sit down and read. And if it’s not a progression over a single subject you can just jump to a section you find interesting. Even if you don’t grok it 100% you’ll still have learned something by making the effort.
- joker3 9y agoPencil in hand. When you see an argument whose steps you don't follow, work it out. When you get to the problems, do at least some of them. Follow the assignments in the MIT course, and check your work against the solutions.
- douglaswlance 9y agoOne sentence at a time...
- deleted 9y ago[deleted]
- lordnacho 9y agoNobody really does, IMO. You read it so you know what kinds of things are topics in the field, what the most important results are, and mostly to get a feeling for what people in the field focus on. Then when someone mentions a term from the course, you know roughly what to expect and where to find details. Also, you know how big a bite you're taking. "Quantum Mechanics" might be several books. "Vector Calculus" maybe a few chapters. "De Morgan's laws" maybe a few pages. It's just like any other math you do. Does anyone memorize all the trig relations, Laplace transforms, and geometric relations? Of course not. But you've seen at least one large example of every topic and you can reconstruct it from there.
- ginnungagap 9y agoFrom the introduction to Shelah's Classification Theory and the number of nonisomorphic models (an extremely technical book with 700+ pages): So we shall now explain how to read the book. The right way is to put it on your desk in the day, below your pillow in the night, devoting yourself to the reading, and solving the exercises till you know it by heart.
- mbrundle 9y agoRelated course (w video lectures): https://news.ycombinator.com/item?id=9311752 https://news.ycombinator.com/item?id=9311752
- mettamage 9y agoQuestion: why isn't linear algebra in here? I know this is a type of "but this isn't in my favorite list" question but since a lot of universities include it in their CS curriculum, I wonder why it isn't in here. Or did I oversee it? Is in there?
- barronli 9y agoI guess the book is more like “additional math for CS students beyond what a common CS curriculum has”.
- steaknsteak 9y agoMost of this stuff is part of common CS curriculums though. The real answer is just that you have to take linear algebra as a separate class. It's not supposed to be all the math for CS
- throwaway080383 9y agoDoesn't look like it. One might argue that linear algebra is slightly more niche than stuff like graph theoretic algorithms. There are applications to broadly useful things like gradient descent, but that seems to fall under numerical linear algebra which probably deserves its own course in the Applied Math department. N.b. just playing devil's advocate, I don't have a strong opinion either way.
- 323454 9y agoThen again, algebraic graph theory is key to understanding certain graph algorithms e.g. pagerank.
- mjlee 9y agoBecause 6.042J is "an introduction to discrete mathematics, probability, and mathematical thinking for computer scientists". For linear algebra, see https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/ https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra... I'll admit I don't know how the MIT CS curriculum is structured, but I suppose it is in there, just not in this particular course.
- iwansyahp 9y agoIs this book suitable for math self-learning?
- hackermailman 9y agoThere's a set of 2015 lectures to go with it 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... There's also the CMU intro to proofs/reasoning lecture notes here https://infinitedescent.xyz/ https://infinitedescent.xyz/ though you would learn much of this material from the introduction of Apostol's Calculus. The advantage of the CMU lecture notes is the author based it on his findings in evidence based learning IIRC.
- dsacco 9y agoI took a look at the first four or so chapters and I'm not really a fan of the organization. But I think you could self-study the material and be fine. The introduction of the book explains that it's very focused on proofs, and it feels to me like it's more of an applied mathematics book than it is discrete mathematics (i.e. computer science) book. That's a subtle distinction, but I'd summarize it by saying this book feels as if it was written more for math majors than computer science majors. That doesn't mean you shouldn't read it; rigor and formalization are important! It just means that (as I interpret it), the authors are focusing more heavily on mathematical formalization and foundations than most "discrete mathematics" treatments. For the context of my opinion: my favorite math textbook for computer science is Chapter 1, Section 1.2 of The Art of Computer Programming ("Mathematical Preliminaries"). That's pretty dense though, so I usually recommend Concrete Mathematics, which was also (co)authored by Knuth. The benefit of Concrete Mathematics is that it spreads the information out with more examples and better exposition. It also includes an expanded section on probability. But in my opinion, the failing (if you could call it that) of both is that there isn't a dedicated section on set theory. I really think that should be covered alongside the introduction to various types of proof. Which brings me back to this textbook...I personally think it spends too much time building logic and proof machinery in the first chapter. Sets and functions have sections that are only pages long, but there is a large focus on logic. I understand it's a mathematics for computer science treatment and not a pure mathematics treatment, but that's actually pretty dry in my opinion - I think a treatment that focuses more on sets is more intuitive. One of the things I like about Knuth is that he covers these topics in a slightly irreverent and humorous way. He also engages the reader by jumping more directly into arithmetic operations, functions, basic number theory, the binomial theorem and combinatorics, etc. Some of this is admittedly my own bias. I've never enjoyed staring at things like e.g. truth tables. It's important to know, but this actually seems excessively formal for a discrete mathematics course. Reading through the algebra of propositions isn't exactly riveting. I think that, for self-study at least, exposition and organization of topics is just as important (probably more so) than complete coverage of topics. All of the material you'd want to know is there, it's just that the treatment might be a bit suboptimal for self-study. It probably depends on what you find interesting and how quickly you'd like to do interesting things with what you're learning. It would probably also be beneficial if some people who have actually learned from this textbook for their first encounter with the material could chime in, because that might be more relevant to your question.
- sidcool 9y agoHow has this book helped you as a programmer? I am finding it difficult going through it.
- alehul 9y agoI'm currently taking a near-identical course as a CS freshman, and while I lack the programming expertise to adequately explain the importance in that field, it's definitely valuable to learn. I've never enjoyed a maths class more, really. It offers so many 'hacks' to working with numbers, which I could imagine would make code more efficient and avoid unnecessary computations when dealing with very large numbers. Separately, my increased mental efficiency with problems involving numbers is really surprising. There have been interview questions I've read about in the past where I've thought "someone must be a genius to be able to answer that through mental math," and it all makes so much more sense now! It's taught me about dozens of visualizations that can break down these problems in much more manageable ways. As an example of a mental maths problem on my midterm: How many numbers between 1 and 99,999 have digits that add up to 10? (23,500 would work whereas 23,510 would not). While initially I would have no clue how to answer this, learning about the balls-in-bins method solves it in an incredibly simple manner.
- deleted 9y ago[deleted]
- smrk007 9y agoI am also taking a course similar to this at my own university, actually using the same text-book. I guess the knowledge and skills gained from this course only apply to a small subset of problems, specifically those requiring some heavier theoretical / algorithmic thinking before implementation. While this only goes over a few algorithms in the chapters I have studied, it gives a very strong background which I'm sure would help in any other studies of algorithms you would pursue. Just by being introduced to the basic notation and language of some of the mathematics, I've found that I can read on different algorithms (in context of an academic paper / report) that I would like to implement with much more ease.
- 9y ago
- artyom1989 9y agocool
- codekilla 9y agoAvi Wigderson's forthcoming book is pretty great if this sort of thing interests you: https://www.math.ias.edu/files/mathandcomp.pdf#page=1 https://www.math.ias.edu/files/mathandcomp.pdf#page=1
- topologie 9y agoIt looks even better than the MIT course itself. I hadn't heard of Wigderson before, but now I'm definitely going to keep an eye on his work. Thank you for sharing this.
- linkmotif 9y agoThis is so good. The lectures broken up into shorter videos are great. Thank you for posting.
- WhitneyLand 9y agoDo they every provide lecture videos or audio, assuming I didn’t miss it browsing the pages?
- juskrey 9y agoWhy so obsessed with proofs? How often a programmer needs to prove anything except PnL of a project?
- episteme 9y agoBecause it's not Mathematics for Programmers?