Live data from Hacker News

Parallels Between Math and Software Engineering

beta.oreilly.com

41–50 of 97 posts

Re: Parallels Between Math and Software Engineering

#41
post #34

Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. The author seems to believe that the language used to describe mathematics (which is indeed a designed thing, just like software) is the only thing "there." She is probably a formalist. I think it is important to remember this, because mathematics, like a computer, "fights back." You c…

>He is probably a formalist.

It's actually a she =)

Anyway, I do agree with you (and the author) that mathematics has the potential of being a superb pedagogical vehicle in teaching design thinking.

Re: Parallels Between Math and Software Engineering

#42
post #4

Very nicely put. I'm a big fan of linear algebra because it's the best example of why learning math is useful. Sure knowing about equation and calculus come in handy, but linear algebra is pure modelling superpowers and a much more valuable tool overall. Related: An awesome LA introductory lecture by Prof. Strang: http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-... Related 2: A short tutorial on LA that I…

I don't think you can say of any topic in mathematics that it's the best example of why learning math is useful. What about calculus? It's an immensely powerful tool that, by harnessing the power of the infinite and the infinitesimal, unlocks a massive body of practical applications in nearly every field of quantitative knowledge. And what about discrete math? Without it there would be no such thing as a computer. Differential equations, the tool for modeling dynamical systems?

Mathematics is a vast topic that every quantitative discipline must necessarily draw from. Each field of study will benefit more from certain topics of it.

Re: Parallels Between Math and Software Engineering

#43
Interesting article. I always thought math felt like programming but in a language far higher level than any of the available programming languages. So like programming but with a lot less friction when going from thought to symbols.

For example, creating new domain specific control flows with Lisp macros versus defining a Dirac delta function using limits and integrals. In programming it's easy for bugs to seep in because there are more little/subtle details and leaky abstractions. But math on the other hand feels much more abstract and clean.

Perhaps this is just because dumb silicon boxes interpret our code and humans interpret our math which gives us a much more sophisticated base language to work with.

Re: Parallels Between Math and Software Engineering

#44
post #34

Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. The author seems to believe that the language used to describe mathematics (which is indeed a designed thing, just like software) is the only thing "there." She is probably a formalist. I think it is important to remember this, because mathematics, like a computer, "fights back." You c…

>Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things.

While its almost certainly true that the content of mathematics is mind independent, it is far from obvious that these objects are "real things".The real meat of the issue is how exactly the mind-independence is cashed out. Different ideas paint a vastly different picture of mathematics and even the universe. For example platonism vs. nominalism. Lets not be so quick to put forward as an obvious truth the critical issue in question.

Re: Parallels Between Math and Software Engineering

#45

I have, on multiple occasions, looked at math equations in CS paper and been like, "WTF?" But when I look at the implementation in code it's so obvious what's going on.

Can you give us some examples? I can't fathom how someone who cannot understand the math formula can understand the code.

Context: I never did too well in statistics, and in general I was always pretty bad at understanding simple Math notation like sigma notation, multi-variate calc, or linear algebra.

Here's the Hokusai paper: http://www.auai.org/uai2012/papers/231.pdf

And here's an implementation: https://github.com/dgryski/hokusai

For me to understand the paper, I had to go through the code to piece out the Math jargon, even though the Math behind it is really quite simple. Another way of saying this is, "I'm dumb," sure. Not gonna argue with anyone there.

Though I still think it's curious why it's easier for me to understand a concept through code than it is through Math. It's sort of reminiscent of when you first learned Algebra, your teacher would tell you to replace the variable with an easy number and work through it to understand the mechanics of equations.

I think code is an example of that - literally working through the mechanics of algorithms to understand what they actually do and how they work.

Re: Parallels Between Math and Software Engineering

#46
post #19

The other day I realized that a man-made law is also a bit like mathematics or computer software. It is carefully designed and constructed. Ideally, it is intended to work like a machine with as little room for human discretion as possible. And just like mathematics, adding an another "axiom" to the law has far, far-reaching consequences.

