Live data from Hacker News

Mathematics for Computer Science (2024)

ocw.mit.edu

81–90 of 115 posts

Re: Mathematics for Computer Science (2024)

#81
post #16

Earlier quoted context omitted.

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.

Maybe what’s common is that self taught people do not even know what to look for to improve on.

They only see the superficial or easy-to-spot goals and lack the eye for detail to build foundations and technique.

Re: Mathematics for Computer Science (2024)

#82
post #47
post #32

Earlier quoted context omitted.

LLMs dont have a deep enough understanding of theory of mind to see how someone is stuck and help them get unstuck. You need to guide your own study and you might not know what you need to learn to get unstuck

Says someone who's never used LLMs to learn

This is a somewhat childish comment. You didnt contribute anything to the discussion

Re: Mathematics for Computer Science (2024)

#83
post #32

Earlier quoted context omitted.

LLMs dont have a deep enough understanding of theory of mind to see how someone is stuck and help them get unstuck. You need to guide your own study and you might not know what you need to learn to get unstuck

> LLMs dont have a deep enough understanding of theory of mind to see how someone is stuck and help them get unstuck. Many teachers cannot do that either. I find ChatGPT and the Gemini model quite good at problems whose solutions are already known. We just need the Wille—the will—to ask it.

> Many teachers cannot do that either.

Of course there are bad teachers out there. The question wasnt "are there human yeachers as bad as an LLM" it was whether an LLM is as good as a good human teacher

> We just need the Wille—the will—to ask it.

Thats the thing. Its is a very good search resource. But thats not what a teacher is. A good teacher will help you get to the right questions, not just get you the right answers. And the student often wont know the right questions until they already know quite a bit. You need a sufficiently advanced, if incomplete, mental model of the sybject to know what you dont know. An LLM cant really model what your thinking, what your stuck on, and what questions you should be asking

Re: Mathematics for Computer Science (2024)

#84
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…

> You are using all of the above whether you know it or not when programming in a high-level language.

Exactly. The average programmer doesn't have to know the math behind things like types to use them.

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

I don't think the average software engineer does that or would benefit from doing it. I certainly don't.

Re: Mathematics for Computer Science (2024)

#85
post #61

Earlier quoted context omitted.

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.

Interesting. I have studied computer science after working as a software engineer for several years, but I didn't become a better software engineer than I was before. And I have zero need for linear algebra, numerical analysis, or combinatorics. May I ask what you are working on? It sounds pretty advanced.

Re: Mathematics for Computer Science (2024)

#86
post #84

Earlier quoted context omitted.

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…

> You are using all of the above whether you know it or not when programming in a high-level language. Exactly. The average programmer doesn't have to know the math behind things like types to use them. > 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). I don't think the average software engineer d…

> I don't think the average software engineer does that or would benefit from doing it. I certainly don't.

Again; you are drawing the wrong conclusions and projecting your own ignorance on others.

To give a simple analogy; anybody can swing a baseball bat at a ball. But that won't make him a notable player. To become a superlative player one needs to understand body dynamics and train scientifically. In a similar vein, anybody can muddle through and come up with a Program. But more often than not, it will be error-prone and bug-ridden not to mention hard to extend and maintain. Given the importance of Software to our modern society this is not what we want. A little bit of knowledge of Mathematics behind Programming gives you orders of magnitude return in software quality which is absolutely worthwhile.

There is nothing to debate/argue here but merely pointing out the application of scientific method to software engineering.

Re: Mathematics for Computer Science (2024)

#87
post #84

Earlier quoted context omitted.

> You are using all of the above whether you know it or not when programming in a high-level language. Exactly. The average programmer doesn't have to know the math behind things like types to use them. > 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). I don't think the average software engineer d…

> I don't think the average software engineer does that or would benefit from doing it. I certainly don't. Again; you are drawing the wrong conclusions and projecting your own ignorance on others. To give a simple analogy; anybody can swing a baseball bat at a ball. But that won't make him a notable player. To become a superlative player one needs to understand body dynamics and train scientifically. In a similar vei…

> Again; you are drawing the wrong conclusions and projecting your own ignorance on others.

I reject your accusation. It's more likely that you are the one who is projecting, namely your ignorance of what the average software engineer is doing.

Re: Mathematics for Computer Science (2024)

#88
post #87

Earlier quoted context omitted.

> I don't think the average software engineer does that or would benefit from doing it. I certainly don't. Again; you are drawing the wrong conclusions and projecting your own ignorance on others. To give a simple analogy; anybody can swing a baseball bat at a ball. But that won't make him a notable player. To become a superlative player one needs to understand body dynamics and train scientifically. In a similar vei…

> Again; you are drawing the wrong conclusions and projecting your own ignorance on others. I reject your accusation. It's more likely that you are the one who is projecting, namely your ignorance of what the average software engineer is doing.

Your opinion has zero basis in facts and betrays some serious ignorance of Scientific Method. No educated person can deny the importance of Mathematics to our technologically advanced society today. Computer Science is a subfield of Mathematics and Computer Programming is the application of principles and concepts studied therein.

As mentioned earlier, the point of studying Mathematics for Computer Science is to make your "average software engineer" better and more productive than he/she was in the past.

Eugene Wigner's classic essay The Unreasonable Effectiveness of Mathematics in the Natural Sciences is very relevant here - https://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness...

Re: Mathematics for Computer Science (2024)

#90
post #85

Earlier quoted context omitted.

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.

Interesting. I have studied computer science after working as a software engineer for several years, but I didn't become a better software engineer than I was before. And I have zero need for linear algebra, numerical analysis, or combinatorics. May I ask what you are working on? It sounds pretty advanced.

It’s really not advanced. I see more applications than time.

Being able to determine when a mathematical framing is useful and apply it is harder than knowing how to do the math. It requires deeper internalization of the concepts. So your experience is common.

Post reply on HN