4 ms·
A while ago I did this for a few analysis text books that I was working through: Baby Rudin, Big Rudin, Calculus on Manifolds, and a couple of others. As I was
by siddboots 7y ago
A while ago I did this for a few analysis text books that I was working through: Baby Rudin, Big Rudin, Calculus on Manifolds, and a couple of others.
As I was working through the books I would capture every numbered definition or theorem in a table, along with all of the explicit cross-references or implicit dependencies. Then I wrote a little D3 app to visualise the graph, with a few customisable views. E.g what is the dependency structure of the chapters? What is the full list of dependencies for a given theorem?
The result is actually pretty interesting, and the different levels of rigor that different authors choose really comes through. I would love to have a few weeks to sink into this project properly and make a public tool out of it.
- graycat 7y agoWhen I was writing my undergraduate honors paper on group representations, I tried something like your dependency structure! Result: Mostly all I got was just a simple sequence with nothing interesting or surprising. For that nearly 2000 page PDF, actually I know enough about the contents to suspect that again a dependency structure graph, especially for anyone with a background in Baby Rudin (Principles of Mathematical Analysis), Big Rudin (Real and Complex Analysis or maybe Functional Analysis), surprisingly, would not look very interesting. From just going through the table of contents, there are a lot of interesting and uncommon topics in those ~2000 pages, but the book looks more like a small encyclopedia or reference than an integrated whole. And for something that long and in places with some rare topics, there is, surprisingly, especially for the goal of ML (machine learning), comparatively little on probability, stochastic processes, and mathematical statistics. But in those many pages, there are many topics possibly valuable and not easy to find elsewhere, so keep a copy of the PDF and use it as a reference when appropriate. Here is a short remark for readers without much background: Don't be afraid to dig in nearly anywhere in the ~2000 pages; maybe you will have to backtrack a little but in general can start nearly anywhere and don't have to read sequentially chapter 1, 2, .... Warning: Some topics are covered relatively superficially while others have some really rare details. Broad, Curious Point: The ~2000 pages may be this and that, but it is relatively close to the applied mathematics of operations research and numerical analysis, closer to those fields than what is usually regarded as computer science until computer science wants to absorb the math of operations research and numerical analysis. For more, some of the numerical analysis was, as I recall, mostly of interest for numerical solutions of partial differential equations. That field is also to be subsumed by computer science?
- wenc 7y ago> is relatively close to the applied mathematics of operations research and numerical analysis I know these areas well, and I would be hesitant to agree with this statement.
- graycat 7y agoMy Ph.D. from one of the world's best research universities is in essentially the math of operations research. My most important prof was a star student of E. Cinlar, long editor in chief of Mathematics of Operations Research. I've published peer-reviewed original research, taught graduate courses, and applied to US national security and business the math of operations research. I stand behind my statement.
- wenc 7y agoThen I would be doubly surprised -- perhaps you did not notice the lack of coverage of certain important OR areas like (mixed-) integer programming and the many advances therein? Or in nonlinear optimization, interior point methods? Active-sets? SSOCs? Constraint qualifications? Also pretty thin on theory of statistics, queuing theory, combinatorics, etc. These are all fundamental OR topics but the book makes different choices on topics to cover. (to be fair, the book does not claim to target OR, so I'm not disagreeing with the book's premise, only yours). I do think though that the book could benefit from feedback from specialists in each individual area. In some areas, I find the selection of topics to be a little bit "unconventional".
- graycat 7y agoYou are not disagreeing with what I stated. I said that the book was close to the math of OR (operations research), that is, much of the book is a subset of the math of OR. You outlined some major OR omissions in the book -- I agree fully. So, you are saying that the book does not cover OR, that its OR material is a proper subset of OR. Fine. I agree. I thought his linear programming coverage was superficial. In particular, I didn't notice any coverage of linear programming for the problem of least cost flows on a network where each arc has a maximum capacity. The nice anti-cycling rule for the version of the simplex algorithm, with strongly feasible bases, is from W. Cunningham, long Chair at the Waterloo Department of Combinatorics and Optimization. It turns out that that algorithm makes a nice dent in the challenges of linear integer programming. Yes, I saw not much on constraint qualifications. I'm the guy who showed that the Zangwill and Kuhn-Tucker constraint qualifications are independent for problems with only functional constraints -- my work also solved a problem stated but not solved in the famous Arrow, Hurwicz, Uzawa paper on constraint qualifications in mathematical economics. Any really good book on linear programming is "close" to OR but can be attacked with your objection that it omits lots of OR.
- lN5uhiNxWPBi 7y agoI'd love to learn more about this visualisation you produced. Can you say more? Is an example output or code available?
- siddboots 7y agoSure. The code is a mess of scripts and initial work on a web interface. It is not currently in a form to release. It began as just an aid to help myself understand what I was studying. To get a sense of the "road map". I collected the data in a spreadsheet for each text. The columns were "Id, Type, Name, Chapter, Description, Dependencies". Id is the margin reference from the textbook, Type is one of theorem, definition, corollary, etc., Name is for named theorems or definitions, Dependencies is a comma separated list of Ids. I then had a small Python script that built up a NetworkX [1] representation. Initially I was using Cytoscape [2] to explore the graphs, but then started work on a web interface using dagre-d3 for automated graph layout [3]. This example [4] is very similar to the types of layouts it produced. I found that a large textbook quickly grows into a big hairy ball, and that it is only useful if you are able to collapse and/or hide nodes intelligently. I.e. show the chapter dependency structure, or look at the sub-DAG involving a selection of nodes. I only got a little way into doing this when I got moved on to other distractions. Shazaam for bird song, or something like that... [1] https://networkx.github.io/ https://networkx.github.io/ [2] https://cytoscape.org/ https://cytoscape.org/ [3] https://github.com/dagrejs/dagre-d3 https://github.com/dagrejs/dagre-d3 [4] http://cs.brown.edu/people/jcmace/d3/graph.html?id=small.json http://cs.brown.edu/people/jcmace/d3/graph.html?id=small.jso...
- diego898 7y agoIs there any way we can stay "updated" on this? I'd be really interested in seeing this!
- siddboots 7y agoNot currently. I would certainly ShowHN if I ever develop it to such a point, but I honestly wouldn't say that this is likely. Please feel free to run with it youself!