Hi all,
( the following e-mail was stolen/adapted from Bill Hart's e-mail to the FLINT
project:
https://groups.google.com/forum/#!topic/flint-devel/6UMQ9Sehqf0 )
In order to save repeating the same information on list too often, we will
summarise it all in this thread. Please keep checking back here as we may add
further information.
fplll participates in the Google Summer of Code as a member of the Lmonade
umbella organisation. The Lmonade page with all the project proposals is here:
http://wiki.lmona.de/get_involved/projects
Assessing applications
=================
All the applications that are submitted to Lmonade are assessed by all the
Lmonade mentors. Not all the mentors will understand what the project is, so
your application must be written for them as much as for us.
To be accepted by Lmonade there are numerous requirements which must be met
(before the application deadline):
1) We require a piece of code from you which demonstrates familiarity with C++
coding and with the use of GitHub. It is desirable if you contribute a patch
to fplll itself, since this also shows us that you understand the layout of
the fplll project. However, this is not required if you have some code you
contributed to another similar Open Source project. We simply want to know how
well you can code and how well you understand algorithms.
2) We need to make sure you understand the mathematics for the project. In
most cases, this will be evaluated by looking at your application on Melange.
So please include enough details so that we can judge whether you understand
the maths. Don't be afraid to include some equations.
3) Blogging: it is very important that during the actual GSoC project that all
Lmonade scholars write weekly blogs on their progress. Therefore, we ask that
you write a sample blog post before the application deadline, which we can
look at.
4) Communication: we will judge the level of communication between you and the
relevant mentors for the project. In planning your application, we expect to
see communication back and forth between you and the mentors. Please try to
avoid questions such as "can you tell me what to do". We can help you much
better if you tell us specifically what it is you need to know. We are here to
help, but we need to know how we can help you.
5) The application on Melange. When evaluating these, we look to see how
detailed the timeline is, and how well the applicant has understood what it is
we want to implement. Applications that give more specific information and
which give realistic and carefully thought out timelines are much more likely
to be accepted. Discussing ideas you have with the mentors is key to getting
the level of detail right.
fplll patches
=========
If you would like to contribute a patch to fplll to demonstrate your
competence at C++ programming, you could for example implement a simple Gram-
Schmidt process. This would also demonstrate that you are familiar with basic
algorithms in the area.
Ideally we'd like to see a hundred or a couple of hundred lines of code;
enough to judge how well you can write code.
If you provide a code sample which is a patch of fplll, note that we review
all code before including it in fplll. We'll very likely ask you to make
changes before merging it. And we may or may not merge your code. Don't be too
concerned if we don't merge your code! The main objective is for us to be able
to judge your coding ability, and we can do that whether or not we decide to
merge your patch.
Please fork the fplll project on GitHub and push your changes to your GitHub.
You can then just initiate a pull request.
Some advice
==========
We think Lmonade has quite a number of excellent projects with top mentors. To
maximise your chances, you might like to apply for more than one project. For
example, as well as a core fplll project, you might also like to apply for the
Singular project, a FLINT project, or the Popov form project.
If the other project you apply for has completely different mentors, you
increase your chances of being accepted if someone just beats you for the
first project you applied for.
Applying for more than one project is not required. It is just a suggestion we
have. We've just noticed that some years we have two really good students
apply for the same project, and we can only take one of them due to mentor
over commitment. Other projects have no good applicants at all, and those same
students may have easily got picked for that project.
Of course you have to take your own time commitments into account. If you have
too much on at the moment, one really good application is better than two
average ones!
Cheers,
Martin