Live data from Hacker News

Mathematics for Computer Science: Readings

ocw.mit.edu

41–50 of 74 posts

Re: Mathematics for Computer Science: Readings

#42
post #33

Question: 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?

There are a few reasons. First, the purpose of a class like this is to prepare students for further coursework in algorithms and automata/complexity. You need logic, graphs and combinatorics for those a lot more than you need linear algebra. Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes. Third, there's a li…

i agree with you that this is in principle math for CS proper (rather than machine learning or numerical algos or something) but

>Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes.

x math department doesn't have classes on graph theory, combinatorics, or prob & stats?

Re: Mathematics for Computer Science: Readings

#44
post #33

Earlier quoted context omitted.

There are a few reasons. First, the purpose of a class like this is to prepare students for further coursework in algorithms and automata/complexity. You need logic, graphs and combinatorics for those a lot more than you need linear algebra. Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes. Third, there's a li…

i agree with you that this is in principle math for CS proper (rather than machine learning or numerical algos or something) but >Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes. x math department doesn't have classes on graph theory, combinatorics, or prob & stats?

At least in my school those were optional; only calc 1 & 2 and linear algebra were explicitly required, with combanatorics being commonly recommended but not required to grafuate

Re: Mathematics for Computer Science: Readings

#45
post #33

Earlier quoted context omitted.

There are a few reasons. First, the purpose of a class like this is to prepare students for further coursework in algorithms and automata/complexity. You need logic, graphs and combinatorics for those a lot more than you need linear algebra. Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes. Third, there's a li…

i agree with you that this is in principle math for CS proper (rather than machine learning or numerical algos or something) but >Second, the math department teaches a class in linear algebra. This is a collection of topics that you wouldn't ordinarily find in undergraduate math classes. x math department doesn't have classes on graph theory, combinatorics, or prob & stats?

You would not typically find dedicated undergraduate courses for graph theory, probability theory or combinatorics, no. At the very least you wouldn't expect to see those until you hit 300 level, but most likely not until graduate courses.

Discrete mathematics is a grab bag of topics, and it's more fair to say that a discrete math course pulls in selected topics from other areas than to say it provides a focused coverage of any of them. At the depth each topic is taught, you couldn't pull it out into its own semester's worth of lectures. On the other hand, it would be very difficult to compact linear algebra into a discrete math course. Learning linear algebra already requires you to introduce a bunch of new concepts, like fields and vector spaces, linear equations, linear transformations, matrix representation and matrix operations, determinants, inner products...

Equally importantly, linear algebra doesn't really "fit" with the topics of discrete mathematics, pedagogically speaking. It fits well with a treatment of multivariable calculus, but that's only a small part of what's taught in discrete math courses. If you wanted to teach linear algebra in a course covering a bunch of topics, you'd probably want to do a "topics in abstract algebra" course that works through groups, rings, modules, linear algebra and multilinear algebra. But then you're going well beyond what a non-math major should encounter in an undergraduate setting.

Really, linear algebra stands on its own very well. In my opinion it should receive focused coverage and not be mixed with anything else. While graph theory and combinatorics can easily receive the same coverage, their treatment is usually pushed back to advanced undergraduate or graduate level courses because engineers don't usually work with them beyond what's covered in discrete math (which is exactly why we have discrete math as a standalone course). In fact, MIT actually lists linear algebra and multivariable calculus as prerequisites for the focused courses on combinatorics. The same applies for probability theory: you can't really learn probability theory (beyond discrete) without first learning analysis.

Re: Mathematics for Computer Science: Readings

#47
post #18

How has this book helped you as a programmer? I am finding it difficult going through it.

I've been collecting some books on proof to build a foundation for better learning formal verification of software. The capabilities of modern provers, esp if combined with automated methods, can handle a lot more practical software than in the past. Even those like SPARK Ada with a lot of automation has properties that require manual proof. Certain things might also be easier to prove manually with a more powerful logic.

My hope is that I find enough feedback on good/bad of cheap or free resources on this topic that I can determine some default recommendations for people curious. The problems can be addressed with supplementary material. Eventually, the defaults would be good enough that the process would happen faster. A larger number of people centering on the same resources might become a community for helping new people. That might increase the inflow. Simultaneously, some percentage of these people are working on tools, esp automated, to make the proof process more productive. Over time, we might have a much larger segment of people working on formal verification than we do now. Maybe even large enough to sustain more tool development by contributions or licensing.

So, that's why I'm looking at books like this with what I think they might help us achieve. I'm way too out of my depth to know if it will work. I just know accessibility, better learning materials, and network effects always help.

Example tools below for sequential programs, concurrency, and hardware:

https://en.wikipedia.org/wiki/SPARK_(programming_language)

https://learntla.com/introduction/

http://prod.sandia.gov/techlib/access-control.cgi/2014/14205...

Re: Mathematics for Computer Science: Readings

#48

Question: 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?

It's the textbook for a course calls "Mathematics for Computer Science" at MIT. Linear algebra is a separate course (18.06 or 18.700).

Re: Mathematics for Computer Science: Readings

#49
post #7
post #6

Earlier quoted context omitted.

Some 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.

This analogy does not capture the problem that the human brain constantly forgets...

Human brain is extremely good at selecting the important information that it shouldn't forget.

Re: Mathematics for Computer Science: Readings

#50
post #20

Earlier quoted context omitted.

Because 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... 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.

This is actually the only math class that's required by the 6-3 degree program, MIT's CS degree. Many people do take linear algebra, though. Source: https://www.eecs.mit.edu/curriculum2016 and I'm a 6-3

A year or two ago the curricula still mandated one of 18.03 (diff equations) or 18.06 (linalg).
Post reply on HN