Live data from Hacker News

Math topics useful for computer science/programming

matheducators.stackexchange.com

61–69 of 69 posts

Re: Math topics useful for computer science/programming

#61
post #55
post #41

Earlier quoted context omitted.

Yes. But my more important point is that you can tach about these mappings in isolation, in the context of functional programming. No Category Theory needed. You can teach about "different sorts of mappings" in just about any setting. In fact, that's kind of the whole reason Category Theory exists. So why teach the general result when all you care about is its application to functional programming?

The importance of structure preserving mappings shows up in many other places besides functional programming. I do believe context is important, but having multiple contexts is even better.

> but having multiple contexts is even better.

Given the investment necessary to make this jump, I believe that the benefit outweighs the cost for most.

Re: Math topics useful for computer science/programming

#62
post #29

I wrote the original question. I've always been interested in how much math various careers use, but I wrote this question the way I did in a shameless attempt to drive traffic to the site by appealing to the Stackoverflow and reddit communities. Everyone has given me a different answer so far, but that's to be expected, because there are ~1000 subcategories of computer programmers.

> I've always been interested in how much math various careers use

> ... there are ~1000 subcategories of computer programmers.

I'm curious: what about other careers? Are there fewer categories? Do they all do the same type of math? etc.

Re: Math topics useful for computer science/programming

#63
post #53
post #46

Earlier quoted context omitted.

This comment is a little frustrating, because part of the point of linking to the Stack Overflow post is to continue the discussion, which is obviously germane to our site. Why not dig into specifics of how you'd approach the intersection of math and CS?

It's actually inspired me to write my own article, but that will take time. Meanwhile, I actually write a blog called "Math Intersect Programming." Even though it's more about my specific interests than how a freshman should approach the topics, and I certainly emphasize the mathematical ideas over the engineering challenges, it still gives a good idea of what I would suggest: Orient the learning around applications…

I want to chime in and say that I've found your blog wonderful, and since you're too modest to post a link, let me do it: http://jeremykun.com/

Re: Math topics useful for computer science/programming

#64
post #52
post #51

Earlier quoted context omitted.

`ridiculously` might be hyperbole, but the two biggest ones I can think of are computer graphics and machine learning; these of which you can't even sneeze at without getting in linear algebra.

I have some sense of the linear algebra implicated in machine learning (I lived for many years with a comp. neuroscience PhD), but I have no visibility into graphics. So with my ignorance pinned to my lapel: the linear algebra involved in computer graphics is pretty simple, right? Just knowing how to manipulate vectors and matrices? Not a lot of eigenvalues, or for that matter orthogonalization? I'm asking not to reb…

Much of computer graphics operates in projective space (http://en.wikipedia.org/wiki/Projective_space), so it's a little bit more than cookie-cutter linear algebra. This is done so that translations in 3D space — which aren't linear transformations — can be represented as 4D linear transformations in projective space via homogeneous coordinates (http://en.wikipedia.org/wiki/Homogeneous_coordinates).

Still, many folks use the APIs without really grokking that, so in practice it can be a bit cookie-cutter. I think of it similarly to how people can use crypto APIs without, say, really understanding what's going on under the hood.

BTW, projective space is also intimately related to elliptic curves (as you may or may not know — not implying anything!). So that darn linear algebra is lurking all over the place.

Likewise, any time you're talking about fields (even finite fields), vector spaces and linear algebra are right around the corner.

Re: Math topics useful for computer science/programming

#65
post #61
post #55

Earlier quoted context omitted.

The importance of structure preserving mappings shows up in many other places besides functional programming. I do believe context is important, but having multiple contexts is even better.

> but having multiple contexts is even better. Given the investment necessary to make this jump, I believe that the benefit outweighs the cost for most.

You don't need to teach category theory proper to get the idea. So I think we are in agreement :)

Re: Math topics useful for computer science/programming

#66
post #64
post #52

Earlier quoted context omitted.

I have some sense of the linear algebra implicated in machine learning (I lived for many years with a comp. neuroscience PhD), but I have no visibility into graphics. So with my ignorance pinned to my lapel: the linear algebra involved in computer graphics is pretty simple, right? Just knowing how to manipulate vectors and matrices? Not a lot of eigenvalues, or for that matter orthogonalization? I'm asking not to reb…

Much of computer graphics operates in projective space ( http://en.wikipedia.org/wiki/Projective_space ), so it's a little bit more than cookie-cutter linear algebra. This is done so that translations in 3D space — which aren't linear transformations — can be represented as 4D linear transformations in projective space via homogeneous coordinates ( http://en.wikipedia.org/wiki/Homogeneous_coordinates ). Still, many f…

I'm familiar with projective coordinates for elliptic curves, but the funny thing about curves is that, for high-speed software, the math is tricky enough that you don't "need" to grok it: there's an "explicit formulas database" that you can just copy from:

http://www.hyperelliptic.org/EFD/g1p/index.html

Curves are what made algebra 'click' for me, getting me from my high school understanding of "algebra is math about unknown variables" to "algebra is about sets of related objects with operators that have identities and inverses".

Re: Math topics useful for computer science/programming

#67
post #37

I went to an engineering University. Besides having a wide variety of math required (3 semesters of Calc, 1 semester of either stats or probability, 1 semester of either linear algebra or matrices), we also had to take 3 semesters of physics, and 2 of chemistry. Most of us (those not just looking for a piece of paper) went considerable deeper in at least one area. No, you don't need to understand organic chemistry to…

> but how could I without the math background?

You could have just learned it as you went. Done that.

Re: Math topics useful for computer science/programming

#68
post #58
post #57

Earlier quoted context omitted.

I found it easier to handle Analysis by following the sequence:Spivak ->Apostol->Rudin.

I think I am ready to tackle Rudin, but I don't really like it. I'm not alone there. Arnol'd is said to have called it Bourbakian propaganda. That's a bit extreme, but I certainly dislike books that strive to remove intuition: http://pauli.uni-muenster.de/~munsteg/arnold.html

[deleted]

Re: Math topics useful for computer science/programming

#69
post #31

Earlier quoted context omitted.

I largely agree with your sentiments. However, you should keep in mind that these lists are intended as an answer to "What Math should we teach freshmen undergrads?", not an answer to "What Math do all the CS-people need to know?". The latter is naturally a very small subset of Math, the 'logicish' type. I do STRONGLY agree with you that we should help students figure out the areas that they find interesting, and let…

But the question is one and the same in this instance: they're asking what should be taught in "the" math class for a CS degree. If that doesn't contain the math that all CS-people need to know, then what should it contain? The OP describes universal algebra and term rewriting, which is what I claim is the logicish type that is not as crucial as, say, linear algebra if you want to find widely applicable mathematics f…

It may not be crucial for programming, but I'd say it's more crucial than Linear Algebra for finishing the degree at all, since there are CS subjects that you just can't really take unless you learn the logicish stuff.

I can't imagine not taking calculus either... How do you comfortably take the logarithm of an inequality without it?

This whole idea seems so ridiculously impossible to me...

Post reply on HN