Writing for Computer Science

Rating: 5/5 stars

I can't sing enough praises about this book. Whether you are an undergrad doing research for the first time, a fourth year Ph.D. student starting to write a doctoral thesis, or a seasoned researcher, I can assure you that you will find some value in it.

I've been working on research relating to graph algorithms and combinatorics since September. At this point, we are entering the phase of research where we start to formally write-up our ideas. Of course, I've maintained a work-in-progress document with all our discussions, but in all honesty, it's kind of like someone projectile vomited a bunch of words onto a LaTeX document.

Organizing those ideas into a paper that's both comprehensible, interesting to read, and publishable is a whole different beast. 
I had no idea how to go about literature review and I wasn't sure what the protocol was for talking about past work/results in the context of our new ideas. I guess I never really paid any attention to how publications are written. In the past, when I had to read a paper, I would simply read for content without noticing things like lay-out, writing-style, and logical flow.

It's easy to get carried away and include too much detail that doesn't add anything substantial to the paper. On the other hand, the paper needs to convey reasoning behind why certain decisions were made: why that particular data set was used, why that method was used over an alternative, what drove the writer to think about the idea from that new perspective. All this, while making it as clear and error-free as possible, because it increases the chances that it will be accepted to conferences and journals. Academic writing is basically a minefield of things that can go wrong.

This is where "Writing for Computer Science" steps in to save the day. Ever since I started the book, I've been reading research papers through a more critical lens. I take note of how past work is woven into the story line (every good paper should tell a story), how definitions are introduced, and even why certain diagrams are used. Professor Justin Zobel, the author of the book, was successfully able to distill the daunting task of research into a straightforward textbook. Each chapter is broken down into multiple bite-size subsections and has a handy little checklist that identifies the key things to look out for.

Shot of an end-of-the-chapter checklist through my (critical) lens.

These checklists have been very helpful in organizing my ideas into a more publication-worthy format. I still have a long way to go, but I definitely feel like I've started to think and write a bit more like an academic since reading this book. It's also helped to demystify some of the aspects of publishing in CS, which can differ from math and other sciences.

The book is currently in its third iteration. Since the first edition, the contents have been expanded to include other important elements of research, including how to run experiments and how to find and select appropriate data sets. In fact, this textbook is also a great look into how computer science research works, so if you want a sneak peak into the inner workings of research this book is a great start (...of course, the #1 way to find out what CS research is, like, to get involved first hand).

Some concluding remarks:

If your university subscribes to Springer, then you might be able to access the digital version of this book through your institution's library. I did this, and ended up liking the book so much that I bought a hard copy as well!

Disclaimer:

I am not endorsed by Springer or the author in anyway. All of these thoughts and opinions are purely my own and in no way reflect the views of my employers.

Comments

Popular Posts