ns-3 has been accepted into Google Summer of Code 2010! If you want more information about possibly participating in the ns-3 GSoC program, read the below information.
This webpage highlights the expectations and requirements for student applicants for ns-3's Google Summer of Code 2010 effort.
The ns-3 team is looking for three things from every successful GSoC project:
- Developing code that can be incorporated back into the main codebase and utilized by a variety of users.
- Developing new members that will remain part of the team and contribute to the ns-3 effort even after GSoC ends.
- Providing GSoC students with experience and ideas that will be useful to them in their careers and/or research.
- The student will be expected to commit fully to the project, the time effort required from the student will the same as a full time job. Applicants should recognize that being accepted into GSoC is a serious commitment and will be the focus of their time over the duration of the program. Any existing commitments for class, other jobs, etc should all be discussed as part of your application.
- At the beginning of the program, the student will be required to provide a detailed plan of work covering the 12 weeks of GSoC. This should be developed with the help of the mentor.
- The student will be expected to produce mergeable code (either merged completely at the end of the project, partially at the end of the project, or not merged yet but no major roadblocks foreseen to merge shortly after the program ends).
- The student will be expected to follow ns-3 design guidelines (follow coding style, write tests, documentation)
- The student will have his or her code reviewed twice by the ns-3 community. The first review will be taken prior to the mid-term evaluations and will look at issues such as scope, public API, test plan, and open issues. The second review will be taken at least two weeks prior to the end of the program and will include review of the produced code for possible merge into the project main tree. All students will be briefed on a checklist of things to prepare for in these reviews. Between these reviews, mentors will periodically (at least weekly) review the student's output and will provide guidance where needed, and track this progress in a public place such as a wiki entry or the mailing list.
- If a student drops the project before the GSoC program ends, he/she will be failed.
Students have inquired about what software development background and tools are required. ns-3 development typically requires proficiency in C++ and a debugger such as gdb or ddd. The valgrind suite of tools, and a system profiler such as oprofile, are typically useful. Python may be necessary for some projects dealing with the build system or that involve using Python to integrate ns-3 with other programs, but is generally an optional component.
The Selection Process
Selection of students for GSoC is competitive; last year, this project saw a roughly 10% acceptance ratio.
The students will be selected by a selection committee which will consist of the candidate mentors and selected active maintainers. Students projects will be evaluated and scored according to the following criteria:
- 1) overall technical quality of application, including whether the project seems feasible and properly scoped, whether the student appears knowledgeable about ns-3, C++, the models that are being proposed, and the project plan including proposed milestones.
- 2) relevance of project proposal to ns-3 project goals.
- 3) availability of a mentor for the suggested project.
- 4) participation and involvement in the community through IRC channel and mailing lists.
and any other criteria that the GSOC program suggests to us.
High scoring applicants may be asked to discuss their project details over email or IRC. When the evaluation process concludes, the organization administrator will determine the highest ranking applicants and if there are close rankings or concerns, hold a meeting among selection committee members to resolve tiebreakers.
Where to begin
A good starting point would be to read the GSoC Frequently Asked Questions, then read the GSoC 2010 Ideas page. After you decide which idea you would like to work on join the development mailing list and enter the #ns-3 on freenode.net IRC chat to discuss your ideas with us.
How to apply
For information on how to apply go to how to apply to GSoC. The deadline is April 9 at 12 noon PDT / 19:00 UTC.
While students are encouraged to discuss their technical plans with potential mentors on the ns-developers list (see A piece of advice below), they are under no obligation to share their application details on the list.
- GSoC is an excellent opportunity to gain experience working on an open source project.
- Working with the ns-3 project will allow you to improve your networking knowledge, C++ skills and to be in contact with a highly skilled team of developers.
- This is a great opportunity to make your contribution to our open source community.
A piece of advice
Based on the ns-3 team's experiences in the 2008 and 2009 Google Summer of Code, the most important factor in the success of an application and project is communication. That process begins in the application phase. Without joining the mailing list and starting some discussion of your ideas, it is unlikely your application will be complete or rich enough to be competitive. Please feel free to discuss your proposed technical approach, plan, and other factors on the mailing list while developing your application. In addition to helping you develop the necessary details, focus, and priorities to write a good application, that will also demonstrate your commitment and willingness to dedicate time to the effort. During the program, every student is expected to communicate regularly with their mentor, as well as to participate on the development mailing list and IRC chats.
Additional information about ns-3
Additional slides about the ns-3 GSoC project (from last year) are also available, from a GSoC Infosession at the University of Washington on March 5th, 2009.