16 ms·
Applied Category Theory
- revskill 8y agoWhen i was in College, my wish when learning Math is that: - Hey, wait! You don't tell me why we need to learn this concept Yes, most of my lecturers use Math to teach Math. It's not useful to me, or i can't learn that way. A wish is just a wish though.
- jbottoms 8y agoAgreed, I wish professors were required to take a course in Basic Pedaegogy for Math, as soon as someone invents it.
- ambicapter 8y agoWhat if the aim is to solve problems that have never been solved before? In which case, you don't know which tools you will need before. You are stuck just learning a bunch of tools and hoping you learned the correct ones. That's how life is. Some (most) times you don't know what tools you will need in the future.
- kian 8y agoAll tools were created to solve at least one problem. Explaining what that problem is, and how the tool is useful for solving it, goes a long way towards making it easy to figure out the abstract template of tool application. Going a step further and explicitly explaining why the tool works and when it doesn't is the marrow of an actual education that can be used out of context.
- btilly 8y agoNote. A mathematician's idea of "applied" and a normal person's idea of the same bear little resemblance.
- marquis-chacha 8y ago"Applied Category Theory" almost seems a bit tongue-in-cheek to me, given Category Theory is designed to distill the concepts found in a bunch of different "applied" fields into one, theoretical, framework. (That was my impression from the intro lecture, at least)
- brianberns 8y agoThey should call the class “Concrete Nonsense” (since category theory itself is sometimes described as “abstract nonsense”).
- saidajigumi 8y agoWhich phrase, I note with profound glee, has its own Wikipedia page for precisely this usage: https://en.wikipedia.org/wiki/Abstract_nonsense https://en.wikipedia.org/wiki/Abstract_nonsense
- dizziest 8y agoThank you! I couldn't verbalize it until your comment :)
- quickthrower2 8y agoMaybe “Brutalist Nonsense”
- neel_k 8y agoIt may be professional deformation speaking, but they seem to be using "applied category theory" in a coherent and natural sense: they mean the theory of monoidal categories, (a) viewed as a generalization of linear algebra, and (b) omitting logic and programming language semantics as applications. Given the centrality of linear algebra to applied mathematics (even in places where you wouldn't first expect, like the theory of regular expressions and finite automata), this seems like a perfectly sensible coinage. (Even though I must admit I get my back up at the omission of categorical proof theory, it's perfectly natural as a sales pitch -- type theorists don't need to be convinced of the utility of category theory!)
- weeksie 8y agoWhat's category good for? It's a serious question so please don't say "monads", I understand monads just fine without knowing category theory. I'm down to put in the work if the reward is there.
- nosianu 8y agoWhat I usually do, and also did here, to evaluate if a course interests me is to look at some of the assignments. Here they present three PDFs with a number of assignments of varying difficulty: https://ocw.mit.edu/courses/mathematics/18-s097-applied-category-theory-january-iap-2019/assignments/ https://ocw.mit.edu/courses/mathematics/18-s097-applied-cate... If you find that being able to answer a high enough number of assignments you know that the course is for you. If not, the lectures may still be of interest, but it is much less likely the less of the assignments you think are worthwhile for you. PS: Question 4 in problem set 3 is quite (in)famous :-) Just the headline: > Question 4. A monad is a monoid in a category of endofunctors (harder/optional) So, if you want to be one of the few people who actually understand that sentence when it is quoted as a joke (usually in programming forum whenever monads come up), this is your course.
- theoh 8y agoThis is a course. Not necessarily a good way to an understanding of that line.
- nosianu 8y agoWhat??? Exactly the opposite, obviously. A course is exactly what leads to understanding of that line.
- theoh 8y agoThe comment I was replying to said "this is your course". I don't think the particular approach taken by the instructors is a good one, so I replied "this is a course" (not necessarily the course to take). A lot of the applications are weird and a bit contrived. A more traditional approach would suit many people better.
- marquis-chacha 8y agoWatched the first lecture, loved the format: start with a question that you can logically answer, then build up the math to formalize your intuition by the end of the lecture.
- outlace 8y agoThe course is based on this free book http://math.mit.edu/~dspivak/teaching/sp18/7Sketches.pdf http://math.mit.edu/~dspivak/teaching/sp18/7Sketches.pdf
- deleted 8y ago[deleted]
- chombier 8y agoI am currently reading it, it is very nicely written and accessible. Each chapter starts off gently so you can skip to the next whenever you feel lost, only to come back later. So far: introduction/preorders, monoidal preorders/wiring diagrams, categories/application to database schemas. For those reading on a ebook, the book sources are available on its arxiv page https://arxiv.org/abs/1803.05316 https://arxiv.org/abs/1803.05316 so you can build a custom pdf for your device.
- eindiran 8y agoIf anyone is looking to get into Category Theory as a programmer, I would recommend giving Bartosz Milewski's Category Theory for Programmers a shot[0]. Quite good, and you can read it as a blog post on that site or get the ebook/physical book to leaf through. For a more theoretical/less applied approach that's still relevant to computer science/programming, check out Benjamin Pierce's Basic Category Theory for Computer Scientists[1]. It's a very good introduction to the parts of Category Theory that are useful for [theoretical] CS, and delves into semantics of programming languages, types, and concurrency a fair amount. [0] https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/ https://bartoszmilewski.com/2014/10/28/category-theory-for-p... [1] https://mitpress.mit.edu/books/basic-category-theory-computer-scientists https://mitpress.mit.edu/books/basic-category-theory-compute...
- mathgenius 8y agoFor a first introduction to category theory, from the masters thereof, I would highly recommend the book by Lawvere and Shanual "Conceptual Mathematics: A First Introduction to Categories". It almost doesn't look like a mathematics book, but believe me, these guys know what they are talking about. They distill some very high-brow ideas down to something us mere mortals can grok.
- armitron 8y agoI watched a little less than the first half of Bartosz video lectures and I still don't see what the fuss is about from the perspective of an engineer that is looking to get better at engineering. I can't find something there that would help me implement better systems. What I do see is an attempt to shoehorn a mathematical model onto certain programming paradigms in order to be able to say that these paradigms are instances of the model. In short, a lot of talk about abstractions (or "abstract nonsense") but very little of engineering significance. Please let me know if I'm missing something by listing concrete examples of how category theory can help me with engineering problems. Disclaimer: I'm not a mathematician.
- eindiran 8y agoI think that the most plausible way that Category Theory is going to improve your life as an engineer is that it will sneak into the way your tools are designed. You don't personally need to know about the Yoneda lemma to benefit from a better designed programming language whose type system was informed by algebras of types, allowing it to leverage exhaustive pattern matching. With that said, learning about techniques used in functional programming that have their origin in category theory (maps, folds, algebraic data types, monads, monoids, etc) can allow you to think about how to solve problems (even in non-functional languages) in ways that can be more "natural" to the problem, in that the abstractions used resemble the problem description more closely. That ability to decompose difficult problems in new ways can definitely make you a better engineer.
- formalsystem 8y agoGenerally, I tend to care more about math if it relates to my specific interests. I'm in ML and robotics so I've found it useful to understand algebra, topology, real analysis. I've tried to get into Category theory a few times but couldn't keep my motivation high enough once things got too technical. Anyone know how category theory could be useful for someone in ML or robotics?
- vivekseth 8y agoRecently, I've been into learning about CRDTs a class of data structures which can be edited independently and merged without conflicts. They can be used to build experiences similar to Google Docs (although Gdocs uses a different approach called OT). I'm interested in learning Category/Set Theory to better understand the underlying math of how they work. I have very little experience with ML/Robotics, but CRDTs might be useful for distributed learning, or coordination between independent robots.
- formalsystem 8y agoIt's funny you mention them, I've been thinking a lot about CRDTs for online multiplayer games where you have a bunch of concurrent players changing a game state.
- Twisol 8y agoI've been taking a more domain-theoretic approach to understanding CRDTs(focusing more on the semantics than the syntax) but it appears that domain theory does have some connections to category theory: https://ncatlab.org/nlab/show/domain+theory https://ncatlab.org/nlab/show/domain+theory
- adamnemecek 8y agoWhat class was this if I may ask?
- vivekseth 8y agoWhen I said "class", I really just meant "type". CRDTs are relatively new so there may not be many classes yet that teach them. If you want to learn about them, I recommend you first watch this video: https://www.youtube.com/watch?v=OOlnp2bZVRs&list=WL&index=56&t=0s https://www.youtube.com/watch?v=OOlnp2bZVRs&list=WL&index=56... and then read this paper: https://pages.lip6.fr/Marc.Shapiro/papers/RR-7687.pdf https://pages.lip6.fr/Marc.Shapiro/papers/RR-7687.pdf . The video explains a lot of the math in a very easy to digest way and will make the paper much easier to understand.
- smadge 8y agoNice, now I can have sole video lectures to accompany my self printed copy of “Seven Sketches in Composability”
- tgbugs 8y agoWhen I saw the title I suspect that this would be David Spivak, and happily it is, I am also please to learn that he now has a new co-conspirator in the form of Brendan Fong. I first encountered Spivak's work via Category Theory for Scientists [0] which inspired me to try to come up with ways to use it for documenting scientific protocols. My chief complaint at the time was that someone had not already implemented many of the ideas expressed in his work. Despite the usual treatment of category theory as something mystical and opaque, I find Spivak's work to bring such clarity to communicating complex ideas. Those ideas are always going to be complex, but the way we communicate about them does not have to be. From a quick skim Sketches will provide further inspiration. 0. http://math.mit.edu/~dspivak/teaching/sp13/CT4S.pdf http://math.mit.edu/~dspivak/teaching/sp13/CT4S.pdf
- state_less 8y agoI’ve appreciated his explanation of dB schemas as categories.
- radicaldreamer 8y agoSort of related... but is David Spivak related to the author of that famous Calculus textbook by Michael Spivak...?
- deleted 8y ago[deleted]
- anonymous5133 8y agoLooks like a good course but nothing cringes me more than seeing the Massachusetts institute of TECHNOLOGY still using chalk boards....I mean come on now.
- petschge 8y agoStill the best solution for teaching complicated topics that have a compact notation.
- therein 8y agoYou're probably thinking of green boards when you say chalk boards because black slate chalk boards are a pleasure to draw on. If you have ever used one, you'd know they keep using them because they prefer it. They are also easier to read from a distance compared to a dry-erase board.
- neffy 8y agoHaving used said chalkboards there - they are amazing. The chalk is really smooth to write with, and the tactile sense is much better to draw on than a white board. The most amazing thing though, is that person or persons unknown goes round and cleans the boards at the end of every day. Even in the holidays.
- tylerhou 8y agoWhat better alternatives are there? “Smart” boards — expensive, and high drawing latency makes writing on them uncomfortable. Also, text is hard to read from a distance. (They may be better for accessibility.) Dry-erase boards — boards and markers are expensive. Markers generate a lot of waste. Chalk — cheap, naturally occurring (and safe to dispose of) material. Easy to read at long distances.
- AnimalMuppet 8y agoChalk is really nasty on your hands when you're the lecturer. And nobody ever said "like fingernails on a whiteboard" for a reason.
- wisnesky 8y agoDavid Spivak has a company, http://conexus.ai http://conexus.ai, that is applying category theory to data migration as described in 7 sketches. It will soon be expanding and soliciting proposals to fund applied category theory start-ups in many domains, as well as providing some example proposal ideas. Watch http://ventures.conexus.ai http://ventures.conexus.ai over the coming weeks for details.
- aghillo 8y agoIs there any accessible work using Category Theory that looks at API composition? I’m thinking here about data intensive systems that are often composed of different elements (e.g. Kafka, Cassandra, bespoke microservices, ...) and are glued together in an application. Could Category Theory help in getting a grip on this complexity?
- arianvanp 8y agohttp://hackage.haskell.org/package/pipes http://hackage.haskell.org/package/pipes is the first that comes to mind. And just Haskell programming in general involve composition Effects are monads and program composition is composition over kleisli arrows .
- aghillo 8y agoThat looks very interesting and could be source of interesting ideas. Thank you.