7 ms·
I am already working on fixing this: https://github.com/trane-project/trane/ https://github.com/trane-project/trane/ No AI needed. Just an old fashioned depth
by trane_project 4y ago
I am already working on fixing this: https://github.com/trane-project/trane/ https://github.com/trane-project/trane/
No AI needed. Just an old fashioned depth first search through a graph of skills and dependencies.
I made it to help me practice music, but I have been branching out and using it to study math for a few weeks. I find myself saying "just one question more" and then spending another half hour in it.
Still needs more material to be useful to other people but it's a solid experience. I learned and memorized how to play most of the notes in the saxophone with good intonation in about a week, as a complete beginner.
- cjblack 4y agoI really like simple, reliable, tools like this - just watched the demo video. I hadn't heard of mastery learning before, but now I'm thinking about trying to map some Excel lessons towards this and see if I can implement it at work. I've found that our youngest employees are coming out of school with little-to-no knowledge of how to work spreadsheet software - even those who are otherwise pretty technically proficient. While programmers tend to eschew tools like Excel, in consulting (or at least the consulting we do) it's critical to being able to understand how a process works before designing an automated solution. Excited to potentially have a way to share that understanding.
- trane_project 4y agoThanks for the feedback. An excel course should be doable. Currently the most general way to write material is to use this: https://trane-project.github.io/generated_courses/knowledge_base.html https://trane-project.github.io/generated_courses/knowledge_... Basically a folder of lessons where the flashcards are pairs of markdown files. There's also another tool to write simple flashcards and lessons in a json file, run a command, and build all those directories and markdown files for you, but I have not written the documentation yet. Here's an example for a course based on a reworking of Euclid's Elements: https://github.com/trane-project/trane-math/blob/master/courses/geometry/euclid_1/course_config.json https://github.com/trane-project/trane-math/blob/master/cour... But plain markdown files for now should get you going.
- airstrike 4y agoThis looks great, thanks for sharing. I do think it would be more ergonomic to have this served via a website given that it feels CRUD-like with some browsing of exercises, relationships between them, etc. The CLI approach assumes people are comfortable using the terminal, which unfortunately limits the number of potential users
- trane_project 4y agoDefinitely. I have not worked in frontend/ux stuff for over 10 years, and I am working on this by myself, so I have been focusing on the CLI to quickly iterate and prove that it works reasonably well. Part of the reason of trying it out on math was to a find a more technical group of users. The ideal state is a graphic interface where the exercises are presented on the screen to reduce the friction. Gotta start somewhere.
- compacct27 4y agoI’ve been coding UI’s for over 8 years now, and I love ed tech adjacent projects like this. Wanna team up on making the UI?
- trane_project 4y agoSure. I would love some help. I am visiting my family all March (I am typing this from the airport), so I don't know how much time I'll have to work on trane for the next month. But maybe that gives you some time to use it, and read the code and docs. I am not going to put my personal email here, and I don't see an option to send private messages on hn, although it's probably out there somewhere. Probably in the commits, lol. Worst case, feel free to open an issue on the trane repo. As a first ask, what do you think of this: https://github.com/1Password/typeshare https://github.com/1Password/typeshare? I figured writing the UI in rust is probably not a good idea. The ecosystem for UI is very immature and the language itself is probably overkill. But doing it in typescript/html/css requires you to understand the internal data structures (all the JSON files you see in the courses are just serialized rust objects). I found that repo and it seems like a promising approach to autogenerate the types and make the interaction easier.
- wizzwizz4 4y agoTrane looks good. I've been trying to design a similar system, but for mathematics: the difference there is that there can be multiple routes towards a particular understanding, with different routes better for different people. Prerequisites for calculus: an understanding of the standard reals OR an understanding of the hyperreals. Yes, real and hyperreal analysis are radically different in many ways, but they're provably equivalent, and they get you to the same answers. Some people find one more intuitive than the other, and some problems are easier in one than the other. Imo, the biggest issue with mathematics education is that it tries to push you down one, standardised way of thinking about things: if you don't get it, that cripples your ability to think and reason for yourself. The main thing I do in one-to-one mathematics tutoring is finding how the student thinks, and nurturing that (instead of stamping it out and replacing it with a "more formal" approach). I'd like to see something branchy, but I haven't found a good solution. Do you have any ideas for tackling this?
- trane_project 4y agoI started working on this a few weeks ago: https://github.com/trane-project/trane-math https://github.com/trane-project/trane-math It currently needs a README, but you could take a look at the courses on how I am building the flashcards. It's easy to reference external resources, so that's what I have been doing, rather than trying to create exercises of my own. I am starting with a very basic olympiad-style book and a book based on Euclid's Elements, because I don't have the understanding required to clearly work out the dependencies of more advanced stuff. And I also would like to start at the beginning to make sure I don't miss anything. The ideal end state is to have courses that cover all the undergrad and grad math curriculum. I am also curious on whether this could be used by researchers to keep up to date with the latest research on their fields. But all of that is a long way out. As for your question, there are a couple of ways that Trane could handle multiple paths through similar material. 1. Just have separate curriculums. You could copy the courses, but the second copy has different dependencies, courses/lessons IDs. For example, one could have a series of courses teaching the undergrad MIT math curriculum and another the Harvard curriculum. They might share a lot of the material, but the order will be different. 2. Trane does not lock you into a specific order. There are filters that let you specify which parts of the graph you want to study. You are free to get questions from specific courses and lessons. You can also use the metadata in the courses to say things like "give me questions from all lessons teaching linear algebra" or "give me questions from all courses on real analysis but not from the lessons on set theory". The dependencies between the lessons that match that metadata are still respected. There are a few more options, but you get my point. The dependencies are not set in stone, and there's freedom to jump around and study specific topics. I actually use option 2 most days. If I want to practice guitar, I just set a filter to give me exercises from the guitar. Similar thing when I want to practice the saxophone.
- admsmz 4y agoThis sounds very similar to the system behind http://mathacademy.com http://mathacademy.com . You follow a graph of skills and dependencies and because you always have the necessary prerequisites it is always doable. Their team of mathematicians have created a curriculum from k-12 to a bachelors in mathematics.
- trane_project 4y agoYeah, this is cool and similar to the end state I have in mind. The main difference is that I am not trying to create the curriculum/exercises. I am just creating flaschards that say "Solve exercise x.y.z in that textbook". Plus the whole free-software angle and being able to share the material as text files. The math thing is just a side project at the moment to try to see how it works for other fields. I am primarily using this for music. I was hoping something like this existed already, but all the solutions are either very specialized like this one or do not support dependencies as a core feature, like Anki. Had Anki supported something like this, I wouldn't have needed to make my own thing.
- zozbot234 4y agoIt would be nice to simply include support for dependency tracking in existing flashcard software. Unfortunately, the most commonly used flashcard software, viz. Anki, has not been adding such features. I can only assume that the project is very lightly maintained and/or working on paying down technical debt - new innovative features don't seem to be a priority.
- trane_project 4y agoI think ultimately it's a very different approach to their current one, so it might be too difficult to do in the existing codebase. Maybe not, I have not looked at the code. But the public docs and learning philosophy around anki all seemed to discourage it, so I decided to make my own thing. And yeah, I don't think Anki gets a lot of support. I am an open-source maintainer myself, so I know that story.
- 4y ago
- hyperturtle 4y agoThis is cool! I've had similar ideas, but when it comes to creating the curriculum it was always the time consuming part. If the graph was in something like a wiki, where people could contribute, add linkages, add new lessons, etc., and a system to automatically prune the graph to each student, there could be a globally sourced and maintained "school" for all human knowledge.
- trane_project 4y agoThe courses are markdown and JSON files in GitHub so close enough. It does restrict a bit because it assumes some technical proficiency, but there's probably some middle ground (open a GitHub issue to suggest changes and have someone else write the PR, for example).
- tgv 4y agoSorry, but how is that exactly a solution to the problem in the article? From what I can see, yours is just a (rather user unfriendly) guideline to self-study.
- trane_project 4y agoopen . next answer score YOUR_SCORE next That's 80% of how to use it. Most of the rest is how to select individual parts of the graph to study. So other than setting it up and writing material for it (which I don't envision most people needing to do), I don't see how that's less user friendly than a website. But I understand how using a CLI is inherently limiting. Not enough time as a solo project so I am not focusing on that for now. As for how it's a solution, see my answer to the other person that asked the same question.
- andrepd 4y agoThe effect is about how individually-tutored students consistently out-perform classroom students. How does a study guide, such as your program, help with that?
- trane_project 4y agoThe problem is bridging the gap between the ideal solution (everyone gets an individual tutor) that scales for everyone. It's not meant to replace teachers, but it reduces the amount of individual teaching needed. In my own case, once I am done with this and can afford the time, I'll get a private music teacher and go through any tough spots I encountered since our last meeting.
- tgv 4y agoSorry, but you came in way too pretentious. A system like yours may support the student a bit, but it's in no way closing the gap with an individual tutor. Don't say it's a solution. It's an interactive homework list.
- trane_project 4y agoI never said I had solved it, only that I was working on solving it. Nowhere in the documentation or in my comments here I intended to give the impression this is anywhere close to done or intended for the general public at this time. There's an entire half of the project intended for instructors that I have barely mentioned publically or had had time to properly sketch out. Mathacademy is pretty much the same thing from what I can gather and has already been applied very successfully in a school district. Same thing with the DARPA tutor also mentioned here. All of the principles these tools are based on are already proven by mountains of research. And yet no free software, general solution exists that combines all of them. I know because I resisted working on this for months while looking for it. And sure, it's an interactive homework list. I say so myself in the readme. One that automatically reviews skills at variable intervals depending on the mastery of the material, interleaves questions from separate topics for increased retention, gradually introduces new topics only after dependent knowledge is sufficiently mastered, balances the difficulties of the questions, and allows students to study specific portions of the graph. So if we are giving each other advice on how we come across online, I find your comments lacking any criticism I can use to improve the project, and very dismissive of the hundreds of hours I have spent researching and working on the problem with the intention of giving all of my work away for free. If that ever changes and I charge a cent for an incomplete solution, your criticism will be more understandable.