I am a college student majoring in Computer Science, before my college, I played OI for about 2 years. I want to learn tcs cuz I like it. Among the many tcs fields, I am most interested in algorithms. However, I need some suggestions about the learning route.

My advantages:

I am familiar with most of the basic algorithms and have taken discrete math.

My disadvantages:

For some personal reasons, I can't stick to large passages of text, so books can't be my first choice (I've hardly ever finished any book in its entirety). I also have a very poor memory, which led me to not do very well in discrete math (because it was a large part of the exam).

With the above information, can anyone give me some advice on where I should start learning tcs? Are there any recommended materials?

Thank you in advance to all those who helped me.

  • 3
    $\begingroup$ There are several algorithms and tcs courses from beginning to advanced whose videos are available publicly. For instance you can check out Jeff Erickson's course at UIUC this semester. courses.engr.illinois.edu/cs473/fa2022. You can try to solve the home works. You can also check out Ryan O'Donell's videos on several topics. cs.cmu.edu/~odonnell $\endgroup$ Oct 20, 2022 at 3:51
  • $\begingroup$ Hi Chandra, I can't watch courses and books because of medical reasons, I prefer very dry knowledge collections, such as lecture notes, do you have any recommendations in this regard, thanks. $\endgroup$ Oct 20, 2022 at 6:17
  • 2
    $\begingroup$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. $\endgroup$
    – Community Bot
    Oct 20, 2022 at 10:45
  • $\begingroup$ Could you precise which distinction you make between "books" and "lecture notes"? Most TCS books started as lecture notes and end up used as course material for courses in TCS (and in general books are much more "dry knowledge collections" than lecture notes!). $\endgroup$
    – J..y B..y
    Oct 20, 2022 at 10:50
  • 2
    $\begingroup$ What is "OI" and how is playing a game preparing you to learn Algorithms and Theoretical Computer Science? $\endgroup$
    – J..y B..y
    Oct 20, 2022 at 10:54

1 Answer 1


Having "a very poor memory" will make studying anything extra difficult, but 1) there are exercises to improve your memory, and 2) (emotional) motivation is considered to help memorizing things. I suspect that sticking to "dry knowledge collections" to study did not and will not help your memorization process, and might be part of the problem: there are several non traditional studying options for topics in theoretical computer science in general and algorithm design and analysis in particular which you might want to give a try:

  1. Participating in programming competitions (at your university or online), and studying solutions of past contests, might be challenging enough to boost your memory abilities, and "dry knowledge collections". See for instance

  2. The books "The Art of Computer Programming", from Donald Knuth, might be a good fit for a self-paced learner as you seem to see yourself. As books go, it is quite atypical in that it reads (even) more as a set of lecture notes (than other books), with extensive examples. Donald Knuth is considered to be one of the father of theoretical computer science: you will be learning from the best! The books are for sale but my students usually easily find digital versions online.

  3. I would not recommend studying from "very dry knowledge collections" if you have memory problems, but if it is indeed what you need, you could obviously read a combination of

I hope it helps (apologies if I cited many of my own articles: they did seem relevant as examples!). Welcome to cstheory SE!

  • $\begingroup$ I appreciate your advice and resources. My answer to your conjecture is that I have a terrible memory and poor concentration skills. In my past reading of computer textbooks (e.g. DBMS), these textbooks tend to write a lot of sentences to help the reader understand the theory, and it was a disaster for me to divide my already inadequate attention to these sentences. So I will tend to be very dry notes, which allows me to more efficiently use my limited memory and ability to focus. Again, thank you a lot for your help! $\endgroup$ Oct 20, 2022 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.