Live data from Hacker News

Mathematics for Computer Science (2024)

ocw.mit.edu

71–80 of 115 posts

Re: Mathematics for Computer Science (2024)

#71
post #36

Having "Mathematics for Computer Science" as a course title rubs me the wrong way, I always believed Computer Science was a specialized subfield of Mathematics.

In principle. But in practice, the industry doesn't need nearly as many mathematicians as it does software engineers, and almost no one is getting into CS out of the love of math. CS coursework reflects that. Here are some important algorithms and data structures, here's how you write Python, good luck at big tech!

My CS program (at Purdue) was from the math department. We didn't even start designing real programs until the 4th semester (and that was in Forth or C).

At that time, if you wanted to do application programming, you took software engineering (OO Pascal and C++) or computer technology (Java) from either tech or engineering schools.

Re: Mathematics for Computer Science (2024)

#72
post #16

Earlier quoted context omitted.

I love math, completed a PhD, and am very self-disciplined. But even so, I don't think I would have been able to learn much on my own with video lectures, at least not at the start. For some reason, it seems like you need to reach a "critical mass" of knowledge first before you can do that, and I've observed that a crucial component is being in a program with others, and definitely having a very experienced mentor. W…

Like piano it’s important to tackle courses that are appropriate for your level Self taught people often skip too much of the basics so they struggle to properly tackle the fancy stuff

Even if they don't skip, they adopt weird hand positions that are hard to correct. There is just too much motor movement that needs to be done right that cannot really be explained or learned by watching a video or reading a book. It's actually similar to math in a certain way, where motor memory is replaced by subtle steps in logical reasoning.

Re: Mathematics for Computer Science (2024)

#73

Earlier quoted context omitted.

I love math, completed a PhD, and am very self-disciplined. But even so, I don't think I would have been able to learn much on my own with video lectures, at least not at the start. For some reason, it seems like you need to reach a "critical mass" of knowledge first before you can do that, and I've observed that a crucial component is being in a program with others, and definitely having a very experienced mentor. W…

> completed a PhD... But even so, Not sure why you added "but even so", getting a PhD is fundamentally about believing in the necessity of the mentor/mentee relationship for learning. It's not at all surprising that you would find: > You need someone to go through your work, correct you, and make sure you don't go off in a very wrong direction. I've learned enough to publish (well received) technical books in areas I…

> Not sure why you added "but even so"

Because the "even so" was for the "self-motivated" part, not the "getting the PhD" part.

> I've learned enough to publish (well received) technical books in areas I've never taken a single course in,

I'm talking about pure math here, not other technical fields which are more hands on and don't require as much mentorship. Programming is easier to self-learn than math for sure, because it is not very abstract compared to math. It's also guided by whether the code works or not.

Re: Mathematics for Computer Science (2024)

#74
post #6

It's unbelievable that the average human being has access to the lectures of some of the best universities in the world for free. 31 hours of in-depth mathematics by some of the best people in their field. Although I have always been struggling with keeping up with long lecture playlists. I always try to find shorter videos which explain the concept faster (although probably lacking depth). And end up ditching it hal…

Part of the value of a university is exactly that. It builds momentum and incentives. Self paces lectures can be available, but it's extremely hard to follow them if you don't have a good evaluation at the end, or if you don't have deadlines to give assignments.

But also remember, many of those lectures are at a slower peace, so one or two lectures per week. It takes time to internalize the material. People that don't follow university usually try to binge watch them, but this leads to low outcomes.

I think the best strategy is to put deadlines and risks for yourself, and follow them at a natural peace. And, do the exercices.

Re: Mathematics for Computer Science (2024)

#76

Earlier quoted context omitted.

> completed a PhD... But even so, Not sure why you added "but even so", getting a PhD is fundamentally about believing in the necessity of the mentor/mentee relationship for learning. It's not at all surprising that you would find: > You need someone to go through your work, correct you, and make sure you don't go off in a very wrong direction. I've learned enough to publish (well received) technical books in areas I…

> Not sure why you added "but even so" Because the "even so" was for the "self-motivated" part, not the "getting the PhD" part. > I've learned enough to publish (well received) technical books in areas I've never taken a single course in, I'm talking about pure math here, not other technical fields which are more hands on and don't require as much mentorship. Programming is easier to self-learn than math for sure, be…

> I'm talking about pure math here

Well the post is "Mathematics for Computer Science" which I don't think anyone considers "pure math". Most of my writing has been in the area of applied mathematics, the closest I've gotten to pure math would be some stuff on measure theory.

So yea, it might be a challenge to self teach something like cluster algebras, but at that level much of the work in the field is academic communication anyway.

Re: Mathematics for Computer Science (2024)

#77
post #61

Earlier quoted context omitted.

I have been a software engineer with and without math knowledge and it’s a different level of contribution and effectiveness.

Which areas of math were the most applicable in practice?

Linear algebra, numerical analysis, and combinatorics are my most commonly used techniques.

But It’s less about the particular field and more about the mindset for thinking about problems. That’s kind of like asking what your most used library functions are.

Re: Mathematics for Computer Science (2024)

#78

Earlier quoted context omitted.

What will that accomplish?

You can write proofs along with the course, and since they are machine checked you can have confidence that they are correct. If you don't know, writing a proof in isolation can be difficult, since you may be writing on that isn't actually sound.

Learning math is more about the big ideas. Behind each proof is an insight. Formalizing in a computer is like spell checking a document. It helps you catch small mistakes but doesn’t change the content,

I just think this is a distraction unless your goal is to learn lean and not math.

Re: Mathematics for Computer Science (2024)

#79
post #63

Earlier quoted context omitted.

I am afraid you have not really understood the mathematical theory and its mapping to programming. Relational Algebra doesn't just mean RDBMS/SQL but is a general algebra where algebraic Operations are defined over mathematical Relations i.e. over a Cartesian Product of one or more Sets. As a first approximation; a) Type = Set b) Function = subset of Relation (i.e. set of Tuples) obtained from Cartesian Product of {i…

Well, I'm familiar with model theory and Church's simple theory of types, but I don't think things like that are useful in practice. Perhaps the concept of currying would be an exception, if I were a Haskell programmer.

I am not sure that you have really understood the topics you have named. All high-level programming languages give you a set of fundamental types and the ability to construct user-defined types. Currying is not an exception but falls under the same model if one considers it as a Relation between "sets of functions". Also by Curry-Howard correspondence you have "formula/proposition = type" and "proof = function". So you have a direct mapping between Sets/Relations/Logic in Mathematics and Types/Logic in a Program.

A Program then becomes a trajectory enforced using predicate logic through a state space obtained from the cartesian product of all the types in the program.

You are using all of the above whether you know it or not when programming in a high-level language. The real value comes when you do it with the knowledge of the mathematics in hand because then it allows you to prove your Program as "Correct" (w.r.t. a specification).

Re: Mathematics for Computer Science (2024)

#80
post #63

Earlier quoted context omitted.

Well, I'm familiar with model theory and Church's simple theory of types, but I don't think things like that are useful in practice. Perhaps the concept of currying would be an exception, if I were a Haskell programmer.

I am not sure that you have really understood the topics you have named. All high-level programming languages give you a set of fundamental types and the ability to construct user-defined types. Currying is not an exception but falls under the same model if one considers it as a Relation between "sets of functions". Also by Curry-Howard correspondence you have "formula/proposition = type" and "proof = function". So y…

[dead]
Post reply on HN