<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Learning Tools |</title><link>https://AaronScherf.github.io/tags/learning-tools/</link><atom:link href="https://AaronScherf.github.io/tags/learning-tools/index.xml" rel="self" type="application/rss+xml"/><description>Learning Tools</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Thu, 15 Oct 2026 00:00:00 +0000</lastBuildDate><image><url>https://AaronScherf.github.io/media/sharing.jpg</url><title>Learning Tools</title><link>https://AaronScherf.github.io/tags/learning-tools/</link></image><item><title>A Course Map Where the Arrows Have to Explain Themselves</title><link>https://AaronScherf.github.io/blog/concept_map_conditions/</link><pubDate>Thu, 15 Oct 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/blog/concept_map_conditions/</guid><description>&lt;p&gt;Putting two ideas next to each other on a map says they are related. It does not explain what connects them. My
asks more of an arrow: what claim is it making, which assumption does it need, and where in the course material can I check it?&lt;/p&gt;
&lt;p&gt;The package&amp;rsquo;s sample graph gives a compact example. A partial order can leave some pairs of items unranked relative to one another. Requiring every pair to be comparable gives a total order. Writing that condition on the connection makes the change visible. It is the kind of detail that can disappear when a map is just a collection of terms joined by lines.&lt;/p&gt;
&lt;p&gt;By the October 15 checkpoint, the
contained 104 concepts and 159 connections across eight sections of graduate microeconomics. Selecting a concept opens its explanation and mathematical statement; selecting a connection exposes the claim and its conditions. Section filters and alternative layouts help narrow the view when the whole map becomes crowded. The counts describe its scale, not how much of the course I have mastered.&lt;/p&gt;
&lt;p&gt;The map grows out of the same foundation as the
: converted textbooks, lecture notes, assignments, and passages found through the
. A guide develops an explanation in sequence. The graph gives me another way to explore the material by following what an idea depends on and what it helps establish. They are separate uses of the collection; generating one does not automatically create the other.&lt;/p&gt;
&lt;p&gt;There is also a useful division of labor behind the graph. Code prepares task cards containing source passages. Gemini in Antigravity drafts the explanations and connections, and a submission step checks their structure and references before adding them. The new material stays marked as proposed until a person reviews it. This separates a model&amp;rsquo;s fluent suggestion from an accepted part of the map.&lt;/p&gt;
&lt;p&gt;Those checks have limits. A reference can point to a real passage while the explanation misreads it. The drafting model also critiques its own connections, which makes its generous verdicts worth questioning. Section summaries remain drafts, and the GitHub route for submitting reviewer proposals had not yet been exercised from start to finish at this checkpoint.&lt;/p&gt;
&lt;p&gt;What makes the graph promising is the opportunity to ask a precise question at a confusing junction. If I cannot follow an arrow, I can examine the claim, the assumption, and the passage behind it. That gives me a concrete starting point for studying—or for correcting the map itself.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Retrospective account prepared October 16, 2026, covering the October 15 checkpoint. The
records the counts and open checks. The live graph and project pages may have changed since.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Concept Graph</title><link>https://AaronScherf.github.io/projects/academic-hub/concept_graph/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/projects/academic-hub/concept_graph/</guid><description>&lt;p&gt;Concept Graph maps the ideas in a course and the conditions that connect them. An arrow can say that one idea implies another, but it also records the assumption needed to make that claim. Selecting it gives me a sentence to examine and references to the course material behind it.&lt;/p&gt;
&lt;p&gt;For example, the package&amp;rsquo;s sample graph connects a &lt;strong&gt;partial order&lt;/strong&gt; to a &lt;strong&gt;total order&lt;/strong&gt; when every pair can be compared. A partial order can leave two items unranked relative to one another; adding that comparison requirement produces a total order. The condition on the arrow explains what changed, rather than leaving me to infer it from two nearby boxes.&lt;/p&gt;
&lt;p&gt;The first full graph covers the first half of a graduate microeconomic theory sequence:
. As of October 15, 2026, it contains 104 concepts and 159 connections across eight course sections. A second graph now covers a graduate econometrics course:
. Completed on October 21, 2026, it contains 112 concepts and 135 connections across eight course sections, all awaiting the owner&amp;rsquo;s review. Those counts describe each draft&amp;rsquo;s scale; every concept and connection remains marked as proposed until reviewed.&lt;/p&gt;
&lt;h2 id="following-an-idea"&gt;Following an idea&lt;/h2&gt;
&lt;p&gt;Each box represents an idea, such as a definition, theorem, or example. Selecting it opens an explanation, its mathematical statement, and its connections written out in words. Course-section filters and several layouts help narrow a crowded graph to the part I want to study.&lt;/p&gt;
&lt;p&gt;That makes the graph useful for tracing a result back through the assumptions and definitions it depends on. Section summaries offer another way in, though those summaries are AI drafts and some wording is looser than the underlying theory.&lt;/p&gt;
&lt;h2 id="building-and-reviewing-the-connections"&gt;Building and reviewing the connections&lt;/h2&gt;
&lt;p&gt;An AI agent drafts explanations and connections from task cards containing passages found through the
. The
and
tools prepare the notes, slides, assignments, and books it searches. Code then checks the submitted structure: references must come from the supplied passages, required conditions must be present, and circular definition chains are rejected. A cited passage can still be misinterpreted.&lt;/p&gt;
&lt;p&gt;The same collection supports the
. A guide develops a topic through explanations and examples; the graph exposes the relationships and assumptions between ideas. They have separate drafting workflows, so building one does not automatically produce the other.&lt;/p&gt;
&lt;p&gt;The drafts remain marked as proposed until a person accepts or edits them. Reviewers can comment, reject a connection, or suggest a missing idea through the page. Suggestions from several reviewers are combined before the maintainer handles them. Submission through GitHub has not yet been tested from start to finish.&lt;/p&gt;
&lt;h2 id="what-a-second-course-taught"&gt;What a second course taught&lt;/h2&gt;
&lt;p&gt;Applying the drafting pipeline to econometrics revealed where a data-driven statistics course differs from a theory course:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Checking against the syllabus:&lt;/strong&gt; Initial drafting from lecture notes and textbook passages missed 21 key concepts, including an entire syllabus topic on dynamic causal effects. Adding an explicit gap check that compares the course syllabus against the drafted concept list caught those omissions before review.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Specialized connection types:&lt;/strong&gt; The original vocabulary grouped too many relationships into generic categories. Econometrics required two new connection types—one (&lt;code&gt;defined_via&lt;/code&gt;) for concepts formally defined in terms of other concepts, and another (&lt;code&gt;assumption_of&lt;/code&gt;) to separate the conditions an empirical estimator requires from the mathematical premises of a theorem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rotating agent roles:&lt;/strong&gt; To prevent a model from approving its own blind spots, the pipeline rotates responsibilities: Gemini drafts nodes and connections from source passages, Codex evaluates whether each proposed link is supported or weak, and Claude reviews vocabulary additions and structural repairs. The agent that drafted or corrected an item no longer critiques it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Separating source data from publication:&lt;/strong&gt; The graph&amp;rsquo;s source data and review history stay in a private repository, and only the built interactive page is published to a public site.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="evidence-and-limits"&gt;Evidence and limits&lt;/h2&gt;
&lt;p&gt;The October 15 status records 331 Python tests, 45 viewer tests, browser checks, and a graph built from actual course materials. These establish different things: the tests exercise the software, while the graph shows what the drafting process produced. Neither establishes a learning benefit.&lt;/p&gt;
&lt;p&gt;For the microeconomics graph, connections were drafted and critiqued by the same model, and that critic approved almost every connection (154 of 155), so its review may be lenient. The econometrics graph used a separate critic, but no model replaces subject-matter judgment: every item in both graphs remains proposed until a person reviews it. The
records the open issues; the
explains how the graph is built and reviewed.&lt;/p&gt;</description></item><item><title>Guided Solutions</title><link>https://AaronScherf.github.io/projects/academic-hub/guided_solutions/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/projects/academic-hub/guided_solutions/</guid><description>&lt;p&gt;Guided Solutions brings three contributions to a problem set together: an AI-written derivation, space for my own intuition, and a proof developed through tutoring. Each has its own labelled block, so I can compare approaches and see whose reasoning I am reading.&lt;/p&gt;
&lt;p&gt;The separation matters when the routes differ. In the recorded microeconomics run, the agent supplied detailed reference proofs; later tutoring on two questions produced more compact proofs following the student&amp;rsquo;s approach. Both were kept, with room for the student&amp;rsquo;s interpretation alongside them.&lt;/p&gt;
&lt;p&gt;An &lt;strong&gt;illustrative layout&lt;/strong&gt;, rather than an excerpt from the private coursework, looks like this:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;My reasoning:&lt;/strong&gt; I think adding another option changes the chance of choosing the default, but I need to identify why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agent derivation:&lt;/strong&gt; Work through the choice probabilities under the question&amp;rsquo;s stated rule, showing the intermediate steps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After tutoring:&lt;/strong&gt; Record the proof developed during the discussion and compare its key step with the reference derivation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To prepare a document, I use the assignment and a question-by-question hints sheet to organize the work. The
make lecture notes available to the
, which finds the course&amp;rsquo;s definitions and notation alongside textbook passages. The agent is instructed to show its algebra and assumptions, while leaving the student&amp;rsquo;s writing intact. A later audit checks the document&amp;rsquo;s structure and mathematical work.&lt;/p&gt;
&lt;p&gt;This is a procedure I direct using the existing conversion, search, and tutoring tools. The
records one completed problem-set run and its tutoring follow-up. It provides a playbook for another assignment; each new solution still needs review. The course documents remain private, and the workflow has no dedicated automated test suite.&lt;/p&gt;</description></item><item><title>Socratic Tutor</title><link>https://AaronScherf.github.io/projects/academic-hub/socratic_tutor/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/projects/academic-hub/socratic_tutor/</guid><description>&lt;p&gt;The Socratic Tutor gives an AI study conversation a record of which steps the student has established. Before the tutor sends a reply, a local program checks it against that record and rules intended to hold back unreached solution steps. The conversation can then be reviewed against what the student actually said.&lt;/p&gt;
&lt;p&gt;That restraint also exposed the central difficulty. In two recorded sessions on one microeconomics problem set, the tutor followed several session rules but struggled to teach unfamiliar material: an explanation could itself reveal a step the student had not reached. The system was better at assessing existing understanding than helping a learner build it.&lt;/p&gt;
&lt;p&gt;An &lt;strong&gt;illustrative version of that failure pattern&lt;/strong&gt; is:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Student:&lt;/strong&gt; I don&amp;rsquo;t understand why this condition matters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tutor:&lt;/strong&gt; Which part of the condition could you use?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Another question preserves the student&amp;rsquo;s chance to solve the problem, but it may provide little help with the missing concept. A more permissive teaching mode is still a design direction, not an observed solution to this problem.&lt;/p&gt;
&lt;h2 id="what-the-program-keeps-track-of"&gt;What the program keeps track of&lt;/h2&gt;
&lt;p&gt;An AI agent conducts the dialogue; the Python program maintains the session record and checks proposed replies locally, without asking another model to judge every turn. Preparation defines the problem&amp;rsquo;s key claims, reference steps, glossary, and review criteria. During the conversation, word-pattern checks look for evidence that the student has established a claim or encountered a known pitfall.&lt;/p&gt;
&lt;p&gt;When enough progress has been recorded, the reference steps are released for a comparison using quotations from the student&amp;rsquo;s messages. Pausing saves the transcript, summary, and learner record. Skip and defer rules allow incomplete parts to be parked, though the live runs found that returning to a parked question was too rigid.&lt;/p&gt;
&lt;p&gt;The checks have limits: unfamiliar wording can be missed, unrelated phrases can trigger a match, and an agent can credit weak evidence. They provide an inspectable record rather than a guarantee against revealing an answer or misjudging understanding. Automated tests exercise the session rules; the
explain what happened in the two sessions. The
documents the current workflow.&lt;/p&gt;
&lt;p&gt;For a hint or feedback on a single attempt,
offers those tools within RAG Analysis.
describes a document workflow for keeping my reasoning and later tutoring work beside an agent&amp;rsquo;s reference derivation. Those are useful alternatives when I need a specific study task rather than a tracked conversation.&lt;/p&gt;</description></item><item><title>Giving the Questions in My Lecture Notes Somewhere to Go</title><link>https://AaronScherf.github.io/blog/questions_in_lecture_notes/</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/blog/questions_in_lecture_notes/</guid><description>&lt;p&gt;A question in the margin of a lecture note can be the most useful thing on the page—and one of the easiest things to forget. The new question resolver gives those questions a follow-up: it finds the marked questions in transcribed handwriting, searches the course collection, and saves an explanation beside the note. Its first recorded run answered seven questions, with a useful distinction: four had supporting course passages and three did not.&lt;/p&gt;
&lt;p&gt;This builds on the handwritten workflow I described in my
. Excalidraw automatically saves an SVG image when I save a drawing. The
makes the handwriting searchable and marks questions it finds. The resolver is a separate command at this milestone; saving a drawing does not automatically answer everything written on it.&lt;/p&gt;
&lt;p&gt;Searching for an answer raises an awkward possibility: the system might find the question itself and treat that as evidence. The resolver excludes the note&amp;rsquo;s own files when looking for supporting passages. If nothing suitable remains, it can still offer a general explanation, but labels it as not sourced from the course. That label describes the evidence available to the tool; it does not certify the other answers as correct.&lt;/p&gt;
&lt;p&gt;Keeping the explanation beside the note matters too. The expanded transcript can be regenerated as the transcription tools improve. Pasting an answer into that generated text would put it at risk of disappearing on the next run. Instead, each question gets an identity, its answer lives in a companion file, and the note carries a link back to it. The original question remains available for comparison.&lt;/p&gt;
&lt;p&gt;The first live run covered four microeconomics notes. All seven answers were saved, and file-level search could find the companion files afterward. One spot-checked explanation correctly distinguished a necessary condition from a sufficient one and pointed to the relevant course material. The three answers without course backing stayed visibly labelled. Passage-level search still needed a separate chunking step, so this was not yet a fully connected search workflow.&lt;/p&gt;
&lt;p&gt;That last gap is a useful reminder of how the pieces fit together. Transcription makes the question readable; the
makes related material findable; the answering tool connects them. Keeping the source trail visible lets me decide which explanation to pursue, which to check, and where the collection itself is missing something.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Retrospective account prepared October 16, 2026, covering the milestone recorded October 4. Implementation began October 3; the
records the live run. The transcription and indexer project pages describe later work too.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>A Practice Problem Can Have the Right Answer and Still Miss the Point</title><link>https://AaronScherf.github.io/blog/practice_problem_checks/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://AaronScherf.github.io/blog/practice_problem_checks/</guid><description>&lt;p&gt;One early test of my practice-problem generator produced a flawed proof, then marked its own work valid. Another ignored the requested proof method. For a study tool, both matter: an exercise can reach the expected conclusion without helping me practice what I need to learn.&lt;/p&gt;
&lt;p&gt;The idea behind the
is appealing. Instead of asking for a generic exercise, it searches my course materials for examples of the topic, style, and difficulty, then drafts a new problem and a worked solution. The
supplies those examples. A second model call checks the result before it reaches me.&lt;/p&gt;
&lt;p&gt;That second call was less reassuring than it looked. In the linear algebra trial, the solution treated certain eigenspaces as perpendicular without having the assumptions that would justify it. It also relied on part of the conclusion it was supposed to establish. The checker accepted it anyway. Asking the same small model to read its answer again had not supplied the missing mathematical judgment.&lt;/p&gt;
&lt;p&gt;The method problem was easier to isolate. When a request specified a particular kind of proof, the generator kept imitating a different approach in the retrieved examples. Emphasizing the instruction more strongly did not reliably change that behavior. Splitting the verdict into two questions—whether the method matched and whether the mathematics was correct—at least made it possible to reject an answer that passed only one test.&lt;/p&gt;
&lt;p&gt;A small comparison then changed the outlook. A cloud-model experiment used the same prompt-building and checking functions on three topics, with three trials each. All nine passed the checks and a hand review found their mathematics sound. The local model had produced no accepted result in two trials of the constrained compactness request. These were different-sized samples on different topic sets, so they are evidence for a useful next experiment, rather than a general model ranking.&lt;/p&gt;
&lt;p&gt;Even those nine successes had qualifications. Some proofs used the requested method in a rather superficial way, and two probability problems were almost identical. Correctness, useful practice, and variety remain separate goals. The comparison was also a standalone experiment at this point, not evidence that the cloud route had already been integrated into the tool.&lt;/p&gt;
&lt;p&gt;A useful next trial would ask for several different exercises on the same skill, then check both their proofs and whether they demand meaningfully different reasoning. The near-duplicate probability problems show why a string of valid verdicts cannot answer that question.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Retrospective account prepared October 16, 2026, covering the September 6 milestone. The
preserves the trials and their limitations. Project links describe the tools as they have developed since.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>