10 ms·
Category Theory for the Sciences
- Phithagoras 10y agoTable of contents at http://category-theory.mitpress.mit.edu/toc.html http://category-theory.mitpress.mit.edu/toc.html
- CarolineW 10y agoParticularly of note: 1.3 What is requested from the student The only way to learn mathematics is by doing exercises. One does not get fit by merely looking at a treadmill or become a chef by merely reading cookbooks, and one does not learn math by watching someone else do it. There are about 300 exercises in this book. Some of them have solutions in the text, others have solutions that can only be accessed by professors teaching the class. A good student can also make up his own exercises or simply play around with the material. This book often uses databases as an entry to category theory. If one wishes to explore categorical database software, FQL (functorial query language) is a great place to start. It may also be useful in solving some of the exercises.[0] This is not a novel, and you don't learn by just reading things. You need to engage topics like this in hand-to-hand combat, and if you're not willing to do that - give up now. Your knowledge will be superficial, and ultimately useless. Added in edit: To reply to both (currently) comments, you don't learn how to program by just reading and not doing. You can learn about programming, but you won't actually be able to program, and your knowledge will be superficial. If that's your objective, just to know about this topic, and others in math, then fine. If you want to be able to use your knowledge in any meaningful way, my comment stands. It's not enough just to read. You have to engage, and do the work. [0] http://category-theory.mitpress.mit.edu/chapter001.html#lev_1-3 http://category-theory.mitpress.mit.edu/chapter001.html#lev_...
- Koshkin 10y agoTo be fair, you can and do learn a lot about things by simply reading and trying to understand the material. Notice I said "about", and that is an important distinction. Not everybody needs and or wants to have a working knowledge of the category theory or any other subject. Rather, many either want to satisfy their curiosity or get a basic understanding of a subject before deciding whether it would be worthwhile for them to invest more time in learning it. Philosophers of science, for instance, do need to know a lot about, say, modern physical theories, and many of them do - down to a level of astonishing mathematical detail; yet, no one would expect them to be able to work as a theoretical physicist.
- p4wnc6 10y agoI learned a ton about my car from reading the car's manual. And, can you believe it, the manual has no exercises in it!
- mcguire 10y ago"Some of them have solutions in the text, others have solutions that can only be accessed by professors teaching the class." And this is why I don't usually end up doing the exercises.
- CarolineW 10y agoThat's your choice, but in my experience that simply means that you don't end up able to apply the knowledge you think you have acquired by reading about a topic. That might be fine for you, but it's an inherent limitation in reading about something, rather than actually engaging in it. I've edited my original comment to make a comparison, and expand on why I say this. But to take you up on this - some exercises have answers in the text. You could do just those. Other exercises don't have the answers, just like code that you write doesn't already exist. When you write the code you then have the ability to check that it does what it's supposed to do. The idea of having exercises without answers it to foster the ability to understand when your answers are right. Most of the time it's easy to know if you got the right answers, but it's finding the answer that's the challenge. If you choose not to learn this topic, fine, that's your choice. My comment just says: don't expect to understand the material at anything other than a superficial level if all you do is read about it. As it says in the quoted section: One does not get fit by merely looking at a treadmill.
- wfo 10y agoUsually in college-and-up mathematics, if you get the answer, you know when you have the answer, because you have a correct proof. You don't need the solutions, the whole point is to write your own, which is much more work and which will invariably differ from the official ones -- sometimes slightly, sometimes drastically.
- teamhappy 10y ago> You need to engage topics like this in hand-to-hand combat Fortunately, doing the exercises in books isn't the only way to do that.
- gone35 10y agoThe only way to learn mathematics is by doing exercises. This, in my experience, is utterly false. It does seem to be a pervasive bias in the community, though --cf. the ubiquitous "[missing step] is left as an exercise to the reader", and so forth.
- CarolineW 10y agoFantastic. Can you tell me how you learned mathematics without doing any exercises?
- Noseshine 10y ago> without doing _any_ exercises? I suggest you ask a question about what he actually said (wrote) if you want an answer. In the current form the question doesn't seem to be that (a question) at all but a cheap rhetorical method to pretend the other party said something ridiculous by taking a few words but adding exaggeration until the original contents no longer exists. http://dilbert.com/strip/2015-06-07 http://dilbert.com/strip/2015-06-07
- CarolineW 10y agoOK, so I said: The only way to learn mathematics is by doing exercises. To this, gone35 replied: This, in my experience, is utterly false. To me, that says that it's not true that the only way to learn mathematics is by doing only exercises. Logically, that means there is some way to learn mathematics by doing something other than exercise, possibly in addition to exercise, admittedly, but certainly something that is not exercises. The word "utterly" seems additionally to imply that this extra something completely outweighs the exercises, perhaps even to the point of no longer requiring exercises at all. And so my question. So I believe my question to have been completely reasonable. Rephrasing gone35: In my experience, is utterly false that the only way to learn mathematics is by doing exercises. So let me be very much more specific. gone35: I would be very interested to know what methods of learning mathematics you espouse other than, or perhaps in addition to, doing exercises. Is that better?
- jknoepfler 10y agofor the sake of precision it should be pointed out that learning about mathematics by reading alone is not the logical compliment of learning about mathematics through reading and book exercises. the term "exercise" by its nature implies something that is "practice". one may, however, simply learn by doing (rather than "exercising"). for a programmer, there is a clear distinction. this might not be the case for a mathematician.
- paulpauper 10y agoCategory theory , among with algebraic geometry, is one of the most complicated concepts ever developed. Trying to extend it to a wide range of applications seems like overkill. Yes, technically you can use it, but it's like using an archaeology kit to dig a hole when a simple spade will do.
- mej10 10y ago> most complicated concepts ever developed I disagree. Much of Category Theory isn't complicated -- it is just really abstract. So you need to have some concrete knowledge that you are going to apply it to before you start learning it or alternatively "mathematical maturity" (or as I like to call it "the ability to just accept abstract statements and go with it"). As a tool it clarifies and unifies relationships between mathematical concepts and domains like nothing else has.
- paulpauper 10y agobut isn't abstract the same as complicated
- qubex 10y agoNo.
- Smaug123 10y agoNo. The idea of a monoid is abstract but extremely simple. Conversely, the Navier-Stokes equations are very complicated but very concrete.
- mej10 10y agoNo. Complicated means there are many strongly coupled parts that you have to understand before you can understand the whole. Computer programs tend to be complicated (one sign of a good computer program is that you can understand and work on pieces of it without having to understand the entire thing). Abstract means that the idea itself isn't tied to a particular instance of what it is describing. Interfaces in Java are abstract. The idea of a group in mathematics is abstract. Abstraction is usually an attempt to make an idea less complicated so you can focus on its essence.
- bnj 10y agoJust on a formatting note, it would be great to have a static generator that takes markdown input and generates this kind of html book with footnotes and references. Similar to [spec-md](http://leebyron.com/spec-md/ http://leebyron.com/spec-md/). Anyone know of interesting projects along those lines?
- AdieuToLogic 10y agoOne option is to translate markdown to DocBook[0] (such as this tool[1]) and then generate an HTML book from there. 0 - http://wiki.docbook.org/WhyDocBook http://wiki.docbook.org/WhyDocBook 1 - https://github.com/MSmid/markdown2docbook https://github.com/MSmid/markdown2docbook
- 0xmohit 10y agoThe only thing that comes to mind is Pandoc [0], [1]. It is worth adding that it was originally created by John MacFarlane, a philosophy professor at the University of California, Berkeley. It's written in Haskell. [0] http://pandoc.org/ http://pandoc.org/ [1] https://github.com/jgm/pandoc https://github.com/jgm/pandoc
- jimhefferon 10y agoMore heavyweight than markdown, but MathBookXML does a lot. https://mathbook.pugetsound.edu/ https://mathbook.pugetsound.edu/
- arnsholt 10y agoI've been having similar thoughts recently, and decided that the best option is probably too use Sphinx. It's reStructuredText rather than Markdown, but that that turns out to be an advantage as RST has a much cleaner extension story than Markdown. And the syntax is pretty similar to Markdown anyways.
- dredmorbius 10y agoAs noted, pandoc. Using pandoc-markdown(5), you have footnotes/endnotes, and can export directly to latex and PDF: pandoc -f markdown -t latex -o foo.pdf foo.txt A footnote is indicated in text as [^tag], say [^1]. [^tag]: Is the footnote denoted by the corresponding tag. [^1]: Is the footnote '1' above. Multi-line footnotes may be designated by indenting subsequent paragraphs 1 or more spaces. I've created long (70+ page) documents using only these elements. At other times, exporting to LaTeX and adding additional structure or elements may prove useful. https://en.m.wikipedia.org/wiki/Pandoc https://en.m.wikipedia.org/wiki/Pandoc Example: a markup of Dugald Stewart's "Account of the Life and Times of Adam Smith, LLD" I did a few days ago: http://pastebin.com/LdKXpHdR http://pastebin.com/LdKXpHdR
- harveywi 10y agoDoes anyone here have any experience using the Ologs proposed in the book for doing knowledge modeling or other things? Some anecdotes, or in lieu of that, opinions of this formulation compared to other knowledge model representations would be interesting.
- wisnesky 10y agoThe FQL project uses ologs for data integration. There are many papers and presentations at http://categoricaldata.net/fql.html http://categoricaldata.net/fql.html .
- dkarapetyan 10y agoThis comes up every so often and people argue over the merits of learning category theory or not or how useful or abstract it is. The answer is it is very abstract and you shouldn't learn it expecting great dividends in your day to day work. Like with most mathematics you should learn it because it will change the way you think and solve problems. I definitely don't use calculus in my day to day work but the idea of infinitesimal quantities, continuity, and linear approximations have more than once helped me come up with an approximation to a problem that has made the solution tractable. If you are expecting to apply something immediately to your work then combinatorics and probability theory are way more relevant and practical for day to day programming work.
- gclaramunt 10y agoBut category theory has direct application to programming: (ignoring non-termination), types and functions form a category and most of the concepts are directly applicable. Functors/map are of everyday use and other CT results are commonly used. Even JavaScript is getting functional, so CT is getting more relevant and practical everyday
- dkarapetyan 10y agoThen you should learn type theory proper. Although type theory can be expressed in terms of categories that is mostly because type theory and category theory, alongside set theory, higher-order logic, etc. are foundational theories. So even though it is applicable, concepts from type theory are much more relevant, with or without the categorial phrasing.
- johncolanduoni 10y agoI love category theory, but I feel that its penetration of JavaScript or most other languages doesn't (and likely won't) get much farther than monads and functors. Many people who use functional languages don't even know about applicatives, even though monads can be viewed as a specialization them. If you're thinking about new programming paradigms I think the theory behind CT versions is worth knowing, but if most of your monads are maybes or lists it'll be of little practical value.
- yomritoyj 10y agoCategory theory has served mathematicians well, but only because they had a great mass of concrete detail which needed to be abstracted away. An abstract framework like category theory can actually be harmful where there isn't that much concrete detail to begin with. A personal example I faced was being overwhelmed by category theory jargon when starting to learn Haskell a couple of years back. My confidence returned only when I realized that there was just one category in play with types as the objects and functions as the arrows. The jargon was unnecessary. Today Haskellers discuss so many interesting issues about the language and its implementation which do not fit into the category theoretic framework at all.
- wrong_variable 10y agoAs someone who formally studied abstract algebra. One of the most applicable use-case I remember being constantly mentioned about category theory was classification of some viruses. Category theory makes sense when your business is large enough and you are looking to make everything streamlined. You could use some Category theory to rearrange everything from employee, customers and products into better types. But the idea that you absolutely need to understand this stuff to get going does not make sense to me.
- tome 10y agoI agree that Haskellers tend to get ridiculously over-excited about category theory, but it's simply not true that there's only "one category in play". Categories abound in Haskell, for example the Kleisli category, and any instance of Category that isn't (->).
- yomritoyj 10y agoThanks. I should have been more careful.
- fmap 10y agoIn mathematics, I would describe category theory as an offshoot of structuralism. The main idea is that instead of starting with some "premodel" of what you want to study ("I want to study geometry on surfaces, so I'm looking at subsets of R^3!") and then taking away structure ("...but what is the preferred center of the universe? I better only look at properties which are invariant under translations..."), you try to identify structure in your problem and then determine the consequences. This is obvious in retrospect. If your models describe reality and everything is built out of sets then is 0 an element of 2? Category theory provides useful tools for identifying structure. It's not necessarily a good vocabulary to talk about these things. Forcing everything into a first-order mold is typically confusing. On the other hand, there has been a lot of work using category theory to solve real problems. This has resulted in some sophisticated tools and a very "scalable" way of looking at things (e.g. universal properties and adjunctions are everywhere). Category theory is needlessly complicated. There are many redundant side conditions, and the definitions are ... let's be charitable and call them idiosyncratic. This is just more apparent when you apply catgeory theory to programming languages. In semantics you already have a precise way of writing statements (type theory) and you know that everything you can write down is parametric. This eliminates almost all side conditions on most definitions in category theory. So yes, coming from Haskell, catgeory theory probably looks extremely complicated and not worth the effort to learn it. However, some of the tools from category theory are as useful to computer science as differentiation is to engineering. There are plenty of questions to which you can calculate the answer using some elementary category theory. What is the dual concept to the reader monad transformer? What is the eta law for sum types? Can this data structure be a monad? If not, can I embed it into a monad (e.g. using codensity)? These are all simple questions, but if you don't know the general strategy for dealing with them it seems like I'm asking you to solve a puzzle instead of asking you to compute 7 * 4.
- cousin_it 10y agoSo. Just to clear up which math is good for a programmer to learn. All computer science is divided into Theory A (algorithms and complexity) and Theory B (logic and programming language design). Applications of category theory are part of Theory B. If you're a programmer who wants to have real world impact, you should study tons of Theory A and completely ignore Theory B. That sounds inflammatory, but it is unfortunately 100% true. All of Theory B combined has less impact than a single hacker using Theory A to write Git or BitTorrent.
- zepolud 10y agoSadly, Turing wasn't aware of this at the time -- think of the real world impact he could have had.
- cousin_it 10y agoTuring's work was in algorithms, models of computation, and cryptanalysis. All that is considered part of Theory A, see e.g. http://blog.computationalcomplexity.org/2003/03/theory-and-theory-b.html http://blog.computationalcomplexity.org/2003/03/theory-and-t....
- zepolud 10y agoTake a minute and reflect on the fact that you're arguing Turing had nothing to do with mathematical logic. His doctoral advisor was Church, his work based on Gödel, his thesis named Systems of Logic Based on Ordinals. Comments like these show the perils of treating mathematics like a cookbook. It's a very limiting mindset.