GSOC2024ApplicationTemplate
Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects
Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers
- ns-3's GSoC Contributor guide
- ns-3's GSoC Mentor guide
- Get in contact with the ns-3 team: Google group | Zulip https://ns-3.zulipchat.com
Student Application Template
The following are specific items that the ns-3 team requests GSoC applicants to include in their proposal that is submitted to Google.
When you apply to Google, you will upload a PDF document with your proposal. This document is what the ns-3 committee will review. Please follow the outline below. We recommend that you create a Google doc and share it privately with your mentors throughout the application development so that mentors can provide comments and feedback to improve it.
About You
Identity Information
- Name. Your name
- Email. Your contact email
- Country. Your country of citizenship
- Institution. Accredited institution where you are enrolled as student (college, university, master program, PhD program, undergraduate program, etc), if applicable.
- Advisor. (if applicable). Is your research work supervised by a professor or research group?
Patch Requirement
Provide a URL to a repository (or pointer to publicly available commits, or a GitLab snippet, or email one of the org admins, with a patch that satisfies your patch requirement for your application to ns-3. Completion of either the suggested patch assignment or a comparable code submission is *mandatory*. Some project ideas have project-specific patch requirements (check with the mentor about it).
Note: If you opt to provide a patch to the problem described in the patch requirement, keep your solution private by pasting the link to your code in your application to Google, not posting it on the mailing list or submitting a GitLab.com merge request.
Background
Education and Skills
Include your academic background and skills related to data networking, as well as any software experience with C++ and/or Python.
Work
Be sure to denote any work experience you have in relevant areas.
Your past work experience does not need to be a job where you got paid, you can mention any projects you have participated in.
Experience with ns-3
Do you have any experience with ns-3? Do you have any experience working on the ns-3 source code? If you have published code on GitHub or GitLab, link to it here.
Open-source experience
Do you have any prior experience working on open-source software? If you have published code on GitHub or GitLab, link to it here.
Research
Make sure to denote any research experience you have in relevant areas.
Why you?
Why are you the best candidate for the project you're applying for? Why are you interested in it? How does it align with your future plans?
About The Project
Project Title, Size, and Summary
Pick an appropriate project title, and try to summarize in one sentence what the project plans to accomplish.
Highlight if you are applying for a small sized project (90 hours), medium sized project (175 hours) or a large project (350 hours).
User-visible changes
Explain what new or repaired capability will be available to users once the project is completed. Be as specific as possible, and describe in terms of what the user will see-- not how it will be implemented. Both a qualitative description of the enhancement and sample C++ or Python API that users would use would be appropriate here.
What kind of working examples would be provided?
What documentation will need to be written?
Test plan
How will any new code be tested?
What test cases could be written now that would fail (produce incorrect output) but would succeed at the completion of the project?
Are there any performance concerns that must be tested, and how?
How will you guard against user error (misconfiguration)?
How will you convince a skeptic that the implementation works correctly?Approach
What is your technical plan for achieving the goals of the project?
What components and functionality will have to be developed, integrated etc.?
Which development methodology or strategy would you use?
Plan
Provide a plan of how the project will be completed within the timeframe of GSoC (175 hours for medium project, 350 hours for large project). It may be useful to break this down into two phases. Try to isolate the project's main features, group them into coherent units, and list them as 'milestones' or 'deliverables'. Make sure you consider the time you will need to document, test, write examples, respond to reviewers comments, and fix your code after every deliverable is finished.
Commitments
Do you have any other commitments over the summer that would impair your ability to participate in the project, e.g., classes, thesis defense, existing work commitments, etc?
Of these, the Approach and Plan elements will require significant thought, development, and discussion. Applicants are advised to bring their ideas to the ns-developers list or Zulip chat and open up a discussion with the ns-3 team or with one of the listed mentors to develop these portions of their application prior to submission. Only applications that have well refined and developed technical objectives and plans are likely to be competitive. The ns-3 team will provide comments and help refine proposals somewhat after they are initially submitted, but obviously the stronger they start the stronger they will be. Also understand that the better you plan your project by discussing it on the list, the more clearer your path will seem through the summer. In all our previous editions of GSoC, our strongest and most successful proposals were those which had been discussed at length beforehand on the mailing list and on Zulip.
In addition, once GSoC proposals have been accepted and reviewed, promising candidates may be invited to virtually meet some of the ns-3 team and discuss their project further in a chat or other online meeting.