Search within Lanny's blog:

Leave me comments so I know people are actually reading my blogs! Thanks!

Sunday, February 01, 2009

Random Thoughts: My Philosophy for Scholarship in Computer Science

I actually wrote this article to meet the requirement of a take home exam, but I thought you'd still find something useful. So here it is:

My Philosophy for Scholarship in Computer Science

When I first started graduate school at BYU three years ago, I had no idea what research in Computer Science (CS) was all about. Three years later, after successfully defending my Master Thesis and publishing (presenting) multiple papers, I found myself much more comfortable at research work. I am not saying that research in Computer Science is easy. In fact, it is quite difficult and requires strong determination and much devotion. I do, however, believe that there are secrets to success in Computer Science scholarship. If we follow these guidelines, research can be fun and rewarding, and we can also make good contributions to the advancement of the field. In this document, I would like to share my “philosophy” for key elements of research in Computer Science.

(a) Reading and evaluating CS literature

Literature review is a critical element of CS research. It allows a researcher to see what others have done to solve the problem the researcher is interested in. One purpose of the exercise is to not repeat prior art; another equally important purpose is to learn from previous work, see other researchers’ insights, and identify possible places for improvement. A good place to start is to find a survey paper for your research problem, which can help you identify key researchers in the field. Your advisor can also provide useful information in this regard. Next, pick a few seminal papers from the key researchers. See what papers they reference and what papers cite them. We are blessed with the Internet, so take advantage of it and use research tools such as Google Scholar, CiteSeer, and DBLP in your search for papers. Give priority to papers published at top journals and conferences. An important skill in literature review is focused reading. There are too many papers out there and you cannot read them all. Quickly skim through the abstract and conclusions to determine if the paper is related to your research problem. If it is, then do focused reading with the goal of identifying the paper’s contributions and shortcomings. Finally, make literature review an ongoing process throughout your research because new research results continuously appear.

(b) Doing CS research

The first step of doing CS research is to define a research problem. The problem has to be important in the field. A problem no one cares about is useless. The problem also has to be well defined and scoped. Setting a clear target makes reaching the target possible. Restricting the problem to a reasonable scale provides focus and allows incremental advancement in the research field. The problem also needs to be interesting to the researcher because passion is the driving force that enables the researcher to endure the many difficulties during research and keeps the research going. The second step in CS research is to select the appropriate research pattern for conducting research investigation. Choosing the right research pattern helps the researcher identify directions to follow, strategies for validation, and fallacies to avoid. The next step is to create a testable hypothesis. The keyword here is “testable”, meaning other people can repeat the experiments and achieve similar results. This step also implicitly requires careful experiment design and meaningful metrics. Overlooked factors in experiments and badly selected metrics can skew experiment results or lead to erroneous conclusions.

(c) Writing-up CS research

A lot of people think that writing is important only because it leads to publication, which shows research achievements and also let others know what the researchers are doing, but writing is more than that. Writing should begin at the same time research begins, because writing shapes research and writing is an important research activity. Writing things down on paper forces one to formulate and clarify. It helps a researcher better understand what to say and also helps the researcher better organize thoughts and materials. When writing for publication, the most important thing is to choose the right set of keywords so your paper ends up in the right group of reviewers’ hands. A pithy title and a well-written abstract (including the four elements described in Secret #1 in class slides) are also important because they might be the only things the busy reviewers read. To make a reviewer’s job easier, it is a good idea to embed answers to review questions (such as contributions, new results, and validation) in the abstract, introduction, and conclusion sections. For the body of the paper, write precisely and concisely. Know the technical capabilities of your readers and then write accordingly, striking the right balance of detail. Use simple words and active verbs. Avoid using the “official style” writing because you will sound like a lawyer and really annoy your readers.

(d) Teaching CS topics

Teaching is not about showing off knowledge. A good teacher doesn’t focus on teaching facts (they can be looked up), but instead, focuses on teaching learning methods and problem solving skills. A great teacher not only teaches, but also inspires students to seek knowledge on their own. For CS topics, teaching should focus on algorithms (including complexity analysis) and how to apply them to solve real-world problems. An ideal CS course should have interesting problems for students to solve at the beginning of the course, and throughout the course, students can apply algorithms, techniques, and problem solving skills to these problems creatively. They are also encouraged to apply skills learned in the course to problems the students are interested in themselves. A successful teacher creates a stimulating environment that encourages students to participate and learn.

(e) Presenting CS research

Presenting your research is like advertising your ideas to peers. It promotes discussion and collaboration among researchers who are interested in the same research problem. The presentation should be self-contained to tell a complete story, however, it should not include all the technical details, because that makes the presentation tedious and chubby. If the audience wants more details about your research, they can always read your paper. Presentation slides should be simple and easy to follow, lively but not too fancy. Try to make your story interesting and impressive, and when necessary, use simple graphs to show trends in your data analysis. Speak clearly and it is okay to use an excited tone. Don’t be afraid to show your passion, but also don’t make your presentation into a political speech. Always back up your claims with facts or experimental results. Adding a bit of humor is always helpful. Just make sure your audience will understand your joke. Lastly, don’t perform live demos unless you are very sure the demos will work smoothly, otherwise, you will look like a fool on stage.

(f) Evaluating the research work of others

Reviewing papers of others is a great opportunity to learn, to teach, and to contribute to the research community. The reviewer can learn not only what mistakes to avoid in his or her own writing, but also good writing styles and techniques the reviewer can follow. The review process also allows the reviewer to provide insightful feedback to the authors in order to help them improve the quality of their research and writing. A review report normally contains the reviewer’s summary of the paper, comments about the solution described, experiments performed, metrics used, and conclusions drawn, and comments about the presentation. It is possible that a reviewer will reject a paper that has great ideas but does a poor job presenting them. Remember to always be respectful and use a positive tone rather than a negative tone. Realize that no papers are perfect. Use a simply rule of thumb when evaluating others’ work: review work of others the same way you would want others to review your work.

At the end of the document, I’d like to emphasize “passion” in all the elements of research. Passion is the best motivation for keeping the research going. Passion also leads to the best reward for research progresses ¾ feelings of self-fulfillment. I hope you find great passion in your research, which makes research more than work and turns it into a life style. With passion, we strive for excellence, and make the world a better place.

Picture of the Day:

Picture credit: Argyris Kaldiris