7 ms·
Abstract algebra for developers and people who hate math
- tkahn6 15y agoI was hoping to find some practical applications, but nonetheless this is a really excellent into. I take my modern algebra exam in a week or so. A lot of it feels like mental masturbation but it can be fun.
- raheemm 15y agoMy favorite section is where he gives the context of how abstract algebra came about in the 19th century. It connects the theoretical with real world problem, which makes it far more interesting.
- dhaivatpandya 15y agoThanks for the feedback :)
- paulrosenzweig 15y agoAgreed! I took a few math major classes as a freshman, but my professors never took the time to give this aerial view. Now the value in these generalizations makes perfect sense.
- dudurocha 15y agoNice content! Thanks for putting it in more easy words. If I could give you a suggestion, a better way of showing it could be better. Like some slides, or colors. Something that made more friendly to read. Although the content is good, scanning it do not made me want to read right way. Anyway, thanks!
- dhaivatpandya 15y agoI'll do that for the next one, glad you enjoyed it!
- tonyarkles 15y agoTo confuse the issue further, I very much appreciated the format. I've found it much easier to get a better understanding of things like this when it's well-written text instead of slides. Slides that try to stand alone without supporting text (either spoken or written) tend to present a collection of facts without adequately explaining the concepts behind the facts (or the slides contain way too much text).
- dhaivatpandya 15y agoHmmm... maybe I'll have slides AND text?
- dkersten 15y agoAlthough the content is good, scanning it do not made me want to read right way. This is the exact feeling I have and were it not for the HN comments, I would have closed it without actually reading the content.
- dhaivatpandya 15y agoI will most likely be making slides (on SlideShare) for the next one and it will probably be on Wordpress instead of blogger.
- icco 15y agoI don't think either of these things will provide a solution that the above is looking for. The problem is with the layout of your content and the fact that write like a math professor. I imagine you scare a lot of people off with a ton of math symbols at the opening, maybe leave that for later, or explain it all in plain English instead of using symbols.
- dhaivatpandya 15y agoI will try doing that, its just that when I look at math articles, I look for symbols not words :) But, I'll definitely do that in the next one and see what the response is.
- dkersten 15y agoYou should probably use symbols after an "in plain english" description. I'm not too sure what the solution is, but the content was good once I decided to actually read it.
- RegEx 15y agoNice read, and nice example of specialization: Simply putting "for developers" in the title surely helped this article get so high on HN, though there's no application of computer science or programming to make the article more tailored for developers. I don't want to sound snarky by any means, as I did genuinely enjoy the article, but it's neat to see marketing 101 in action: Simply picking and acknowledging an audience(developers) made the reception of the article so much stronger. Edit: OP stated he will edit the article to include more CS application.
- dhaivatpandya 15y agoAdded :) I sort of forgot at the end of the article.
- dhaivatpandya 15y agoThanks for the feedback guys :) I really appreciate it I'll be doing more abstract algebra stuff, so, followers would be great :)
- alex-g 15y agoPeople who hate math aren't going to be inspired by a collection of axioms and equations. Nor are they likely to be wowed by the examples of matrices and vectors. Some examples from geometry, or permutations, might be more likely to teach the concepts. People who know something about math are going to spot several errors in the presentation. For example, the reals with multiplication don't form a group, since 0 has no multiplicative inverse. Not an error, but a subtlety: the collection of axioms here says that the group has a right identity and right inverses. It's later assumed that the identity is also a left identity (in the proof of uniqueness). This is true, as it happens, but it's not entirely obvious. The usual presentation of groups has two-sided identities and inverses up-front. Actually, the alternative axiom set of a right identity, but left inverses, has models that are not groups. An example is a left zero semigroup, where ab = a for all a and b. We have right identity (ae = a; no problem) and left inverses (for all a, there exists b such that ba = e; yes, just take b = e). This isn't a group! (OK, unless it has only one element.) Maybe this illustrates an interesting point for developers: the axiomatic approach is like having a common interface for some class of objects, and it's helpful to be able to reason about them without knowing the details of how they're implemented. But reasoning about the expressive power of different interfaces or specifications can be horribly difficult. The Robbins conjecture (about the equivalence of two axiom sets for Boolean algebra) was open from 1933 to 1996 - and proved in an automated theorem prover, no less.
- dhaivatpandya 15y agoUpvoted. Very true, and thanks for the mistakes and stuff. I'll fix the ones I can, and I'm adding some more stuff that actually relates to CS.
- alex-g 15y agoAre you also going to fix the assertion that matrices form a group under multiplication? (They don't: not all matrices have inverses. The general linear group is what you are probably looking for.) It's a bit embarrassing that of your three examples of groups, only one is actually a group...
- dhaivatpandya 15y agoI added some CSy stuff.
- mikeklaas 15y agoSorry, but OOP has virtually nothing to do with abstract algebra. Your whole post is about proving that something belongs to a general class and using the properties of a general class, and making such a vague analogy is completely contrary to that. For a real CS example, see cryptography.
- tonyarkles 15y agoI humbly disagree. Properly-done OOP is all about abstraction and reasoning. You're taking a set of concepts (business concepts, technical concepts, etc) and building a (hopefully) consistent model of how those concepts relate to each other. Included in this model is a deep understanding of the operations that can be performed on the model you've come up with. If you've done a good job about specifying the abstraction, you end up with a system that is easy to reason about. "If I do this, this will happen." This is, in essence, the same thing you're doing with abstract algebra; you're looking at common behaviours of different systems, and building up a consistent model that works for all of them, including the operations that you can do. The underlying details may be different for vector addition and matrix multiplication, but, using abstract algebra, you can reason about the behaviour in the same way. Good OOP has the same effect.
- dhaivatpandya 15y agoI agree with tonyarkles.
- rhdoenges 15y agoThis whole thing gave me haskell flashbacks. (That is a good thing)
- dhaivatpandya 15y agoYes, it is. I love haskell.
- randysavage25 15y agoYou gotta like math in order to be a cool programmer, otherwise it's like being in a wheelchair.
- dhaivatpandya 15y agohehe, nice analogy :)
- jarin 15y agoOn the other hand, you can still get into the Olympics in a wheelchair ;)
- dhaivatpandya 15y agoWell, that's only if you're competing with other people that are in wheelchairs, when you're a programmer you're competing with everyone :P
- veneratio 15y agoAs a As a current student in Abstract Algebra, this was really refreshingly simple to look at . Thanks fro a greatly simplified teaser to show other people!
- dhaivatpandya 15y agoThanks a lot for you feedback, I will be posting more, so keep in tune :)
- calydon 15y agoI hate to be negative but the title is misleading. There is no way any of this will appeal to people who hate math. A reader who 'hates math', implies that they have very little background in set theory and would be hard-pressed to define a Venn diagram. I am such a person and I couldn't get past the first definitions, although I tried. I need more background knowledge, and asking that I read a hefty Wikipedia article to get up to speed isn't going to cut it. I'm sure the content is good, and for people who already know what the symbols mean, you've probably done a great job of making it meaningful but the title should be - 'Abstract algebra revisited for serious students of abstract algebra' or something like that.
- icco 15y agoAgreed. I understand what this article presented, but in no way was this any different or better than how this material was presented to me in college. At least in school I could go bug the professor after class to explain to me why I didn't get it.
- dhaivatpandya 15y agoI guess so. Basically, I wanted it to be for people who had learned SOME math in college, but had really hated the experience, and wanted something different.
- vonsydov 15y agolol you didn't even describe what a 'closure' is ... just drew the equation. i stopped reading after that.
- dhaivatpandya 15y agoUm. I did. If you read on, I did explain what a closure was. If you don't get it, the concept is pretty simple, if you have two elements in a set S, and you apply the group operation on them, then the result must be in set S for the set in question to be a group.
- grot 15y agoAn admirable attempt, but -- the formatting and the grammar are distracting detractors from the content. For anyone who is serious about learning abstract algebra but lacking mathematical background (i.e. an analysis course under the belt), consider the book "Abstract Algebra" by Dummit and Foote. It's at the undergraduate level (so it goes through the motions of rigor that research math texts often omit), and well presented. A more advanced, terse and elegant, text would be Hershtein's Topics in Algebra.
- dhaivatpandya 15y agoIf you tell me what's wrong with the formatting and grammar, I'll try my best to fix them for the next time.
- probably 15y agoI don't hate math but don't quite getting what I can do with this knowledge to develop something new or different from what I would develop without it. Please help with enlightenment?
- dhaivatpandya 15y agoThe thing is, to make any advances in mathematics (since it is such an old subject with large advancements and abstractions already made), you can't really make much progress in math per se, but, it really gives you a much better understanding how things like classes and type systems work, and in general makes you a better programmer. I will present more applications and such in the next one.
- aiscott 15y agoA good and free book on abstract algebra is available here: http://abstract.ups.edu/download/aata-original.pdf http://abstract.ups.edu/download/aata-original.pdf (it's GPL)
- eric-hu 15y agoThank you for posting this! > And, the problem was, mathematics was losing its "connectivity", all these new algebras had little to no connection to each other, and it was very difficult to make progress in a few of these algebras at once. I went through 6 upper division abstract algebra classes without one professor providing this background. It's quite obvious once I read it, which is what makes it an amazing motivation. There were some formatting notations that didn't display--mostly superscripts that displayed in-line
- dhaivatpandya 15y agoThanks for the feedback :)
- ing33k 15y agocan developers who hate math survive ?
- kuahyeow 15y agoTry the simple English wikipedia too - https://simple.wikipedia.org/wiki/Group_theory https://simple.wikipedia.org/wiki/Group_theory
- iskander 15y agoA while ago I wrote an article about viewing abstract algebra through a programming lens: http://www.rubinsteyn.com/text/monoids.html http://www.rubinsteyn.com/text/monoids.html I didn't do a good job of demonstrating why this might be useful to someone. I'm not sure it is useful, only enjoyable.