https://learning.subwiki.org/w/api.php?action=feedcontributions&user=Issa+Rice&feedformat=atomLearning - User contributions [en]2021-06-15T03:37:09ZUser contributionsMediaWiki 1.29.2https://learning.subwiki.org/w/index.php?title=User:Issa_Rice/Gamification_table&diff=855User:Issa Rice/Gamification table2021-01-20T22:58:22Z<p>Issa Rice: </p>
<hr />
<div>{| class="sortable wikitable"<br />
|-<br />
! Property/attribute !! MMBN !! Math/AI safety !! Vimscript/vimrc<br />
|-<br />
| addicting/feeling of being engrossed || yes || no || yes<br />
|-<br />
| important || no || yes || no<br />
|-<br />
| instant feedback || yes || no || yes<br />
|-<br />
| collecting things || yes || ? || ?<br />
|-<br />
| mentally easy || yes || no || most of the time<br />
|-<br />
| livelihood could depend on it || no || yes || no<br />
|-<br />
| multiple threads that can be pursued || yes || yes || yes<br />
|-<br />
| social competition || no || yes || no<br />
|-<br />
| early on, you are told the point of the thing you're doing || yes || no || yes<br />
|-<br />
| varied repetitiveness (i.e. not [[wikipedia:Grinding (video gaming)|grinding]]) || yes || no || no<br />
|-<br />
| dominance reasoning/upgrades || yes || no || yes<br />
|-<br />
| randomness/surprise || yes || no || no<br />
|-<br />
| pre-made dependency tree || yes<ref group=notes>See "Games help players make and adapt plans" [https://notes.andymatuschak.org/z4qFtxPZi21DKoLruHcmsocee1YnZy9JMArb6?stackedNotes=z7mU6RxxzJ9FZBCcgbYQsv9nExuK3xVm635Ks&stackedNotes=Most_explanatory_media_make_participants_run_their_own_feedback_loops] for kind of thing I mean here. In a game like MMBN the next thing to do is basically obvious.</ref> || no || no<br />
|-<br />
| tacit linearity || yes || no?<ref group=notes>not for mathematics as a whole, but a single textbook does have linear structure</ref> || no<br />
|-<br />
| large class from which to pull strategies || no || yes || yes?<br />
|-<br />
| tinkering mechanics || yes || no || yes<br />
|-<br />
| pressure to keep doing better/find flaws in what I am doing || no || yes<ref group=notes>this is more of an AI safety thing, not a math thing</ref> || no<br />
|}<br />
<br />
see also https://youtu.be/SqFu5O-oPmU?t=783<br />
<br />
==Notes==<br />
<br />
<references group=notes/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=User:Issa_Rice/Gamification_table&diff=854User:Issa Rice/Gamification table2021-01-04T00:11:56Z<p>Issa Rice: </p>
<hr />
<div>{| class="sortable wikitable"<br />
|-<br />
! Property/attribute !! MMBN !! Math/AI safety !! Vimscript/vimrc<br />
|-<br />
| addicting/feeling of being engrossed || yes || no || yes<br />
|-<br />
| important || no || yes || no<br />
|-<br />
| instant feedback || yes || no || yes<br />
|-<br />
| collecting things || yes || ? || ?<br />
|-<br />
| mentally easy || yes || no || most of the time<br />
|-<br />
| livelihood could depend on it || no || yes || no<br />
|-<br />
| multiple threads that can be pursued || yes || yes || yes<br />
|-<br />
| social competition || no || yes || no<br />
|-<br />
| early on, you are told the point of the thing you're doing || yes || no || yes<br />
|-<br />
| varied repetitiveness (i.e. not [[wikipedia:Grinding (video gaming)|grinding]]) || yes || no || no<br />
|-<br />
| dominance reasoning/upgrades || yes || no || yes<br />
|-<br />
| randomness/surprise || yes || no || no<br />
|-<br />
| pre-made dependency tree || yes || no || no<br />
|-<br />
| tacit linearity || yes || no?<ref group=notes>not for mathematics as a whole, but a single textbook does have linear structure</ref> || no<br />
|-<br />
| large class from which to pull strategies || no || yes || yes?<br />
|-<br />
| tinkering mechanics || yes || no || yes<br />
|-<br />
| pressure to keep doing better/find flaws in what I am doing || no || yes<ref group=notes>this is more of an AI safety thing, not a math thing</ref> || no<br />
|}<br />
<br />
see also https://youtu.be/SqFu5O-oPmU?t=783<br />
<br />
==Notes==<br />
<br />
<references group=notes/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Memorization_in_mathematics&diff=853Memorization in mathematics2020-09-18T00:00:09Z<p>Issa Rice: /* Notes */</p>
<hr />
<div>Broadly speaking, there seem to be two "schools of thought" regarding memorization in mathematics, as well as a third "default position":<br />
<br />
{| class="sortable wikitable"<br />
|-<br />
! Name !! Description !! People who hold this position<br />
|-<br />
| Default position/status quo (often implicitly held) || Memorization is not just necessary to learn mathematics, but it is the primary means through which to learn mathematics. Mathematics is the study of memorizing algorithms for solving problems. Mathematics pretty much consists of rote memorization. || School teachers<br />
|-<br />
| Reactionary position || The point of mathematics isn't to just memorize things; the point is the understand why things are true and to appreciate the beauty of mathematics. One should eschew memorization in favor of trying to deeply understand the concepts. || Richard Feynman, [[wikipedia:A Mathematician's Lament|Paul Lockhart]], smart teenagers<br />
|-<br />
| Revised status quo position || Memorization is pretty important for learning mathematics, and understanding comes from having fluency/competency. Understanding is the real goal, but memorization for the purpose of gaining fluency and storing facts in long-term memory (so as to free up working memory) is actually an essential part of the learning process. || Tim Gowers,<ref>Tim Gowers. [https://gowers.wordpress.com/2018/12/22/how-craig-barton-wishes-hed-taught-maths/ "How Craig Barton wishes he’d taught maths"]. December 22, 2018. ''Gowers's Weblog''. "Of particular importance, he claims, is the fact that we cannot hold very much in our short-term memory. This was music to my ears, as it has long been a belief of mine that the limited capacity of our short-term memory is a hugely important part of the answer to the question of why mathematics looks as it does, by which I mean why, out of all the well-formed mathematical statements one could produce, the ones we find interesting are those particular ones. I have even written about this (in an article entitled Mathematics, Memory and Mental Arithmetic, which unfortunately appeared in a book and is not available online, but I might try to do something about that at some point)." and "A prejudice that was strongly confirmed was the value of mathematical fluency. Barton says, and I agree with him (and suggested something like it in my book Mathematics, A Very Short Introduction) that it is often a good idea to teach fluency first and understanding later. More precisely, in order to decide whether it is a good idea, one should assess (i) how difficult it is to give an explanation of why some procedure works and (ii) how difficult it is to learn how to apply the procedure without understanding why it works."</ref> Michael Nielsen<ref>Michel Nielsen. [http://augmentingcognition.com/ltm.html "Augmenting Long-term Memory"]. July 2018.</ref><br />
|}<br />
<br />
==See also==<br />
<br />
* [[Spaced repetition]]<br />
* [[Retention]]<br />
* [[Remembering mathematics]]<br />
<br />
==Notes==<br />
<br />
* "What we do believe is that many people's dislike of rote memorization has led them to a generalized dislike of memory, and consequently to underrate the role it plays in cognition. Memory is, in fact, a central part of cognition. But the right response to this is not immense amounts of dreary rote memorization. Rather, it's to use good tools and good judgment to memorize what truly matters." https://numinous.productions/ttft/<br />
* [https://notes.andymatuschak.org/z5d7PMFhoTTpJfGAXms4H9gSBvUDRHb43pkfn "People underrate the importance of memory because of bad experiences with rote memorization in school"]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Mathematics]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Live_math_video&diff=849Live math video2020-05-04T04:27:13Z<p>Issa Rice: </p>
<hr />
<div>Video games have "let's play" videos where someone (often an experienced player) plays through a video game while giving commentary. Similarly, there exist "live coding" videos where an experienced programmer builds a program from scratch on video, as well as "developer streams" where people live-stream themselves programming.<ref>https://github.com/bnb/awesome-developer-streams</ref> There are even videos of people solving algorithms problems in real time.<ref>[https://www.youtube.com/playlist?list=PLguYJK7ydFE4aS8fq4D6DqjF6qsysxTnx HaskellRank] is a series of videos on YouTube by Alexey Kutepov, where in each video Kutepov solves some problems from HackerRank in Haskell while explaining how to come up with the solution.</ref><ref>Master Hellish - Gaming. [https://www.youtube.com/watch?v=t-tPMY9wdE8 "CodinGame Let's Play E2 - The Decent"].</ref> There don't seem to be similar videos about math (e.g. videos where someone tries to solve a problem, understand a definition, understand a theorem, or explain a concept without preparation in real time). The closest things that seem to exist are:<br />
<br />
* Fully scripted or planned explanation videos, e.g. [[Khan Academy]], [[3Blue1Brown]]<br />
* In-person [[lecture]]s where the lecturer has not prepared at all, so works through the proofs in real time<ref>https://matheducators.stackexchange.com/questions/1598/lecturers-intentional-mistakes-as-a-teaching-tool</ref><br />
* Some written logs of people solving certain math problems<ref>https://gowers.wordpress.com/2014/07/19/mini-monomath/</ref><br />
<br />
The intended audience for a "live math" video need not be a beginner in the subject; instead, the audience can be someone who has gone through the material once, so that the video can spend time pointing out more of the interesting/subtle stuff. (This is similar to how a "let's play" video can be watched by someone who has already played through a game once, so that the video can focus on secrets/advanced techniques.)<br />
<br />
==External links==<br />
<br />
* [https://www.lesswrong.com/posts/xDWGELFkyKdBpySAf/naivetortoise-s-short-form-feed?commentId=Y58ncZ5yXjbyWPL9K discussion about speedrun videos for math]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Live_math_video&diff=848Live math video2020-05-04T04:26:59Z<p>Issa Rice: </p>
<hr />
<div>Video games have "let's play" videos where someone (often an experienced player) plays through a video game while giving commentary. Similarly, there exist "live coding" videos where an experienced programmer builds a program from scratch on video, as well as "developer streams" where people live-stream themselves programming.<ref>https://github.com/bnb/awesome-developer-streams</ref> There are even videos of people solving algorithms problems in real time.<ref>[https://www.youtube.com/playlist?list=PLguYJK7ydFE4aS8fq4D6DqjF6qsysxTnx HaskellRank] is a series of videos on YouTube by Alexey Kutepov, where in each video Kutepov solves some problems from HackerRank problems in Haskell while explaining how to come up with the solution.</ref><ref>Master Hellish - Gaming. [https://www.youtube.com/watch?v=t-tPMY9wdE8 "CodinGame Let's Play E2 - The Decent"].</ref> There don't seem to be similar videos about math (e.g. videos where someone tries to solve a problem, understand a definition, understand a theorem, or explain a concept without preparation in real time). The closest things that seem to exist are:<br />
<br />
* Fully scripted or planned explanation videos, e.g. [[Khan Academy]], [[3Blue1Brown]]<br />
* In-person [[lecture]]s where the lecturer has not prepared at all, so works through the proofs in real time<ref>https://matheducators.stackexchange.com/questions/1598/lecturers-intentional-mistakes-as-a-teaching-tool</ref><br />
* Some written logs of people solving certain math problems<ref>https://gowers.wordpress.com/2014/07/19/mini-monomath/</ref><br />
<br />
The intended audience for a "live math" video need not be a beginner in the subject; instead, the audience can be someone who has gone through the material once, so that the video can spend time pointing out more of the interesting/subtle stuff. (This is similar to how a "let's play" video can be watched by someone who has already played through a game once, so that the video can focus on secrets/advanced techniques.)<br />
<br />
==External links==<br />
<br />
* [https://www.lesswrong.com/posts/xDWGELFkyKdBpySAf/naivetortoise-s-short-form-feed?commentId=Y58ncZ5yXjbyWPL9K discussion about speedrun videos for math]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Live_math_video&diff=847Live math video2020-05-04T04:26:34Z<p>Issa Rice: </p>
<hr />
<div>Video games have "let's play" videos where someone (often an experienced player) plays through a video game while giving commentary. Similarly, there exist "live coding" videos where an experienced programmer builds a program from scratch on video, as well as "developer streams" where people live-stream themselves programming.<ref>https://github.com/bnb/awesome-developer-streams</ref> There are even videos of people solving algorithms problems in real time.<ref>[https://www.youtube.com/playlist?list=PLguYJK7ydFE4aS8fq4D6DqjF6qsysxTnx HaskellRank] is a series of videos on YouTube by Alexey Kutepov where in each video, Kutepov solves some problems from HackerRank problems in Haskell while explaining how to come up with the solution.</ref><ref>Master Hellish - Gaming. [https://www.youtube.com/watch?v=t-tPMY9wdE8 "CodinGame Let's Play E2 - The Decent"].</ref> There don't seem to be similar videos about math (e.g. videos where someone tries to solve a problem, understand a definition, understand a theorem, or explain a concept without preparation in real time). The closest things that seem to exist are:<br />
<br />
* Fully scripted or planned explanation videos, e.g. [[Khan Academy]], [[3Blue1Brown]]<br />
* In-person [[lecture]]s where the lecturer has not prepared at all, so works through the proofs in real time<ref>https://matheducators.stackexchange.com/questions/1598/lecturers-intentional-mistakes-as-a-teaching-tool</ref><br />
* Some written logs of people solving certain math problems<ref>https://gowers.wordpress.com/2014/07/19/mini-monomath/</ref><br />
<br />
The intended audience for a "live math" video need not be a beginner in the subject; instead, the audience can be someone who has gone through the material once, so that the video can spend time pointing out more of the interesting/subtle stuff. (This is similar to how a "let's play" video can be watched by someone who has already played through a game once, so that the video can focus on secrets/advanced techniques.)<br />
<br />
==External links==<br />
<br />
* [https://www.lesswrong.com/posts/xDWGELFkyKdBpySAf/naivetortoise-s-short-form-feed?commentId=Y58ncZ5yXjbyWPL9K discussion about speedrun videos for math]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=User:Issa_Rice/Gamification_table&diff=846User:Issa Rice/Gamification table2020-04-27T09:04:51Z<p>Issa Rice: </p>
<hr />
<div>{| class="sortable wikitable"<br />
|-<br />
! Property/attribute !! MMBN !! Math/AI safety !! Vimscript/vimrc<br />
|-<br />
| addicting/feeling of being engrossed || yes || no || yes<br />
|-<br />
| important || no || yes || no<br />
|-<br />
| instant feedback || yes || no || yes<br />
|-<br />
| collecting things || yes || ? || ?<br />
|-<br />
| mentally easy || yes || no || most of the time<br />
|-<br />
| livelihood could depend on it || no || yes || no<br />
|-<br />
| multiple threads that can be pursued || yes || yes || yes<br />
|-<br />
| social competition || no || yes || no<br />
|-<br />
| early on, you are told the point of the thing you're doing || yes || no || yes<br />
|-<br />
| varied repetitiveness (i.e. not [[wikipedia:Grinding (video gaming)|grinding]]) || yes || no || no<br />
|-<br />
| dominance reasoning/upgrades || yes || no || yes<br />
|-<br />
| randomness/surprise || yes || no || no<br />
|-<br />
| pre-made dependency tree || yes || no || no<br />
|-<br />
| tacit linearity || yes || no?<ref group=notes>not for mathematics as a whole, but a single textbook does have linear structure</ref> || no<br />
|-<br />
| large class from which to pull strategies || no || yes || yes?<br />
|-<br />
| tinkering mechanics || yes || no || yes<br />
|}<br />
<br />
see also https://youtu.be/SqFu5O-oPmU?t=783<br />
<br />
==Notes==<br />
<br />
<references group=notes/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Understanding_mathematical_definitions&diff=845Understanding mathematical definitions2020-04-26T21:39:10Z<p>Issa Rice: /* External links */</p>
<hr />
<div>'''Understanding mathematical definitions''' refers to the process of understanding the meaning of definitions in mathematics.<br />
<br />
==List of steps==<br />
<br />
Understanding a definition in mathematics is a complicated and laborious process. The following table summarizes some of the things one might do when trying to understand a new definition.<br />
<br />
{| class="sortable wikitable"<br />
|-<br />
! Step !! Condition !! Description !! Purpose !! Examples<br />
|-<br />
| Type-checking and parsing || || Parse each expression in the definition and understand its type. || It's easy to become confused when you don't know the meanings of expressions used in a definition. So the idea is to avoid this kind of error. || [https://machinelearning.subwiki.org/wiki/User:IssaRice/Type_checking_Pearl%27s_belief_propagation_notation]<br />
|-<br />
| Checking assumptions of objects introduced || || Remove or alter each assumption of the objects that have been introduced in the definition to see why they are necessary. || Generally you want definitions to be "expansive" in the sense of applying to many different objects. But each assumption you introduce whittles down the number of objects the definition applies to. In other words, there is tension between (1) trying to have expansive definitions, and (2) adding in assumptions/restrictions in a definition. So you want to make sure each assumption [https://wiki.lesswrong.com/wiki/Making_beliefs_pay_rent pays its rent] so that you don't make a definition narrower than it needs to be. || In the definition of convergence of a function at a point, Tao requires that <math>x_0</math> must be adherent to <math>E</math>. He then says that it is not worthwhile to define convergence when <math>x_0</math> is not adherent to <math>E</math>. (The idea is for the reader to make sure they understand why this assumption is good to have.)<br />
|-<br />
| Coming up with examples || || Come up with some examples of objects that fit the definition. Emphasize edge cases. || Examples help to train your intuition of what the object "looks like". || For monotone increasing functions, an edge case would be the constant function.<br />
|-<br />
| Coming up with counterexamples || || || As with coming up with examples, the idea is to train your intuition. But with counterexamples, you do it by making sure your conception of what the object "looks like" isn't too inclusive. [https://en.wikipedia.org/wiki/Confirmation_bias#Wason's_research_on_hypothesis-testing] ||<br />
|-<br />
| Writing out a wrong version of the definition || || || || See [https://gowers.wordpress.com/2011/09/30/basic-logic-quantifiers/ this post] by Tim Gowers (search "wrong versions" on the page).<br />
|-<br />
| Understanding the kind of definition || || Generally a definition will do one of the following things: (1) it will construct a brand new type of object (e.g. definition of a ''function''); (2) it will take an existing type of object and create a predicate to describe some subclass of that type of object (e.g. take the integers and create the predicate ''even''); (3) it will define an operation on some class of objects (e.g. take integers and define the operation of ''addition'').<br />
|-<br />
| Checking well-definedness || If the definition defines an operation || || || Checking that addition on the integers is well-defined.<br />
|-<br />
| Checking consistency with existing definition || If the definition supersedes an older definition or it clobbers up a previously defined notation || || || Addition on the reals after addition on the rationals has been defined.<br/><br/>For any function <math>f:X\to Y</math> and <math>U\subset Y</math>, the inverse image <math>f^{-1}(U)</math> is defined. On the other hand, if a function <math>f : X\to Y</math> is a bijection, then <math>f^{-1} : Y \to X</math> is a function, so its forward image <math>f^{-1}(U)</math> is defined given any <math>U\subset Y</math>. We must check that these two are the same set (or else have some way to disambiguate which one we mean). (This example is mentioned in both Tao's ''Analysis I'' and in Munkres's ''Topology''.)<br />
|-<br />
| Disambiguating similar-seeming concepts || || || The idea is that sometimes, two different definitions "step on" the same intuitive concept that someone has. || (Example from Tao) "Disjoint" and "distinct" are both terms that apply to two sets. They even sound similar. Are they the same concept? Does one imply the other? It turns out, the answer is "no" to both: <math>\{1,2\}</math> and <math>\{2,3\}</math> are distinct but not disjoint, and <math>\emptyset</math> and <math>\emptyset</math> are disjoint but not distinct.<br/><br/>Partition of a set vs partition of an interval.<br><br>In metric spaces, the difference between bounded and totally bounded. They are not the same concept in general, but one implies the other, so one should prove an implication and find a counterexample. However, in certain metric spaces (e.g. Euclidean spaces) the two concepts ''are'' identical, so one should prove the equivalence.<br><br>Sequantially compact vs covering compact: equivalent in metric spaces, but not true for more general topological spaces.<br><br>Cauchy sequence vs convergent sequence: equivalent in complete metric spaces, but not equivalent in general (although convergent implies Cauchy in general). However, even incomplete metric spaces can be completed, so the two ideas sort of end up blurring together.<br />
|-<br />
| Googling around/reading alternative texts || || Sometimes a definition is confusingly written (in one textbook) or the concept itself is confusing (e.g. because it is too abstract). It can help to look around for alternative expositions, especially ones that try to explain the intuitions/historical motivations of the definition. See also [[learning from multiple sources]]. || || In mathematical logic, the terminology for formal languages is a mess: some books define a structure as having a domain and an interpretation (so structure = (domain, interpretation)), while others define the same thing as interpretation = (domain, denotations), while still others define it as structure = (domain, signature, interpretation). The result is that in order to not be confused when e.g. reading an article online, one must become familiar with a range of definitions/terminology for the same concepts and be able to quickly adjust to the intended one in a given context.<br><br>To give another example from mathematical logic, there is the expresses vs captures distinction. But different books use terminology like arithmetically defines vs defines, represents vs expresses, etc. So again things are a mess.<br />
|-<br />
| Drawing a picture || Ideally ask this about every definition. But some subfields of math (e.g. analysis) are a lot more visual than others (e.g. mathematical logic). || || || Pugh's ''Real Mathematical Analysis'', Needham's ''Visual Complex Analysis''.<br />
|-<br />
| Chunking/processing level by level || If a definition involves multiple layers of quantifiers. || || || See Tao's definitions for <math>\varepsilon</math>-close, eventually <math>\varepsilon</math>-close, <math>\varepsilon</math>-adherent, etc.<br />
|-<br />
| Asking some stock questions for a given field || || || || In computability theory, you should always be asking "Is this function total or partial?" or else you risk becoming confused.<br><br>In linear algebra (when done in a coordinate-free way) one should always ask "is this vector space finite-dimensional?"<br><br>I think some other fields also have this kind of question that you should always be asking of objects.<br />
|}<br />
<br />
==Ways to speed things up==<br />
<br />
There are several ways to speed up/skip steps in the above table, so that one doesn't spend too much time on definitions.<br />
<br />
===Lazy understanding===<br />
<br />
One idea is to skip trying to really grok a definition at first, and see what bad things might happen. The idea is to then only come back to the definition when one needs details from it. This is similar to [[wikipedia:Lazy evaluation|lazy evaluation]] in programming.<br />
<br />
===Building off similar definitions===<br />
<br />
If a similar definition has just been defined (and one has taken the time to understand it), a similar definition will not need as much time to understand (one only needs to focus on the differences between the two definitions). For instance, after one has understood set union, one can relatively quickly understand set intersection.<br />
<br />
===Relying on experience and intuition===<br />
<br />
Eventually, after one has studied a lot of mathematics, understanding definitions becomes more automatic. One can gain an intuition of which steps are important for a particular definition, or when to spend some time and when to move quickly. One naturally asks the important questions, and can let curiosity guide one's exploration.<br />
<br />
==When reading textbooks==<br />
<br />
Most textbooks will assume the audience is a competent mathematician, so won't bother to explain what you should be doing at each definition.<br />
<br />
In definitions, it is traditional to use "if" to mean "if and only if". (Some authors use "iff" in definitions.)<br />
<br />
==See also==<br />
<br />
* [[Understanding theorems]]<br />
<br />
==External links==<br />
<br />
* http://www.abstractmath.org/MM/MMDefs.htm<br />
* https://www.maa.org/node/121566 lists some other steps for both theorems and definitions<br />
* https://en.wikipedia.org/wiki/Reverse_mathematics -- this one is more important for [[understanding theorems]]. But the idea is to think, for each theorem, its place in the structure of the theory/relationship to other theorems. see for example https://en.wikipedia.org/wiki/Completeness_of_the_real_numbers#Forms_of_completeness and https://en.wikipedia.org/wiki/Axiom_of_choice#Equivalents and https://en.wikipedia.org/wiki/Mathematical_induction#Equivalence_with_the_well-ordering_principle John Stillwell (who also wrote ''Mathematics and Its History'') has a book called ''Reverse Mathematics'' that might explain this at an accessible level. See also Michael J. Schramm's ''Introduction to Real Analysis'', which has the most complete "implication structure" between all the properties of the real line I've seen in a textbook. See also James Propp's paper [https://arxiv.org/abs/1204.4483 "Real Analysis in Reverse"].<br />
* https://gowers.wordpress.com/2011/10/23/definitions/<br />
* https://gowers.wordpress.com/2011/10/25/alternative-definitions/<br />
* I think Tim Gowers's [https://gowers.wordpress.com/category/cambridge-teaching/basic-logic/ basic logic] series of blog posts has some discussions about definitions<br />
* https://www.google.com/search?q=%22There%20are%20good%20reasons%20why%20the%20theorems%20should%20all%20be%20easy%20and%20the%20definitions%20hard.%22<br />
<br />
[[Category:Mathematics]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=844Generality versus core insight trade-off in theorem statements2020-04-24T23:06:54Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between <math>f(a)</math> and <math>f(b)</math>. But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we could let <math>a</math> and <math>b</math> be any real numbers, but we could restrict the theorem to the case <math>a < b</math>, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any <math>t</math> between <math>f(a)</math> and <math>f(b)</math>, there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = t</math> || there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math><br />
|-<br />
| <math>a,b</math> are arbitrary real numbers (including the case <math>a > b</math>, which makes <math>[a,b]</math> empty so the theorem becomes vacuous, and also including the case <math>a=b</math> so the function consists of a single point, which makes the theorem trivial) || <math>a,b</math> are real numbers such that <math>a<b</math><br />
|-<br />
| <math>f(a)</math> and <math>f(b)</math> can be anything (we don't add hypotheses concerning their values) || <math>f(a) < 0</math> and <math>f(b) > 0</math><br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=843Generality versus core insight trade-off in theorem statements2020-04-24T23:06:39Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between <math>f(a)</math> and <math>f(b)</math>. But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we could let <math>a</math> and <math>b</math> be any real numbers, but we could restrict the theorem to the case <math>a < b</math>, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any <math>t</math> between <math>f(a)</math> and <math>f(b)</math>, there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math> || there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math><br />
|-<br />
| <math>a,b</math> are arbitrary real numbers (including the case <math>a > b</math>, which makes <math>[a,b]</math> empty so the theorem becomes vacuous, and also including the case <math>a=b</math> so the function consists of a single point, which makes the theorem trivial) || <math>a,b</math> are real numbers such that <math>a<b</math><br />
|-<br />
| <math>f(a)</math> and <math>f(b)</math> can be anything (we don't add hypotheses concerning their values) || <math>f(a) < 0</math> and <math>f(b) > 0</math><br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=841Generality versus core insight trade-off in theorem statements2020-04-24T23:05:21Z<p>Issa Rice: Issa Rice moved page Generality versus core insight tradeoff in theorems to Generality versus core insight trade-off in theorem statements</p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between <math>f(a)</math> and <math>f(b)</math>. But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case <math>a < b</math>, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any <math>t</math> between <math>f(a)</math> and <math>f(b)</math>, there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math> || there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math><br />
|-<br />
| <math>a,b</math> are arbitrary real numbers (including the case <math>a > b</math>, which makes <math>[a,b]</math> empty so the theorem becomes vacuous, and also including the case <math>a=b</math> so the function consists of a single point, which makes the theorem trivial) || <math>a,b</math> are real numbers such that <math>a<b</math><br />
|-<br />
| <math>f(a)</math> and <math>f(b)</math> can be anything (we don't add hypotheses concerning their values) || <math>f(a) < 0</math> and <math>f(b) > 0</math><br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_tradeoff_in_theorems&diff=842Generality versus core insight tradeoff in theorems2020-04-24T23:05:21Z<p>Issa Rice: Issa Rice moved page Generality versus core insight tradeoff in theorems to Generality versus core insight trade-off in theorem statements</p>
<hr />
<div>#REDIRECT [[Generality versus core insight trade-off in theorem statements]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=840Generality versus core insight trade-off in theorem statements2020-04-24T23:04:41Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between <math>f(a)</math> and <math>f(b)</math>. But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case <math>a < b</math>, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any <math>t</math> between <math>f(a)</math> and <math>f(b)</math>, there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math> || there is <math>c</math> in <math>[a,b]</math> such that <math>f(c) = 0</math><br />
|-<br />
| <math>a,b</math> are arbitrary real numbers (including the case <math>a > b</math>, which makes <math>[a,b]</math> empty so the theorem becomes vacuous, and also including the case <math>a=b</math> so the function consists of a single point, which makes the theorem trivial) || <math>a,b</math> are real numbers such that <math>a<b</math><br />
|-<br />
| <math>f(a)</math> and <math>f(b)</math> can be anything (we don't add hypotheses concerning their values) || <math>f(a) < 0</math> and <math>f(b) > 0</math><br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Category:Coinage&diff=839Category:Coinage2020-04-24T23:01:12Z<p>Issa Rice: </p>
<hr />
<div>This category tracks terms that have been invented on this wiki. It is not an aim of this wiki to invent new terms (in fact, the wiki is trying to do that as little as possible, by sticking to existing terms and trying to be canonical). However, sometimes a suitable term cannot be found in time, so a new term might be used. Hopefully, tracking new terms here makes it easier to manage (e.g. periodically looking through this list to detect existing standard terms in light of new information).</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Category:Coinage&diff=838Category:Coinage2020-04-24T23:01:02Z<p>Issa Rice: </p>
<hr />
<div>This category tracks terms that have been invented on this wiki. It is not an aim of this wiki to invent new terms (in fact, the wiki is trying to do that as little as possible, by sticking to existing terms and trying to be canonical). However, sometimes a suitable term cannot be found in time, so a new term might be used. Hopefully tracking new terms here makes it easier to manage (e.g. periodically looking through this list to detect existing standard terms in light of new information).</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Category:Coinage&diff=837Category:Coinage2020-04-24T22:59:46Z<p>Issa Rice: </p>
<hr />
<div>This category tracks terms that have been invented on this wiki. It is not an aim of this wiki to invent new terms (in fact, the wiki is trying to do that as little as possible, by sticking to existing terms and trying to be canonical). However, sometimes a suitable term cannot be found in time, so a new term might be used.</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Combinatorial_explosion_of_questions_and_errors&diff=836Combinatorial explosion of questions and errors2020-04-24T22:59:03Z<p>Issa Rice: </p>
<hr />
<div>(there might be a more standard term for this)<br />
<br />
Non-interactive explanations (e.g. textbooks, blog posts, and YouTube videos, in contrast to interactive explanations like classrooms and tutoring) face the problem of '''combinatorial explosion of questions and errors'''. As the length of the explanation increases, there will be more and more potential questions a [[learner]] could ask, as well as more and more potential errors in reasoning the learner could make (or misconceptions they could have). As the explanation is non-interactive, the [[explainer]] must anticipate in advance which questions and errors are most likely for the intended audience, and must decide how extensive the explanation will be.<br />
<br />
Consider the experience of reading a mathematical proof. Each step in the proof is an opportunity for the reader to become confused, as they might not understand a calculation or reasoning that is being done.<br />
<br />
Here is an example of this sort of thing, as related by Nate Soares:<ref>https://www.greaterwrong.com/posts/w5F4w8tNZc6LcBKRP/on-learning-difficult-things</ref><br />
<br />
<blockquote>The problem is, most of the time that I get stuck, I get stuck on something incredibly stupid. I’ve either misread something somewhere or misremembered a concept from earlier in the book. Usually, someone looking over my shoulder could correct me in ten seconds with three words.<br><br>“Dude. Disjunction. ''Dis''junction.”<br><br>These are the things that eat my days.</blockquote><br />
<br />
==Ways to mitigate==<br />
<br />
For the [[explainer]]:<br />
<br />
* test the explanation on many readers to catch potential errors/questions, so that these can be cached<br />
* leave the explanation for a while to make it fresher in your mind<br />
* move to a more interactive format<br />
* allow comments (if it's a blog post)<br />
* explain more of the background material to "uniformize" the audience, to make the audience more predictable<br />
* stipulate conditions on the audience (e.g. say that X and Y are required background reading, or that this is intended for intermediate students)<br />
<br />
For the [[learner]]:<br />
<br />
* make use of peers/tutors/TAs/teachers/question-and-answer-sites (e.g. if you get stuck reading a textbook, ask a peer)<br />
* [[Learning from multiple sources|make use of multiple explanations]]<br />
<br />
==Related phenomena==<br />
<br />
* the thing where course instructors reuse old exam/homework problems it's hard to come up with new problems (this problem also arises from the static/non-interactive nature of learning material)<br />
* the problem with storing static example problems in [[spaced repetition software]], because the user will just memorize the answer instead of treating it like a new problem (this problem also arises from the static/non-interactive nature of learning material)<br />
* inferential distance/lack of uniform background of learners (this problem also arises from the difficulty of anticipating the identity of the learner or how they will react); see e.g. "“There are 10 pre-requisites for understanding concept X. Most people have 6 or seven, and then I write a blog post for each of the 10. Most people, most of the time, feel like they’re reading a thing they already know, yet I did have to write all 10 to be able to get everyone to take the step forward together.”"<ref>https://www.greaterwrong.com/posts/Q924oPJzK92FifuFg/write-a-thousand-roads-to-rome/comment/zCSb8aGbfuLeKKwBP</ref><br />
* there is a kind of "reverse" or "ironic" problem that happens where the explainer ''did'' correctly anticipate a question, but the reader fails to anticipate that the explainer anticipates this, so the reader stops reading as soon as they become confused, when in fact in the next paragraph (or next section or whatever) the question is answered. Some authors try to prevent this by saying things like "more on this soon" or "see section 4.5.3 for details".<br />
* in arguments/debates (which are a special kind of explanation), there is a combinatorial explosion of ''potential'' arguments each side could make, even if the ''actual'' path of arguments is just a single path through this tree. See https://arxiv.org/abs/1805.00899 for more on this.<br />
<br />
==See also==<br />
<br />
* [[wikipedia:Combinatorial explosion]]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Explainer-side_versus_learner-side_optimization&diff=835Explainer-side versus learner-side optimization2020-04-24T22:58:49Z<p>Issa Rice: </p>
<hr />
<div>Consider two kinds of meaning of the phrase "optimizing learning":<br />
<br />
* You are an [[explainer]] and you want to construct some sort of idealized box, such that if you shove in [[learner]]s into this box, they come out the other end having mastered (good retention, good transfer of learning, etc.) the learning material.<br />
* You are a [[learner]] born into a world with horrible explanations. How do you fend for yourself in this cruel world, by seeking the good explanations, customizing your studying style to match your learning style, and integrating the best research on learning into your study habits?<br />
<br />
The former is called '''explainer-side optimization''' and the latter is called '''learner-side optimization''' (until I find better/more standard terminology).<br />
<br />
In an altruistic sense, what matters for content creation is the explainer-side optimization or doing explainer-side optimization to help ''other people'' do their own learner-side optimization.<br />
<br />
Common ground between both explainer-side and learner-side optimization: knowing the various "effects" that have been discovered ([[spacing effect]], [[testing effect]], etc.) is useful for both (e.g. the explainer can integrate spacing into the learning material by referring to earlier parts from later parts in a space-y way, and the learner can use [[spaced repetition software]]). It's the same knowledge underlying both, but the application is different.<br />
<br />
==External links==<br />
<br />
* [https://wiki.lesswrong.com/wiki/A_sense_that_more_is_possible A sense that more is possible]<br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Incubation-based_studying&diff=834Incubation-based studying2020-04-24T22:58:35Z<p>Issa Rice: </p>
<hr />
<div>'''Incubation-based studying''' (there might be a better or more standard term) is the idea that one can make more progress on solving a problem/displaying creativity by working on the problem in a concentrated manner, then leaving the problem aside, then coming back to the problem after a break (it is after the break that the problem gets solved).<br />
<br />
The important thing here is that this term should be agnostic about the underlying mechanism (so maybe "incubation" isn't such a good term after all, since it seems to single out the unconscious processing mechanism), or at least there should be a term reserved to refer to the overall phenomenon in a mechanism-agnostic manner. It might be due to "subconscious processing" or it might be due to looking fresh at the problem, or it might be due to something else entirely, or some combination of these things.<br />
<br />
Of course, depending on the mechanism, specific strategies when studying can change. For example, (1) how hard one tries during the initial concentrated session, (2) how long the break is, (3) how many "parallel threads" to have for different problems, and (4) what one does during the break, are all parameters that can be tweaked when one applies this technique, and their optimal values seem to depend on the underlying mechanism. For example, if "subconscious processing" is the underlying mechanism, then presumably one cannot "subconsciously work on" hundreds of problems simultaneously. On the other hand, if the underlying mechanism is that this method gives a "fresh look" at problems, then one might want to attempt as many problems as possible, to "flush the buffer".<br />
<br />
==Notes==<br />
<br />
TODO: process the quotes below into the article.<br />
<br />
In his book ''How to Become a Straight-A Student'' [[Cal Newport]] writes:<br />
<br />
<blockquote>Next, try to solve the problem in the most obvious way possible. This, of course, probably won't work, because most difficult problems are tricky by nature. By failing in this initial approach, however, you will have at least identified what makes this problem hard. Now you are ready to try to come up with a real solution.<br /><br/ >The next step is counterintuitive. After you've primed the problem, put away your notes and move on to something else. Instead of trying to force a solution, think about the problem in between other activities. As you walk across campus, wait in line at the dining hall, or take a shower, bring up the problem in your head and start thinking through solutions. You might even want to go on a quiet hike or long car ride dedicated entirely to mulling over the question at hand.<br /><br />More often than not, after enough mobile consideration, you will finally stumble across a solution. Only then should you schedule more time to go back to the problem set, write it down formally, and work out the kinks. It's unclear exactly ''why'' solving problems is easier when you're on the go, but, whatever the explanation, it has worked for many students. Even better, it saves a lot of time, since most of your thinking has been done in little interludes between other activities, not during big blocks of valuable free time.</blockquote><br />
<br />
In her book ''A Mind for Numbers'', [[Barbara Oakley]] distinguishes between "focused mode" (same thing as [[wikipedia:task-positive network]]?) and "diffuse mode" (same thing as [[wikipedia:task-negative network]]?):<br />
<br />
<blockquote>Focused-mode thinking is essential for studying math and science. It involves a direct approach to solving problems using rational, sequential, analytical approaches. [...] Diffuse-mode thinking is also essential for learning math and science. It allows us to suddenly gain a new insight on a problem we’ve been struggling with and is associated with “big-picture” perspectives. Diffuse-mode thinking is what happens when you relax your attention and just let your mind wander. This relaxation can allow different areas of the brain to hook up and return valuable insights.</blockquote><br />
<br />
In his book ''The Mind Is Flat'', Nick Chater doesn't deny the phenomenon, but disagrees that this sort of incubation-based thinking works due to unconsciously working on the problem:<br />
<br />
<blockquote>Poincaré and Hindemith cannot possibly be right. If they are spending their days actively thinking about other things, their brains are not unobtrusively solving deep mathematical problems or composing complex pieces of music, perhaps over days or weeks, only to reveal the results in a sudden flash. Yet, driven by the intuitive appeal of unconscious thought, psychologists have devoted a great deal of energy in searching for evidence for unconscious mental work. In these studies, they typically give people some tricky problems to solve (e.g. a list of anagrams); after a relatively short period of time, they might instruct participants to continue, to take a break, to do another similar or different mental task, or even get a night’s sleep, before resuming their problems. According to the ‘unconscious work’ perspective, resuming after a break should lead to a sudden improvement in performance, compared with people who just keep going with the task. Studies in this area are numerous and varied, but I think the conclusions are easily summarized. First, the effects of breaks of all kinds are either negligible or non-existent: if unconscious work takes place at all, it is sufficiently ineffectual to be barely detectable, despite a century of hopeful attempts. Second, many researchers have argued that the minor effects of taking a break – and indeed, Poincaré’s and Hindemith’s intuitions – have a much more natural explanation, which involves no unconscious thought at all.<br /><br />The simplest version of the idea comes from thinking about why one gets stuck with a difficult problem in the first place. What is special about such problems is that you can’t solve them through a routine set of steps (in contrast, say, to adding up columns of numbers, which is laborious but routine) – you have to look at the problem in the ‘right way’ before you can make progress (e.g. with an anagram, you might need to focus on a few key letters; in deep mathematics or musical composition, the space of options might be large and varied). So ideally, the right approach would be to fluidly explore the range of possible ‘angles’ on the problem, until hitting on the right one. Yet this is not so easy: once we have been looking at the same problem for a while, we feel ourselves to be stuck or going round in circles. Indeed, the cooperative computational style of the brain makes this difficult to avoid.</blockquote><br />
<br />
http://paulgraham.com/top.html<br />
<br />
==See also==<br />
<br />
* [[Interleaving]]<br />
<br />
==External links==<br />
<br />
* [[wikipedia:Incubation (psychology)]]<br />
* https://www.greaterwrong.com/posts/SEq8bvSXrzF4jcdS8/tips-and-tricks-for-answering-hard-questions<br />
* [[wikipedia:Default mode network]]<br />
* [[wikipedia:Einstellung effect]]<br />
* https://pdfs.semanticscholar.org/76c6/ce0abf6f67f2c089df372261203989b43903.pdf HT [https://www.gwern.net/newsletter/2019/04 gwern]<br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=833Concept dependency tracking2020-04-24T22:58:25Z<p>Issa Rice: </p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of switching back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the dependency graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your enthusiasm will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
I think one of the more valuable forms of feedback an [[explainer]] can receive is the specific points of an explanation where the [[learner]]'s attention starts to fade, where it gets boring.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Scope_for_improvement&diff=832Scope for improvement2020-04-24T22:58:13Z<p>Issa Rice: </p>
<hr />
<div>(There might already be a standard term for this that I don't know about.)<br />
<br />
By '''scope for improvement''' of a skill or learning technique, I mean something like the difference between "how much a person highly skilled in this technique (i.e. a virtuoso user) gets out of it" versus "how much a novice at this technique gets out of it".<br />
<br />
It's sort of related to terms like "high variance" and "heavy-tailed"; a skill with a lot of scope for improvement will have a distribution that is more skewed right, with some people being ''much'' better than most people.<br />
<br />
Thinking in terms of scope for improvement encourages looking at techniques in terms of "What can I get out of this if I master this technique?" rather than "How much did the average participant in this study gain out of this technique?"<br />
<br />
There is a distinction between interpersonal skill level differences (how good is the best person at the technique compared to you) and intrapersonal differences (how much can you improve if you practice). The differences are related because interpersonal differences provide evidence for potential intrapersonal differences. Strictly speaking, scope for improvement (in the sense I am thinking about) is only about the intrapersonal difference, or rather the interpersonal average of intrapersonal differences.<br />
<br />
==Relation to idea inoculation==<br />
<br />
Scope for improvement seems related to [[idea inoculation]] and [[inferential distance]]. If the scope for improvement of a technique is not made clear on initial exposure to the technique (e.g. due to a large inferential distance between the [[Explainer|person explaining the technique]] and the [[Learner|person reading about the technique]], or the person explaining the technique not being an expert), then this person can develop a resistance to further attempts to explain the technique (due to idea inoculation).<ref>Duncan A. Sabien. [https://medium.com/@ThingMaker/idea-inoculation-inferential-distance-848836a07a5b "Idea Inoculation + Inferential Distance"]. July 27, 2018. ''Medium''. Retrieved October 12, 2018.</ref><ref>Kaj Sotala. [https://news.ycombinator.com/item?id=10911653 Comment on "The Happiness Code: Cold, hard rationality"]. January 15, 2016. ''Hacker News''. Retrieved October 12, 2018.</ref><ref>Duncan Sabien. [https://www.greaterwrong.com/posts/pjGGqmtqf8vChJ9BR/unofficial-canon-on-applied-rationality/comment/rtmmvSjyDw8EMXRW8 Comment on "Unofficial Canon on Applied Rationality"]. February 15, 2016. ''LessWrong''. Retrieved October 12, 2018.</ref><br />
<br />
==Examples==<br />
<br />
* [[Spaced repetition]] seems like a [[learning technique]] with large scope for improvement. My impression is that most people use it for things like learning foreign language vocabulary and other "isolated facts" they want to memorize, and conclude that there is little scope for improvement. What they don't do is look at the "masters of spaced repetition" and try to cultivate the skill of using a spaced repetition program for understanding. [[Michael Nielsen]]: "I'm particularly grateful to Andy Matuschak for many thoughtful and enjoyable conversations, and especially for pointing out how unusual is the view that Anki can be a virtuoso skill for understanding, not just a means of remembering facts."<ref>Michael A. Nielsen. [http://augmentingcognition.com/ltm.html "Augmenting Long-term Memory"]. July 2018. Retrieved October 12, 2018.</ref><br />
* Probably many mundane skills like the skill of counting has limited scope for improvement. Most people can't learn to count many times faster or many times more accurately or to very large numbers. (At that point, they would probably want to make use of a counting device that just supports an increment operation.)<br />
* Probably a learning technique like highlighting/underlining also has limited scope for improvement.<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
==External links==<br />
<br />
* https://www.lesswrong.com/posts/Nu3wa6npK4Ry66vFp/a-sense-that-more-is-possible<br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Live_math_video&diff=831Live math video2020-04-24T22:57:53Z<p>Issa Rice: </p>
<hr />
<div>Video games have "let's play" videos where someone (often an experienced player) plays through a video game while giving commentary. Similarly, there exist "live coding" videos where an experienced programmer builds a program from scratch on video, as well as "developer streams" where people live-stream themselves programming.<ref>https://github.com/bnb/awesome-developer-streams</ref> There are even videos of people solving algorithms problems in real time.<ref>Master Hellish - Gaming. [https://www.youtube.com/watch?v=t-tPMY9wdE8 "CodinGame Let's Play E2 - The Decent"].</ref> There don't seem to be similar videos about math (e.g. videos where someone tries to solve a problem, understand a definition, understand a theorem, or explain a concept without preparation in real time). The closest things that seem to exist are:<br />
<br />
* Fully scripted or planned explanation videos, e.g. [[Khan Academy]], [[3Blue1Brown]]<br />
* In-person [[lecture]]s where the lecturer has not prepared at all, so works through the proofs in real time<ref>https://matheducators.stackexchange.com/questions/1598/lecturers-intentional-mistakes-as-a-teaching-tool</ref><br />
* Some written logs of people solving certain math problems<ref>https://gowers.wordpress.com/2014/07/19/mini-monomath/</ref><br />
<br />
The intended audience for a "live math" video need not be a beginner in the subject; instead, the audience can be someone who has gone through the material once, so that the video can spend time pointing out more of the interesting/subtle stuff. (This is similar to how a "let's play" video can be watched by someone who has already played through a game once, so that the video can focus on secrets/advanced techniques.)<br />
<br />
==External links==<br />
<br />
* [https://www.lesswrong.com/posts/xDWGELFkyKdBpySAf/naivetortoise-s-short-form-feed?commentId=Y58ncZ5yXjbyWPL9K discussion about speedrun videos for math]<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Category:Coinage&diff=830Category:Coinage2020-04-24T22:57:38Z<p>Issa Rice: Created page with "This category tracks terms that have been invented on this wiki. It is not an aim of this wiki to invent new terms (in fact, the wiki is trying to do the opposite, which is to..."</p>
<hr />
<div>This category tracks terms that have been invented on this wiki. It is not an aim of this wiki to invent new terms (in fact, the wiki is trying to do the opposite, which is to organize existing information). However, sometimes a suitable term cannot be found in time, so a new term might be used.</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Discursiveness_(explanations)&diff=829Discursiveness (explanations)2020-04-24T22:56:01Z<p>Issa Rice: </p>
<hr />
<div>In the context of explanations, '''discursiveness''' refers to the extent to which an explanation references subjects outside the main topic at hand. Discursiveness takes two parameters: the explanation and the topic. Fixing the explanation and varying the topic parameter, the same explanation can be seen as more or less discursive under different topics. This terminology is nonstandard (it's unclear what the standard terminology is, if there is any).<br />
<br />
==Trade-offs==<br />
<br />
From the perspective of the [[explainer]], the trade-off is between getting to the point as swiftly as possible so as to cover the topic at hand (less discursive) versus covering more "external" details: nearby subjects, historical background, and analogies (more discursive).<br />
<br />
The choice depends partly on the audience: someone completely new to the topic may have their working memory overloaded simply from the topic at hand and will find the "extraneous" details distracting, while someone with familiarity of the topic or aiming for a more advanced understanding will want to connect it to related subjects.<br />
<br />
==Examples==<br />
<br />
* Both ''Gödel, Escher, Bach'' and ''Computability and Logic'' discuss ideas like computability, recursion, first-order logic, and Gödel's incompleteness theorems. However, the former goes into digressions about art and music, history, fictional stories, and so on, while the latter is a straightforward tutorial through the math. In the terminology of this page, the former book is more discursive (where the topic is computability and logic).<br />
* In decision theory, both [https://intelligence.org/files/TDT.pdf "Timeless Decision Theory"] and [https://arxiv.org/abs/1710.05060 "Functional Decision Theory: A New Theory of Instrumental Rationality"] describe a new logical decision theory. However, the former paper goes into discussions about free will, reductionism, and other more philosophical topics (section 13), while the latter paper is a straightforward description of the decision theory. In the terminology of this page, the former paper is more discursive (where the topic is "timeless decision theory" for the first paper and "functional decision theory" for the second paper).<br />
* Various books entitled "X for mathematicians", "X for economists", etc., are meant for professionals in those subjects trying to learn X. Such books may go into digressions/examples familiar to those in the area.<br />
<br />
==See also==<br />
<br />
* [[Subtle point]]<br />
<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=828Generality versus core insight trade-off in theorem statements2020-04-24T22:55:02Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between f(a) and f(b). But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case a < b, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any t between f(a) and f(b), there is c in [a,b] such that f(c) = 0 || there is c in [a,b] such that f(c) = 0<br />
|-<br />
| a,b are arbitrary real numbers (including the case a > b, which makes [a,b] empty so the theorem becomes vacuous, and also including the case a=b so the function consists of a single point, which makes the theorem trivial) || a,b are real numbers such that a<b<br />
|-<br />
| f(a) and f(b) can be anything (we don't add hypotheses concerning their values) || f(a) < 0 and f(b) > 0<br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]<br />
[[Category:Coinage]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=827Generality versus core insight trade-off in theorem statements2020-04-24T22:54:36Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between f(a) and f(b). But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case a < b, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any t between f(a) and f(b), there is c in [a,b] such that f(c) = 0 || there is c in [a,b] such that f(c) = 0<br />
|-<br />
| a,b are arbitrary real numbers (including the case a > b, which makes [a,b] empty so the theorem becomes vacuous, and also including the case a=b so the function consists of a single point, which makes the theorem trivial) || a,b are real numbers such that a<b<br />
|-<br />
| f(a) and f(b) can be anything (we don't add hypotheses concerning their values) || f(a) < 0 and f(b) > 0<br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .<br />
<br />
[[Category:Mathematics]]</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=826Generality versus core insight trade-off in theorem statements2020-04-24T22:52:10Z<p>Issa Rice: </p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between f(a) and f(b). But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case a < b, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any t between f(a) and f(b), there is c in [a,b] such that f(c) = 0 || there is c in [a,b] such that f(c) = 0<br />
|-<br />
| a,b are arbitrary real numbers (including the case a > b, which makes [a,b] empty so the theorem becomes vacuous, and also including the case a=b so the function consists of a single point, which makes the theorem trivial) || a,b are real numbers such that a<b<br />
|-<br />
| f(a) and f(b) can be anything (we don't add hypotheses concerning their values) || f(a) < 0 and f(b) > 0<br />
|}<br />
<br />
Once the core insight of the theorem is absorbed, it is of course most useful to have the theorem stated in the most general way possible, so that it can be quickly applied to other problems. But when one is first learning the theorem, it can be distracting to consider all of the vacuous, trivial, uninteresting cases; it is most useful to gain the core insight quickly .</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Generality_versus_core_insight_trade-off_in_theorem_statements&diff=825Generality versus core insight trade-off in theorem statements2020-04-24T22:48:14Z<p>Issa Rice: Created page with "(there might be a standard term for this; if so, I would like to know) In math, there is often a tradeoff between stating a theorem in the most general/applicable way possibl..."</p>
<hr />
<div>(there might be a standard term for this; if so, I would like to know)<br />
<br />
In math, there is often a tradeoff between stating a theorem in the most general/applicable way possible, and stating it in such a way as to reveal the core difficulty or insight.<br />
<br />
For example, consider the [[calculus:Intermediate value theorem]] [https://calculus.subwiki.org/wiki/Intermediate_value_theorem]. It's possible to state the theorem as saying the function attains each value between f(a) and f(b). But this introduces an extra parameter which takes up more working memory. It is simpler to state it as saying the function equals zero somewhere. Similarly, we would let a and b be any real numbers, but we could restrict the theorem to the case a < b, which is where all of the interesting stuff happens.<br />
<br />
{| class="wikitable"<br />
! More general/applicable !! Core insight version/the most interesting case<br />
|-<br />
| for any t between f(a) and f(b), there is c in [a,b] such that f(c) = 0 || there is c in [a,b] such that f(c) = 0<br />
|-<br />
| a,b are arbitrary real numbers || a,b are real numbers such that a<b<br />
|-<br />
| f(a) and f(b) can be anything (we don't add hypotheses concerning their values) || f(a) < 0 and f(b) > 0<br />
|}</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Live_math_video&diff=824Live math video2020-04-17T03:20:06Z<p>Issa Rice: </p>
<hr />
<div>Video games have "let's play" videos where someone (often an experienced player) plays through a video game while giving commentary. Similarly, there exist "live coding" videos where an experienced programmer builds a program from scratch on video, as well as "developer streams" where people live-stream themselves programming.<ref>https://github.com/bnb/awesome-developer-streams</ref> There are even videos of people solving algorithms problems in real time.<ref>Master Hellish - Gaming. [https://www.youtube.com/watch?v=t-tPMY9wdE8 "CodinGame Let's Play E2 - The Decent"].</ref> There don't seem to be similar videos about math (e.g. videos where someone tries to solve a problem, understand a definition, understand a theorem, or explain a concept without preparation in real time). The closest things that seem to exist are:<br />
<br />
* Fully scripted or planned explanation videos, e.g. [[Khan Academy]], [[3Blue1Brown]]<br />
* In-person [[lecture]]s where the lecturer has not prepared at all, so works through the proofs in real time<ref>https://matheducators.stackexchange.com/questions/1598/lecturers-intentional-mistakes-as-a-teaching-tool</ref><br />
* Some written logs of people solving certain math problems<ref>https://gowers.wordpress.com/2014/07/19/mini-monomath/</ref><br />
<br />
The intended audience for a "live math" video need not be a beginner in the subject; instead, the audience can be someone who has gone through the material once, so that the video can spend time pointing out more of the interesting/subtle stuff. (This is similar to how a "let's play" video can be watched by someone who has already played through a game once, so that the video can focus on secrets/advanced techniques.)<br />
<br />
==External links==<br />
<br />
* [https://www.lesswrong.com/posts/xDWGELFkyKdBpySAf/naivetortoise-s-short-form-feed?commentId=Y58ncZ5yXjbyWPL9K discussion about speedrun videos for math]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Scope_for_improvement&diff=823Scope for improvement2020-04-01T22:16:50Z<p>Issa Rice: </p>
<hr />
<div>(There might already be a standard term for this that I don't know about.)<br />
<br />
By '''scope for improvement''' of a skill or learning technique, I mean something like the difference between "how much a person highly skilled in this technique (i.e. a virtuoso user) gets out of it" versus "how much a novice at this technique gets out of it".<br />
<br />
It's sort of related to terms like "high variance" and "heavy-tailed"; a skill with a lot of scope for improvement will have a distribution that is more skewed right, with some people being ''much'' better than most people.<br />
<br />
Thinking in terms of scope for improvement encourages looking at techniques in terms of "What can I get out of this if I master this technique?" rather than "How much did the average participant in this study gain out of this technique?"<br />
<br />
There is a distinction between interpersonal skill level differences (how good is the best person at the technique compared to you) and intrapersonal differences (how much can you improve if you practice). The differences are related because interpersonal differences provide evidence for potential intrapersonal differences. Strictly speaking, scope for improvement (in the sense I am thinking about) is only about the intrapersonal difference, or rather the interpersonal average of intrapersonal differences.<br />
<br />
==Relation to idea inoculation==<br />
<br />
Scope for improvement seems related to [[idea inoculation]] and [[inferential distance]]. If the scope for improvement of a technique is not made clear on initial exposure to the technique (e.g. due to a large inferential distance between the [[Explainer|person explaining the technique]] and the [[Learner|person reading about the technique]], or the person explaining the technique not being an expert), then this person can develop a resistance to further attempts to explain the technique (due to idea inoculation).<ref>Duncan A. Sabien. [https://medium.com/@ThingMaker/idea-inoculation-inferential-distance-848836a07a5b "Idea Inoculation + Inferential Distance"]. July 27, 2018. ''Medium''. Retrieved October 12, 2018.</ref><ref>Kaj Sotala. [https://news.ycombinator.com/item?id=10911653 Comment on "The Happiness Code: Cold, hard rationality"]. January 15, 2016. ''Hacker News''. Retrieved October 12, 2018.</ref><ref>Duncan Sabien. [https://www.greaterwrong.com/posts/pjGGqmtqf8vChJ9BR/unofficial-canon-on-applied-rationality/comment/rtmmvSjyDw8EMXRW8 Comment on "Unofficial Canon on Applied Rationality"]. February 15, 2016. ''LessWrong''. Retrieved October 12, 2018.</ref><br />
<br />
==Examples==<br />
<br />
* [[Spaced repetition]] seems like a [[learning technique]] with large scope for improvement. My impression is that most people use it for things like learning foreign language vocabulary and other "isolated facts" they want to memorize, and conclude that there is little scope for improvement. What they don't do is look at the "masters of spaced repetition" and try to cultivate the skill of using a spaced repetition program for understanding. [[Michael Nielsen]]: "I'm particularly grateful to Andy Matuschak for many thoughtful and enjoyable conversations, and especially for pointing out how unusual is the view that Anki can be a virtuoso skill for understanding, not just a means of remembering facts."<ref>Michael A. Nielsen. [http://augmentingcognition.com/ltm.html "Augmenting Long-term Memory"]. July 2018. Retrieved October 12, 2018.</ref><br />
* Probably many mundane skills like the skill of counting has limited scope for improvement. Most people can't learn to count many times faster or many times more accurately or to very large numbers. (At that point, they would probably want to make use of a counting device that just supports an increment operation.)<br />
* Probably a learning technique like highlighting/underlining also has limited scope for improvement.<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
==External links==<br />
<br />
* https://www.lesswrong.com/posts/Nu3wa6npK4Ry66vFp/a-sense-that-more-is-possible</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Scope_for_improvement&diff=822Scope for improvement2020-04-01T22:16:22Z<p>Issa Rice: </p>
<hr />
<div>(There might already be a standard term for this that I don't know about.)<br />
<br />
By '''scope for improvement''' of a skill or learning technique, I mean something like the difference between "how much a person highly skilled in this technique (i.e. a virtuoso user) gets out of it" versus "how much a novice at this technique gets out of it".<br />
<br />
It's sort of related to terms like "high variance" and "heavy-tailed"; a skill with a lot of scope for improvement will have a distribution that is more skewed right, with some people being ''much'' better than most people.<br />
<br />
Thinking in terms of scope for improvement encourages looking at techniques in terms of "What can I get out of this if I master this technique?" rather than "How much did the average participant in this study gain out of this technique?".<br />
<br />
There is a distinction between interpersonal skill level differences (how good is the best person at the technique compared to you) and intrapersonal differences (how much can you improve if you practice). The differences are related because interpersonal differences provide evidence for potential intrapersonal differences. Strictly speaking, scope for improvement (in the sense I am thinking about) is only about the intrapersonal difference, or rather the interpersonal average of intrapersonal differences.<br />
<br />
==Relation to idea inoculation==<br />
<br />
Scope for improvement seems related to [[idea inoculation]] and [[inferential distance]]. If the scope for improvement of a technique is not made clear on initial exposure to the technique (e.g. due to a large inferential distance between the [[Explainer|person explaining the technique]] and the [[Learner|person reading about the technique]], or the person explaining the technique not being an expert), then this person can develop a resistance to further attempts to explain the technique (due to idea inoculation).<ref>Duncan A. Sabien. [https://medium.com/@ThingMaker/idea-inoculation-inferential-distance-848836a07a5b "Idea Inoculation + Inferential Distance"]. July 27, 2018. ''Medium''. Retrieved October 12, 2018.</ref><ref>Kaj Sotala. [https://news.ycombinator.com/item?id=10911653 Comment on "The Happiness Code: Cold, hard rationality"]. January 15, 2016. ''Hacker News''. Retrieved October 12, 2018.</ref><ref>Duncan Sabien. [https://www.greaterwrong.com/posts/pjGGqmtqf8vChJ9BR/unofficial-canon-on-applied-rationality/comment/rtmmvSjyDw8EMXRW8 Comment on "Unofficial Canon on Applied Rationality"]. February 15, 2016. ''LessWrong''. Retrieved October 12, 2018.</ref><br />
<br />
==Examples==<br />
<br />
* [[Spaced repetition]] seems like a [[learning technique]] with large scope for improvement. My impression is that most people use it for things like learning foreign language vocabulary and other "isolated facts" they want to memorize, and conclude that there is little scope for improvement. What they don't do is look at the "masters of spaced repetition" and try to cultivate the skill of using a spaced repetition program for understanding. [[Michael Nielsen]]: "I'm particularly grateful to Andy Matuschak for many thoughtful and enjoyable conversations, and especially for pointing out how unusual is the view that Anki can be a virtuoso skill for understanding, not just a means of remembering facts."<ref>Michael A. Nielsen. [http://augmentingcognition.com/ltm.html "Augmenting Long-term Memory"]. July 2018. Retrieved October 12, 2018.</ref><br />
* Probably many mundane skills like the skill of counting has limited scope for improvement. Most people can't learn to count many times faster or many times more accurately or to very large numbers. (At that point, they would probably want to make use of a counting device that just supports an increment operation.)<br />
* Probably a learning technique like highlighting/underlining also has limited scope for improvement.<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/><br />
<br />
==External links==<br />
<br />
* https://www.lesswrong.com/posts/Nu3wa6npK4Ry66vFp/a-sense-that-more-is-possible</div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=821Concept dependency tracking2020-03-26T06:07:47Z<p>Issa Rice: /* Emotional stakes */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of switching back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the dependency graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your enthusiasm will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
I think one of the more valuable forms of feedback an [[explainer]] can receive is the specific points of an explanation where the [[learner]]'s attention starts to fade, where it gets boring.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=820Concept dependency tracking2020-03-26T06:04:42Z<p>Issa Rice: /* Emotional stakes */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of switching back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the dependency graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your enthusiasm will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=819Concept dependency tracking2020-03-26T06:04:06Z<p>Issa Rice: /* Emotional stakes */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of switching back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the dependency graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your interests will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=818Concept dependency tracking2020-03-26T06:03:23Z<p>Issa Rice: /* Emotional stakes */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of switching back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your interests will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=817Concept dependency tracking2020-03-26T06:02:59Z<p>Issa Rice: </p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Emotional stakes==<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of juggling back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your interests will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=816Concept dependency tracking2020-03-26T06:02:41Z<p>Issa Rice: </p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
===Emotional stakes===<br />
<br />
Sort of related to the logical vs pedagogical distinction, but learning requires some amount of juggling back and forth between "what I care about" and "what I can easily understand given the concepts I already know". The things you emotionally care about are the big results (e.g. Godel's incompleteness theorems, singular value decomposition, how AlphaGo works), while the next thing you can easily understand are much more boring (e.g. understanding the definition of language, understanding what each axiom of Peano arithmetic does, understanding the definition of a normal operator, understanding the ''n''th way to write the Bellman equations).<br />
<br />
If you just crawl the graph by taking the reachable nodes, it might take like 100 serial steps before you actually get to Godel's first incompleteness theorem. Maybe by that time your interests will have faded. Part of what the concept dependency system needs to do is to maintain your curiosity, by showing you interesting things (in some fuzzy/informal form) before you can fully understand them. Some sort of foreshadowing feature, or explaining the interesting idea using the abstractions that you have learned so far, every 5-20 steps of the way, or something like that. As a learner from textbooks, I already naturally do this, by flipping back and forth every chapter or so so that I can test myself: do I understand SVD yet? Am I getting any closer?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=815Concept dependency tracking2020-03-26T06:02:03Z<p>Issa Rice: /* Types of dependencies */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=814Concept dependency tracking2020-03-26T05:50:49Z<p>Issa Rice: /* Examples */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]] -- I don't think Metacademy distinguishes different levels of a skill/concept<br />
* [[Arbital]] -- I think Arbital distinguishes between different levels of a skill/concept<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=User:Issa_Rice/Gamification_table&diff=813User:Issa Rice/Gamification table2020-03-23T07:51:05Z<p>Issa Rice: </p>
<hr />
<div>{| class="sortable wikitable"<br />
|-<br />
! Property/attribute !! MMBN !! Math/AI safety !! Vimscript/vimrc<br />
|-<br />
| addicting/feeling of being engrossed || yes || no || yes<br />
|-<br />
| important || no || yes || no<br />
|-<br />
| instant feedback || yes || no || yes<br />
|-<br />
| collecting things || yes || ? || ?<br />
|-<br />
| mentally easy || yes || no || most of the time<br />
|-<br />
| livelihood could depend on it || no || yes || no<br />
|-<br />
| multiple threads that can be pursued || yes || yes || yes<br />
|-<br />
| social competition || no || yes || no<br />
|-<br />
| early on, you are told the point of the thing you're doing || yes || no || yes<br />
|-<br />
| varied repetitiveness (i.e. not [[wikipedia:Grinding (video gaming)|grinding]]) || yes || no || no<br />
|-<br />
| dominance reasoning/upgrades || yes || no || yes<br />
|-<br />
| randomness/surprise || yes || no || no<br />
|-<br />
| pre-made dependency tree || yes || no || no<br />
|-<br />
| tacit linearity || yes || no?<ref group=notes>not for mathematics as a whole, but a single textbook does have linear structure</ref> || no<br />
|-<br />
| large class from which to pull strategies || no || yes || yes?<br />
|-<br />
| tinkering mechanics || yes || no || yes<br />
|}<br />
<br />
==Notes==<br />
<br />
<references group=notes/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=812Concept dependency tracking2020-03-18T20:14:05Z<p>Issa Rice: /* See also */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]]<br />
* [[Arbital]]<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
* [[Importance of struggling in learning]]<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=811Concept dependency tracking2020-03-18T20:13:18Z<p>Issa Rice: /* Soft vs hard dependency */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use. A related idea is Terry Tao's distinction between pre-rigorous, rigorous, and post-rigorous mathematics.<ref>https://terrytao.wordpress.com/career-advice/theres-more-to-mathematics-than-rigour-and-proofs/</ref> Whereas Tao distinguishes between these levels for one's mathematical education as a whole, one could also take a more granular approach, where for each concept, there is a pre-rigorous, rigorous, and post-rigorous stage.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]]<br />
* [[Arbital]]<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=810Concept dependency tracking2020-03-16T22:22:06Z<p>Issa Rice: /* Soft vs hard dependency */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level. I predict that concept dependency systems that don't take this into account will feel unpleasant to use.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]]<br />
* [[Arbital]]<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=809Concept dependency tracking2020-03-16T20:48:08Z<p>Issa Rice: /* Soft vs hard dependency */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level.<br />
<br />
A possibly equivalent way to rephrase the above is the following: each concept has many smaller parts or affordances, and these need to be made explicit in a concept dependency tracking system. For example, "Peano axioms" isn't an atomic concept. Instead, the Peano axioms have various affordances (i.e. one can perform various actions using them; "affordance" might not be the best term), like "use the Peano axioms to prove that addition of natural numbers is commutative", "give an informal description of what the Peano axioms are", "explain how the Peano axioms are different from the axioms of Robinson arithmetic", and so on. An informal understanding of the Peano axioms would correspond to knowing fewer of these affordances, while a solid understanding corresponds to knowing more/most of these things.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]]<br />
* [[Arbital]]<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=808Concept dependency tracking2020-03-16T20:43:17Z<p>Issa Rice: </p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Examples==<br />
<br />
* [[Metacademy]]<br />
* [[Arbital]]<br />
* David R. MacIver's Current/Pending system<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=807Concept dependency tracking2020-03-16T20:42:15Z<p>Issa Rice: /* Types of dependencies */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
===Soft vs hard dependency===<br />
<br />
There are different versions/levels of the same skill, and sometimes one can get away with a fuzzy/informal/cartoonish understanding, while other times one actually needs to know something at the mechanistic/formal/instinctual level.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=806Concept dependency tracking2020-03-16T20:38:59Z<p>Issa Rice: /* Related ideas */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]] -- this involves a similar [[mental motion]] of moving around in a graph<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=805Concept dependency tracking2020-03-16T20:36:08Z<p>Issa Rice: /* Types of dependencies */</p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
===Logical vs pedagogical dependency===<br />
<br />
In mathematics, logically speaking some axiomatic system (such as Peano axioms or ZFC) comes before everything else, and is thus a dependency. However, pedagogically speaking, it does not make any sense to start one's mathematical education with ZFC.<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]]<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Concept_dependency_tracking&diff=804Concept dependency tracking2020-03-16T20:32:20Z<p>Issa Rice: </p>
<hr />
<div>'''Concept dependency tracking''' (there might be a more standard term) refers to the tracking of conceptual dependencies (e.g. using a dependency DAG) when learning a subject.<br />
<br />
When trying to learn a concept, there might be several conceptual dependencies (i.e. other concepts you must learn first before learning the desired concept). The nature and structure of dependencies can be simple or elaborate depending on what one is trying to learn:<br />
<br />
* If one tries to do a "deep dive" into a subject by first picking some advanced concept (e.g. "I want to learn about Godel's incompleteness theorems") there might be multiple specific (propositional logic, first-order logic, computability) and general dependencies ("mathematical sophistication") that have some complicated structure.<br />
* If one is following a textbook linearly or has already covered the surrounding material, then the marginal concept won't typically have elaborate dependencies. This is because the textbook is already implicitly managing the dependencies (i.e. the textbook is a serialization of some dependency graph, using for instance [[wikipedia:Topological sorting]]).<br />
<br />
"Every time you encounter a concept you don’t recognize, you need to go back and learn it first. Pretty soon you’re deep in dependency hell, switching between twenty tabs, trying to juggle all the prerequisites of prerequisites, wondering if any of this will actually help you towards your original goal." [https://metacademy.org/about]<br />
<br />
The paper "Retain: Building a Concept Recommendation System that Leverages Spaced Repetition to Improve Retention in Educational Settings" by Shilpa Subrahmanyam also talks about this.<br />
<br />
Several books have a graph near the beginning of the book describing the order in which chapters may be read.<br />
<br />
I think most [[learner]]s don't really pay attention to conceptual dependency tracking (they can just follow along in class/read the chosen-by-teachers sections in the textbook). But tracking conceptual dependencies is important for:<br />
<br />
* [[Explainer]]s who want to produce clear explanations.<br />
* Autodidacts who get to "shop around" for multiple explanations. Different books might cover topics in a different order, so one might try reading up a topic in a different book only to find that this book assumes some other knowledge one does not have. Or the proof in the second book might circularly assume the result because it started from a different place.<br />
* Generalists who jump from subject to subject, becoming a complete novice frequently.<br />
<br />
==Types of dependencies==<br />
<br />
There are different "strengths" of dependencies. For example not understanding high school algebra makes it very difficult to understand calculus, so this might be a "hard" dependency. On the other hand, knowing the construction of the real number system helps to make one's understanding of real analysis solid, but is often considered nonessential during a first pass with the subject, so this might be more of a "soft" dependency.<br />
<br />
Some subjects have feedback loops, where subject X helps shed light on subject Y, and conversely, subject Y cements one's understanding of subject X. For this kind of dependency, a DAG is insufficient. (see data structures section)<br />
<br />
When is a dependency graph cyclic or acyclic? Circular dependencies are kind of weird in the sense that if we increase the resolution of concept space, it seems like we can always get the graph to a point where it's no longer circular. Superficially, we might say <math>X</math> and <math>Y</math> depend on each other, but actually, if you break them down, <math>X</math> has parts <math>X'</math> and <math>X''</math>, and (1) <math>Y</math> depends on <math>X'</math> and (2) <math>X''</math> depends on <math>Y</math>, so at this finer resolution, the dependency has no cycle (the graph looks like <math>X' \rightarrow Y \rightarrow X''</math>), but if you look at the original graph with nodes <math>Y</math> and <math>X=\{X', X''\}</math>, then it looks like there's a cycle. Is there a counterexample to this?<br />
<br />
==Data structures==<br />
<br />
* DAGs seem like the natural way to represent dependencies<br />
* [https://www.drmaciver.com/2016/05/how-to-read-a-mathematics-textbook/ David R. MacIver's Current/Pending system] uses a "current list" to track the current concept plus its dependencies.<br />
<br />
==Related ideas==<br />
<br />
In software engineering, the idea of dependencies is used frequently, e.g.<br />
<br />
* Package managers for programming languages and Linux distributions<br />
* https://en.wikipedia.org/wiki/Dependency_hell - the direct analog of this is probably less problematic in mathematics/the conceptual realm because there aren't "version numbers" on concepts and it is easy to shuffle around ideas. Terry Tao: "I think the basic reason for this is that in the purely theoretical world of mathematics, there is basically a zero cost in taking an argument that partially solves a problem, and then combining it with other ideas to make a complete solution; but in the real world, it can be difficult, costly, or socially unacceptable to reuse or recycle anything that is (or is perceived to be) even a partial failure."<ref>[https://plus.google.com/u/0/+TerenceTao27/posts/Xdm8eiPLWZp "One of the secrets to mathematical problem solving is that one needs to place a high value on partial progress, as being a crucial stepping stone to fully solving the problem."] (Post on Google+). July 22, 2012. Retrieved November 2, 2018.</ref><br />
* https://en.wikipedia.org/wiki/Coupling_(computer_programming)<br />
* Tracing up and down layers of abstraction in object-oriented programming, [[wikipedia:Call graph|tracing function calls]]<br />
<br />
==Interactions with other ideas==<br />
<br />
A concept dependency system can interact with other kinds of "tracking" to obtain a more complete "learning scheduling system":<br />
<br />
* Spaced repetition<br />
* A comprehension score (see Subrahmanyam paper)<br />
* Priority of the subject (e.g. "learning math is more important than learning physics", or "learning linear algebra is more important than learning abstract algebra")<br />
* Current excitedness/curiosity about a subject<br />
<br />
==See also==<br />
<br />
==References==<br />
<br />
<references/></div>Issa Ricehttps://learning.subwiki.org/w/index.php?title=Learning_from_multiple_sources&diff=803Learning from multiple sources2020-02-21T07:40:04Z<p>Issa Rice: </p>
<hr />
<div>'''Learning from multiple sources''' refers to using multiple source materials while learning a subject. For instance, a student may attend lecture and later watch a YouTube video that explains the same concept at home.<br />
<br />
==Examples==<br />
<br />
* An autodidact reads from multiple textbooks<br />
* A student reads a textbook and a blog post explaining the same concept<br />
* A student encounters a concept in the classroom, then later asks their tutor to explain the same concept<br />
* A college student attends lecture and later watches a YouTube video that explains the same concept<br />
<br />
==Discussion==<br />
<br />
In math, learning from multiple sources can give attention to certain contingencies in the subject (e.g. notation, specific constructions, specific encodings of structures) which may have seemed like necessities. This can make the concepts themselves more robust.<br />
<br />
Since in general two people will learn the same subject from different sources, being familiar with other notation/terminology will help with communication.<br />
<br />
Different sources place emphasis on different parts, and overlap may not be exact (see e.g. [[Discursiveness (explanations)|discursiveness]]), so one may in general learn new things by trying multiple sources.<br />
<br />
Some sources will suit one's background knowledge and thinking styles more than others. Finding sources that one "clicks with" will make learning easier.<br />
<br />
[[Importance of struggling in learning]] discusses one possible downside to finding explanations that are "too easy".<br />
<br />
==Varying the format==<br />
<br />
It is possible to learn from multiple sources by sticking with one format (e.g. reading multiple textbooks), but it is also possible to vary the format (e.g. read a section in a textbook and then watch a video about the topic).<br />
<br />
Varying the format can address certain blind-spots of any given format. For example, many textbooks have a huge amount of material, not all of which can be covered in a single-semester course. In such a case, the textbook may not give enough information to prioritize which sections/chapters to cover. Watching video lectures or looking at a course outline/syllabus can give information on which parts of the textbook are actually essential to cover.<br />
<br />
Compared to written material, video lectures give a more realistic pacing of the material (e.g. a textbook might just skip a long calculation and then say "as the reader can verify", with no indication of how long the verification should take, whereas a lecturer would have a more difficult time skipping the long calculation without explanation).<br />
<br />
Lectures can also give a better indication of what one is expected to know (e.g. if a lecturer says "you don't need to know this" or "I always have to look this up", that gives an indication of something one does not need to memorize/understand as deeply). Theoretically a textbook can also do this, but it seems much less common for some reason.<br />
<br />
On the other hand, a textbook is usually written in a much more organized way/with more of the formalities included, which helps if one wants to deeply understand something.<br />
<br />
==Applicability==<br />
<br />
For subjects that have been around for a long time and are learned by many people, there will be many different explanations available (e.g. many books on calculus).<br />
<br />
For less popular subjects, there will sometimes be one or two dominant/obvious choices.<br />
<br />
For new or obscure topics, there may only be a single explanation (e.g. the original paper announcing the discovery).<br />
<br />
==See also==<br />
<br />
* [[Learning from scattered resources]]<br />
<br />
==Notes==<br />
<br />
From Peter Smith's Teach Yourself Logic guide: "I very strongly recommend tackling an area of logic by reading a series of books which ''overlap'' in level (with the next one covering some of the same ground and then pushing on from the previous one), rather than trying to proceed by big leaps."<ref>https://www.logicmatters.net/tyl/</ref><br />
<br />
==References==<br />
<br />
<references/></div>Issa Rice