But you're right in that they depend on the mind being primary over the body.
297 karma · joined July 3, 2022
https://trane-project.github.io
But you're right in that they depend on the mind being primary over the body.
They can be changed without affecting the exercises so it's not set on stone. So you could try to make a lesson for the initial topics and try to adjust the dependencies as you go along.
But the best way is to get help from someone who knows them.
Some ways in which it's different:
- Dependencies are core to the system. For example, if I am learning a music piece, I want to start by learning small sections and only move on to larger sections when I am good enough at the small stuff, eventually ending with a final exercise that tests my performance of the whole piece. A lot of knowledge/skills follow that pattern, but I couldn't find a way to make Anki or SuperMemo understand this.
- It's meant for both memorizing stuff and practicing exercises. I have tested it with your exact example (math problems from textbooks). It works fairly well, but it's at a very early stage (you can look around at https://github.com/trane-project/trane-math, but it still needs a readme). So it's doing the same thing as the students you mentioned. The difference is that the scheduling is done automatically. Review of existing problems and addition of new ones happen without requiring planning or tracking from the student.
- There's an emphasis on generating the flashcards as text files, so they can be shared. I don't understand why people insist of remaking their own flascards every time. If someone wishes to learn guitar, for example, it's my hope they just download some courses and start learning without spending any time redoing flashcards. This design choice probably makes it harder to write the flascards, but it balances out once the flashcards are done and can be passed around.
Not knowing ruby, I can't really invest too much time trying it to work. :<
I have been meaning to generate flashcards to teach you the notes of scales and chords so that I can have instant recall. It gets really annoying to not know them when improvising or composing. I have some basic courses, but I found the process a bit tedious, so I have been working on other courses and features instead.
I am going to try to use this utility to help me generate the flashcards instead of writing my own logic. Hopefully it works well as it would save me a lot of time.
The entry point docs are here: https://github.com/trane-project/trane/blob/master/src/lib.r...
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.
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?
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.
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.
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.
I guess you are right. The textbooks definitely have dependencies, but that seems to be the very problem that you have with them. Unfortunately, I think other than different curriculums for each way to approach the subject, this is beyond the current scope of Trane. I made this thinking of music at first, which has a more rigid way of approaching the subject that tends to work for a wide set of students. There's no person on earth that will be comfortable studying highly chromatic music without mastering harmonically easier material first.
And yeah, I don't think Anki gets a lot of support. I am an open-source maintainer myself, so I know that story.
No experience in mobile at all so that'll have to wait, but a GUI/website/app that works on most platforms is something I would like to work out eventually.
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.
I don't see how LLMs deliver on this. I think they could speed up how the curriculum is generated, and I have played around with ChatGPT to do just that, but the questions only need to be generated once. It's the guiding of students through the exercises that needs to be personalized, not the exercises themselves.
As for their effectiveness, I am the author of Trane (see my other comment). It's worked pretty well for me, but I am splitting my time between my job, working on the software, creating materials, and actual practice, so I can't really say what the upper limits are until I can focus on just the last part.
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.
The ideal state is a graphic interface where the exercises are presented on the screen to reduce the friction. Gotta start somewhere.
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/cour...
But plain markdown files for now should get you going.
The problem is how to bridge the gap in a way more people realize similar benefits.
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.
For now, this is the most general way to create the exercises: https://trane-project.github.io/generated_courses/knowledge_.... The JSON file thingy is just a script that automates creating these files given the specification, so they will be interchangeable.
I agree that using the training data would probably generate more garbage. But it's the semantic analysis part that I think it's useful. In general, I think VCs and OpenAI are overhyping it by calling it "intelligent" and obscuring the very good use cases of the technology. AFAIK, no one involved has explained how a statistical model running on a Turing machine magically develops agency and awareness, which are requirements for actual intelligence (under my definition, at least).
I played around with chatgpt and it worked pretty well. I have a lot of other things in my plate to get around first (including starting a math curriculum) but it's definitely an exciting direction.
I think LLMs and AI are not anywhere near actual intelligence (chatgpt can spout a lot of good sounding nonsense ATM), but the semantic analysis they can do is by itself very useful.
For music practice, I find it really helpful. Simply knowing the next thing you should practice without having to think about it too much is very helpful. I find it easier to practice for longer without getting bored as easily. If I get frustrated with something, I can get another question very easily. I find myself not realizing half an hour or sometimes more has gone by, which is not the case as often when I don't use it.