-
-
Notifications
You must be signed in to change notification settings - Fork 438
Hints for Successful Proposals
Students who will have the best chances to get awarded engage the community - participate on the mailing list, or the STE||AR IRC channel (#ste||ar on Libera) - prior to submitting an application, and write good proposals.
Join the mailing list, and the IRC channel. Talk about what you want to do. If we know you're willing to get involved, then we'll review your proposal more favorably. Also, if you're active on the mailing list, it might lead us to believe that you are willing to participate beyond the end of your summer project.
Writing good proposals can be difficult and takes practice. Remember to be precise, concise, and professional in your proposal.
- Write Precisely - Be very specific about the project you are proposing. Don't be vague. Say what you're proposing to do early in the text of your submission. Demonstrate that you understand the requirements, design space, and solution space of you proposal by seeing what others have done before. Including notes on related projects and their potential impact on your work will convince
- Write Concisely - Only write about the work you are proposing to do and work related to your proposal. Telling us that you placed highly in a programming competition doesn't necessarily demonstrate your qualifications with respect to your project.
- Write Professionally - Writing a GSoC proposal is no different than applying for a job. Emoticons do not belong in job applications.
Well-written proposals will demonstrate the student's understanding of the problem, in addition to describing what they are proposing to work on. Good proposal will generally do the following:
- Describe the problem being solved - Give some context to the proposal. If you're proposing to implement a generic tree container, give some background on trees and their applications in computer science or software development.
- Explain why the problem is important (to HPX) - Sell us on your idea. Why should we be interested in funding development of a particular HPX feature? This should be pretty easy for trees.
- Give examples of similar or related projects (also in other languages) - Demonstrate that you have actually thought about the problem and looked for other solutions. This helps convinces us that you're actually interested in the problem, and have developed some insights on the project. What other C++ libraries have support parallel computing?
- Outline the work being proposed - Tell us what you're going to build. What classes? What algorithms? Are there any natural extensions to your work that might be included. Are you going to build a fixed-sized n-ary tree? A multi-way tree? Specializations for binary trees?
A proposal is not just a statement of intent. A proposal that only says, "I will write a tree class" is not a good proposal, and will be ranked with the lowest possible score.
The following information is not considered when reviewing your proposals:
- Grades in classes
- Your rank in your university
- Faculty that you work with
- Success in programming contests
- Religious affiliations
We rank proposals based on the feasibility of proposed work and whether or not we believe the student is capable of accomplishing that work. From experience, we have observed no correlation between these factors and the ability to complete a project. We primarily gauge capability through our interactions with students on and off the mailing list.
Reviewing is basically done in two rounds. First the mentors score each of the proposals, then we vote on which of the highest scored proposals will be funded based on the number of slots Google awards to us. The specific process may vary from year to year, but you definitely need to write a good proposal and usually need to be active on the mailing list to make it to the 2nd round.
Acquiring funding to work on a HPX project is very competitive. We expect to be able to only fund 10% (or less) of the proposals that we receive, and we hope to receive a lot of proposals. Following these guidelines will substantially increase the likelihood that you will make it into the voting round.
- HPX Resource Guide
- HPX Source Code Structure and Coding Standards
- Improvement of the HPX core runtime
- How to Get Involved in Developing HPX
- How to Report Bugs in HPX
- Known issues in HPX V1.0.0
- HPX continuous integration build configurations
- How to run HPX on various Cluster environments
- Google Summer of Code
- Google Season of Documentation
- Documentation Projects
- Planning and coordination