> And just like mathematics, adding an another "axiom" to the law has far, far-reaching consequences. Actually mathematicians virtually never do this. Almost all of mathematics (from arithmetic to calculus to category theory) operates in the confines of ZFC[1] and adds no further axioms. All of these fields may add definitions , but these are just shorthand; the are conservative and have no actual consequences. It is…

>Actually mathematicians virtually never do this. Almost all of mathematics (from arithmetic to calculus to category theory) operates in the confines of ZFC[1] and adds no further axioms.

Except for all the non-ZFC foundations, like type theory or category-theoretic foundations.

Re: Parallels Between Math and Software Engineering

#47
post #34

Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. The author seems to believe that the language used to describe mathematics (which is indeed a designed thing, just like software) is the only thing "there." She is probably a formalist. I think it is important to remember this, because mathematics, like a computer, "fights back." You c…

>You cannot simply dream up whatever structure you want and have it mean what you want and behave how you want. See Godel's incompleteness theorems.

That is not at all what the Incompleteness Theorems actually say. They say literally nothing whatsoever about what sorts of structures you can implement inside a given foundational theory, except that there will always be more, because given any foundational theory, you can construct two more foundational theories as extensions (one in which the Goedel statement is unprovable, and one in which the theory believes it's inconsistent).

Re: Parallels Between Math and Software Engineering

#48
post #34

Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. The author seems to believe that the language used to describe mathematics (which is indeed a designed thing, just like software) is the only thing "there." She is probably a formalist. I think it is important to remember this, because mathematics, like a computer, "fights back." You c…

>Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. While its almost certainly true that the content of mathematics is mind independent, it is far from obvious that these objects are "real things".The real meat of the issue is how exactly the mind-independence is cashed out. Different ideas paint a vastly different picture of mathemati…

Can't a mathematical theory compress, generalize, and map out many relevant empirical facts very well without needing ontological commitments to the generalizations themselves?

The real numbers seem to be a perfect example: if you work in physics at scales where quantization doesn't noticeably apply, the only way to calculate correct predictions is really to use real numbers and continuous (mostly Euclidean) spaces. But that doesn't mean physical objects are ontological shadows of our mathematical abstractions, as Plato's Allegory of the Cave portrayed it. Quite the reverse: when you get down to a sufficiently small, fundamental level, objects, space, and time stop being continuous and correct experimental predictions only come from using discrete formalisms.

You can then proceed to ask, which one is Platonically real, the continuous mathematical spaces or the discrete physical ones? But I think the answer there might be, "Who says anything is Platonically real? The map is not the territory, so shut up and calculate."

Re: Parallels Between Math and Software Engineering

#49

Earlier quoted context omitted.

Can you give us some examples? I can't fathom how someone who cannot understand the math formula can understand the code.

Context: I never did too well in statistics, and in general I was always pretty bad at understanding simple Math notation like sigma notation, multi-variate calc, or linear algebra. Here's the Hokusai paper: http://www.auai.org/uai2012/papers/231.pdf And here's an implementation: https://github.com/dgryski/hokusai For me to understand the paper, I had to go through the code to piece out the Math jargon, even though t…

I think it's probably just that you have far more relevant experience with reading code. Math is its own language, and math departments only really start teaching how to read and write it in Real Analysis classes. As my math professor stepfather said his advisor once put it, "Everything before that is just to keep the children from running in the halls."

Re: Parallels Between Math and Software Engineering

#50

Earlier quoted context omitted.

Category theory?

It has been called many things ("general abstract nonsense", etc.), but I don't know if it has ever been called "an easier way to explain things to non-mathematicians." :)

Nobody thinks category theory is easy for nonmathematicians, but the point of it is that it provides a common language for talking about common behaviors across many different, seemingly disparate, fields of mathematics, for mathematicians.
Post reply on HN