Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I always kinda wondered how to make Anki stuff for like algorithms and the like.


For Anki, I'd grab the complete article from Wikipedia/textbook/[good source], and then write a few examples. The flashcards would be a number of cloze deletions, and then I'd have a separate deck with a practice question to recall from a blank state. For example [1], I'd take this Wikipedia article, and break it down like so:

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: pop and push.

This sentence would become a number of flashcards that look like ([...] is a cloze deletion where you have to insert the missing word, each cloze is a flashcard):

In computer science, a [...] is an abstract data type that serves as a collection of elements, with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a [...] of elements, with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of [...], with two principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with [...] principal operations: pop and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: [...] and push.

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations: pop and [...].

You'd do that for most of the article. Find a few examples of a stack, do the same thing from cloze deletions, and then in a separate card, make a few questions to have you write from scratch, parts of a stack.

The separate deck would be so your regular reviews don't take forever, when you get a question asking you to write out a stack. The other deck would be done say 3-4 days a week, and have many fewer cards, because they're going to take awhile to answer. You could even use the index card method for this part as it's closer to actual practice than recall.

In another deck, I'd also have short answer questions. For example, what's the difference between a stack and a queue, or stack and array, etc. This would also be more for practice sessions, rather than daily repetitions, as the questions could take awhile to answer.

Note that you'll have a ton of flashcards this way for each algo, but they'll be extremely easy to answer (a good thing). Five flashcards you can answer in 2-10 seconds each, is much better than one flashcard that takes you a minute to answer.

Assuming five seconds to answer a flashcard, you could easily do 120 repetitions through the day. The nice thing about Anki is the mobile clients, so you can do a few cards while you have some downtime. When I was in school, I was usually doing flashcards while I was waiting for class to start or going to the bathroom etc.


That seems like a waste of flashcards to me, but if it works for you, it works. I would just create one flashcard for front and back. What is a stack in CS? A stack is an abstract data type that's a collection of elements, with two principal operations: pop and push. If an answer's longer than 1-2 sentences then it's time to break it apart into different questions.


I find it somewhat excessive (and I still make poor cards even my by own guidelines all the time), but I try optimize to make my flashcards as easy as possible to answer according to [1].

Especially in the long run once you get thousands of flashcards, and have a few breaks because of life. A general rule of thumb I go by is that my answer should be shorter than the question.

Even in your answer there's three or four separate parts to it. You have:

1. An abstract data type 2. collection of elements 3. Two principal operations 3a. Pop and push

[1] https://www.supermemo.com/en/articles/20rules


Fair enough. I guess I'm pointing out with cloze questions that don't hide all the selected text, you're perhaps making it too easy. I prefer hiding all, showing one. On a test, you might be able to get similar hints but if the understanding isn't there you might be thrown off by different wording. If I'm creating the knowledge for work, I'd rather simplify as much as possible, break up into different parts where necessary, and learn the answer exactly. Relying on additional context is not something I'd do. For those reasons, I'd prefer regular flashcards when possible. The other benefit of a single flashcard is it's easier for organization purposes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: