How to read computer science papers – experience from qualifying exam

In Fall 2013 semeter, I read about 100 papers, for 2 courses and research. In the winter of 2013, I read some more papers for my PhD qualifying exam. That was very intensive. Here are some updates about reading papers (for qualifying exam, for details):

Write down all your understanding

Previously, I said “write down summary”. Well, this is not enough. I found that writing down all your understanding was necessary. When you write, you actually come up with further understanding. And believe me, without writing it down, you will forget it after 3 days.

Writing down things is also beneficial when you want to finish the Related Work part of the paper. So you don’t need to re-read the paper. Time saver!

Organize note with good structure

After a while, when you go back to read your note, you don’t want to see a mess. A messy note reflects (and gives you) a messy mind. So, organize your note a little bit. You will understand it better.

Draw Graphs

I personally like visualization a lot. When I read paper, I like to summarize the text into diagram to give myself a good overview of the contents. For example, when reading the Lightweight RPC paper, I drew the following diagram with PowerPoint to help me understand the procedure:

lrpc

Multiple reads help

I guess, for some papers, you just cannot digest them with one read. Reading it multiple times is very helpful. I read the Multics paper about 3 or 4 times to truly understand it. The first time I read it, I lost halfway. The lied to myself that I understood it. Not long before the exam, I finally decided to really calm down and focus on reading it very carefully. Then I finally got it. Everything suddenly became obvious! Same for Scheduler Activation paper.

Don’t write on paper (but your can mark)

Previously, I wrote notes on paper. When I finish writing on paper, I write summary in Evernote. That was quite time-consuming. Sometimes it takes me 5 hours to finish the first pass. So I decided to simply write everything in computer. I read a few paragraphs, then type in my understanding. It saves a lot time. Usually, now I finish a good first pass in about 2.5 hours.