-
Notifications
You must be signed in to change notification settings - Fork 51
GSoC 2014 Student Guide
This webpage highlights the expectations and requirements for student applicants for Frenetic's Google Summer of Code (GSoC) 2014 effort.
The Frenetic 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.
- Mentoring students that will remain part of the team and contribute to the Frenetic project even after GSoC ends. That is, we're looking for long-term contributors and maintainers for the project.
- Providing GSoC students with experience and ideas that will be useful to them in their careers.
- The student will be expected to commit fully to the project, the time effort required from the student will be 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 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. Students will have to setup a wiki page for their project, and cover important aspects of their proposal's design, the strategy to implement it, a list of deliverables, and lastly, update the wiki page as and when each milestone is achieved. This page along with the code repository allows the community to keep track of the student's efforts.
- 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 with no major roadblocks foreseen to merge shortly after the program ends).
- The student will be expected to follow Frenetic design guidelines (follow coding style, write tests, documentation).
- Students are required to submit weekly reports on the mailing list, covering the progress they've made or the obstacles they've run into. This will help the community keep track of the student's efforts, and help as needed.
- The student will have his or her code reviewed twice by the Frenetic teams. 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 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, is under-performing, or isn't communicating enough with the mentor and development team, he/she will be failed.
Frenetic development typically requires proficiency in OCaml and a good understading of SDN/OpenFlow concepts. Domain knowledge of the components pertaining to the project is also expected as well as proficiency with another programming language if required for the project.
Selection of students for GSoC is competitive.
The students will be selected by a selection committee which will consist of the candidate mentors and other members of the core Frenetic team. Students projects will be evaluated and scored according to the following criteria:
- Overall technical quality of application, including whether the project seems feasible and properly scoped; whether the student appears knowledgeable about Frenetic, SDN, functional programming, and the project plan including proposed milestones.
- Availability of a mentor for the suggested project.
- Impact and relevance to future users of Frenetic. For example:
- Does the proposed project support an active field of research?
- Are the results of the project broadly applicable?
- Does it bring unique capabilities to Frenetic?
- Participation and involvement in the community and with prospective mentors.
High scoring applicants may be asked to discuss their project details. 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 tie breakers.
A good starting point would be to read the GSoC 2014 Project Ideas page. After you decide which idea you would like to work on, join the ferentic-ocaml mailing list and enter #frenetic on freenode.net IRC chat to discuss your ideas with us.
First, become familiar with the specific items that the Frenetic team requests GSoC applicants to include in their proposal by reading the GSoC 2014 Proposal Template.
For more information on how to apply, please look at the GSoC 2014 FAQ. Application for students begin on 10th March 2014 and end on 21th March 2014 (19:00 UTC).
While students are encouraged to discuss their technical plans with potential mentors on the frenetic-ocaml list, 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 Frenetic project will allow you to be exposed to and work on SDN, an emerging networking paradigm that has attracted the attention of both industry and academia. You will likely also improve upon OCaml skills and the ability to work individually within the context of a larger group project.
- This is a great opportunity to contribute to the open source community.
Likely 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 initiating a discussion of your ideas, it is unlikely that 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, this 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, announce weekly updates of their projects and participate on the mailing list and discuss their work over IRC chat.
The publications page lists several publications related to Frenetic that describe a whole lot about its aim and core concepts.
Acknowledgments. This guide is largely borrowed from that of the ns-3 team, which we thank for making it available.