A guideline for students doing networking research
In this article, we provide the required resources and experience to
guide the students who are working on networking research.
The basic requirements of a graduate student are self-discipline, self-motivated and great ability of self-learning. Don't be so scared by those selfs. In fact, during every stage of our school life, those selfs are always emphasized by our teachers. Nevertheless, those selfs would play a much more significant role in our graduated life than any other stages, as what is in front of us is the tremendous knowledge which is still booming. We cannot live just by learning and doing research following our advisors. All those selfs together will provide you the foundation to achieve a successful graduate life. Besides these, the other requirement would be English; no more words would be needed to emphasize its significance in computer science research.
Research, actually, is a set of skills that follow a regular paradigm. In particular, they are first becoming an active reader and listener, and then through effective reading and listening you would gain sets of problems and ideas, with the problem solving skills you would get rid of those problem thoroughly, and the finally requirement is to organized your solution reasonably in your paper. We would guild you with how to acquire these skills.
We would not find any topics if we don't read cutting-edge papers. As such, it is especially important for us to find valuable papers to read. Generally we utilize the library and internet resources to retrieve what we desire.
- Google scholar
:
the most popular and powerful scholar specific search engine. However, it is only effective when you have target.
- Besides google scholar, we could also resort to computer science specific database: ACM database, IEEE database. However, they are not charge-free. Fortunately, our university had already brought them for us, dial Bras or use proxies provided by the university before connected to them, then we could download most of the resources. Apart from the search function, these databases also collect and classification the papers from conferences and transactions which would help for target-less readers.
- However, those archived papers are to some degree out-of-dated. To get the newest information, we could find them from conference main pages, personal and research group web pages of those prestigious scientists in specific field.
When find interesting papers, you should try your best to make clear of following questions:
- From where did the author seem to draw the ideas?
- What exactly was accomplished by this piece of work?
- How does it seem to relate to other work in the field?
- What would be the reasonable next step to build upon this work?
- What ideas from related fields might be brought to bear upon this subject?
For further reading skills, you could refer to:
Efficient Reading of Papers in Science and technology. And the material
Finding a topic and beginning Research
could help you how to utilize the information in papers and lectures to forge your ideas.
Considerable guideline is provided:
How to write a great research paper, Donald Knuth's
Mathematical writing,
How and How Not to Write a Good Systems Paper
and what need to add is writing of paper is a skill that require iteratively writing and reading for tens of periods, it is especially true for people whose English foundation is not solid enough.
In addition, we are also tend to provide some problem-solving related resources£¬although problem-solving is the thing we are familiar with since primary school. Since, the most of the problem we confront with is much more complex than we have met and require quit formal solving process that we may not experienced. The following materials maybe help: Polya's How to solve it
and How to get a solution
from Dahua Lin's
blog.
What worth to mention that the popular writing tools in scientific field is the Latex rather than MS Word. Compared to MS Word, Latex is not a "what you see is what you get" style of editor. It is rather like a programming tool that even requires a compiler. A famous guideline write by Donald Knuth, also the inventor of Latex, is The TEXBook.
Presentation is an oral formation of your works. Thus, the core spiritual is as same as the writing of papers -- clearly present your problem and the background of this problem, the existing solutions, what's your solution's advantage and so on.
The general paradigm of how to do presentation is as follows:
How to give a good research talk.
In this section, we are prone to provide some materials that would help you enhance the ability in networking research. Although most of these fundamental was supposed to study through lectures, the courses provided by our department may not thoroughly meet our needs. As such, we could resort to MIT Open course
to get a systematic study of corresponding subjects.
The corresponding web page of MIT open course subject on computer networking is here.
We recommend the book: "Computer Networking: A Top-Down Approach Featuring the Internet" written by Kurose, J., and K. Ross, as the fundamental textbook for introduction of the networking.
For further study in wireless networking, we recommend David Tse's Fundamental of Wireless Communication
and Xiang-Yang Li's Wireless Ad Hoc and Sensor Networks Theory and Applications. The fundamental papers list is here, covering the most state-of-the-art areas in wireless networking research.
One of the most important causes for your research is Probability and stochastic process. The following books are strongly recommended: "A First Course in Probability" and "Introduction to Probability Models" written by Sheldon M. Ross, "Probability and Computing, Randomized Algorithms and Probabilistic Analysis" written by Michael Mitzenmacher.
Other required math background include: Discrete Mathematics, Combination Optimization, Convex Optimization, Random Graphs, and Game theory.
According to ACM curriculum
on algorithm, beside the basic algorithm and basic data structure, we should also acquire advanced algorithm knowledge, like LP, network flow, intractability of algorithm and the analysis skills like competitive analysis.
The corresponding web page of MIT open course subject on advanced algorithm is here.
The recommending textbook is: For general algorithms: the classic algorithm text:
Introduction to algorithms
and the newly brief algorithm textbook
Algorithms.
For specific algorithm area: the book Computers and Intractability: A Guide to the Theory of Np-Completeness
and also the book: Online Computation and Competitive Analysis.
Programming skills are required when we want to verify our works by either simulations or implementations in real world. For simulation we usually use Java or C for writing upper-layer simulations while for lower layer algorithm or protocol NS-2 is essential. A tutorial on NS-2 could be found here.
In terms of implementation, it would be much more difficult than simulation. For implementing a network protocol, dozens of tools is presented. Usually, in this stage, be familiar with click is preferred. Fundamentally, C programming language, especially the networking programming section, is dominating in our everyday implementing and simulation activities.
This set of materials is not perfect. Any problem or supplement would be extremely welcome. Finally, hope this would be helpful for you.
Yanchao Zhao @ SWIM
2009-09-26