tag:blogger.com,1999:blog-7962217619208800961.post4941790598005554031..comments2021-01-20T10:49:07.884+00:00Comments on On Food and Coding: Completely Reliable ConclusionsStuart Wrayhttp://www.blogger.com/profile/00696910341905919852noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-7962217619208800961.post-1612732973603221272017-11-21T14:22:35.854+00:002017-11-21T14:22:35.854+00:00Very nice your blog and article. I like this blog ...Very nice your blog and article. I like this blog thank for sharing.<br /><br /><a href="https://boylovestorycollection.tumblr.com/" rel="nofollow">เกย์</a><br />vaiyborahttps://www.blogger.com/profile/05095754542895387700noreply@blogger.comtag:blogger.com,1999:blog-7962217619208800961.post-48643090526802305242013-05-12T12:14:08.123+01:002013-05-12T12:14:08.123+01:00I think there is a general confusion between the m...I think there is a general confusion between the mathematical foundational crisis and the gradual rise of more rigorous methods. This is understandable because the schools of thought during this period had names like "formalism" and "intuitionism". Here's how I understand it:<br /><br />In the late 19th century, several new ideas and paradoxes made mathematicians think seriously about the principles mathematics is based upon. By the early 20th century, formal logic with set theory emerged as potential candidate for unifying mathematics with a common foundation. There was debate on whether this could ever completely succeed. There were several schools of thought on this issue, with formalism and intuitionism being two many accounts focus on. Formalism argued that mathematics should be viewed as a "meaningless" game of symbol manipulation, with no independent meaning at all. They thought this could be achieved by axiomatizing formal logic as a series of such manipulations. On the other hand, intuitionism posited that mathematics is fundamentally a product of human intuition. Many intuitionists criticized formal logic and set theory because <br /><br />(1) these foundational objects by definition weren't constructed from familiar objects like the integers, which is how all maths before was done<br /><br />(2) objects which are constructed from "intuitive" objects like the integers have the advantage that their existence (and more importantly their consistency!) is only dependent on the existence and consistency of basic intuitive objects, as opposed to the existence and consistency of more troublesome objects like sets.<br /><br />At the around the same time there was a concurrent process of making mathematics more rigorous by making definitions and proofs more precise. This was associated with Formalism and formalists simply because any foundational work encourages people to check these things. Mathematical rigor is what makes "everyday" proofs the error-checking behavior that Quinn mentions. In opposing formalists, there was backlash from some intuitionists against introducing (what they considered to be) excessive rigorous justification to the detriment of mathematical intuition.<br /><br />But the notion that rigor is fundamental to mathematics was never seriously up for debate. I doubt that any intuitionist would have said that such rigor is unnecessary. The easiest way to see this is to look at Analysis Situs, Poincare's tract on the theory of manifolds. Poincare was an ardent intuitionist, but the style of his text is generally similar to that of modern tomes: it defines the terms being used and then proves theorems about them. <br /><br />It's true that some of the definitions and proofs weren't completely rigorous, and that as a result some of the theorems he proved were incorrect. But that was true of all mathematics at the time! By the same token, many classical texts on algebraic invariant theory (mostly written by formalists) had incorrect results because more effective modern geometric tools hadn't been invented yet.<br /><br />Any concession that proof or justification is necessary is a form of mathematical rigor. The alternative to using rigor in mathematics is...nothing. Mathematics can be defined with maddening circularity as the study of mathematically rigorous notions. The philosophy about where these notions come from (formalism vs. intuitionism) has nothing to do with it.<br /><br />It's troubling to hear influential people such as Bret Victor argue that we should do away with abstraction in maths (read: rigor) and instead use intuition. At best, rigor and intuition are complementary notions. Modern mathematicians are no more or less intuitive than their 19th century counterparts; rather, they simply have more rigorous intuition, or intuition about more modern and more rigorous ideas. We humans are so terrible at working with formal systems that we have to use intuition as a heuristic to shortcut most problems. But the actual maths is the rigorous bit we use to justify ourselves to everybody else.Anonymoushttps://www.blogger.com/profile/07485283518392751293noreply@blogger.comtag:blogger.com,1999:blog-7962217619208800961.post-65281239077449877632013-05-04T01:58:20.552+01:002013-05-04T01:58:20.552+01:00The problem is teaching is a general profession. T...The problem is teaching is a general profession. Teachers currently could not teach math properly because they do not know it in the way described.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7962217619208800961.post-35740358087471641072013-05-02T02:06:10.684+01:002013-05-02T02:06:10.684+01:00WRT Daniels' comment, I don't think that H...WRT Daniels' comment, I don't think that Haskell is really a special case anymore. Other functional languages like OCaml, Scala, Clojure and F# also have functions that operate like mathematical functions and do transformations on immutable data. While these languages are not pure and can allow side effects, "variables" are immutable by default.<br /><br />I've personally written applications in F# consisting of thousands of lines of code and dozens of immutable data structures. Often the only mutable data structure would be a hash based dictionary used for caching. When the language supports immutable lists, maps, sets and user-defined types, the lack of mutation isn't missed, not to mention not having to deal with null reference exceptions.<br /><br />Having a programming model where mutation and side-effects were the exception rather than the rule, would go a long way to improving current software development practices. After many years of C, C++, Delphi, VB.Net and C#, using F# been a liberating experience and shown that there really are better ways of developing software than what is now considered normal.<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7962217619208800961.post-73931715261584262672013-05-01T18:14:08.904+01:002013-05-01T18:14:08.904+01:00I had a fun experience last week trying to explain...I had a fun experience last week trying to explain to a non-programmer how "functions" in a language like C or Python work. The intuition of "function" which one gets from math up through Calculus is incredibly distant from the intuition of "function" needed to program effectively. Saying "it's just like a function in math, except, the variables can be modified, there can be side-effects, etc." is really the setup for a broken mental model. It's quite possible that the proper mental model can be arrived at more quickly by starting with GOTO and then subroutines. A language like Haskell can throw a wrench in the conclusion, but it's kind of a special case.Daniel Lyonshttp://www.storytotell.orgnoreply@blogger.comtag:blogger.com,1999:blog-7962217619208800961.post-30539560932002918022013-05-01T13:07:55.989+01:002013-05-01T13:07:55.989+01:00I agree that our students must come to an understa...I agree that our students must come to an understanding that what machines do is utterly formal, following rules without understanding or thought of what they might 'mean'. But I doubt that is how mathematicians understand mathematics. And it certainly isn't sufficient for programmers.<br /><br />Programmers do something creative: they take a vague specification and turn it into a piece of machinery. In mathematics education this is equivalent to requiring students to make proofs rather than to understand and reproduce them. My mathematics-department colleagues were always surprised that we required the weakest programming students to do that sort of thing. <br /><br />The alternative, sometimes proposed, is that we should teach people to write programs from formal specifications. That supposes that somebody else writes the specifications (creative) and it begs the question of whether such a process could be uncreative (unlikely).<br /><br />So intuition and experience will be part of a programmer's toolbox from the very beginning. The education problem remains how to foster that intuition, develop that experience, and make the creative leap across the gulf to formal reasoning. Ho hum.Anonymoushttps://www.blogger.com/profile/07423522296398828304noreply@blogger.com