Google Summer of Code opened for students on Monday, March 10, more than a month earlier than last year. If you weren’t following the announcements and that deadline caught you wrong-footed, all I can say is that the good news is that students will know their fate by April 21, well before the summer starts.
In other good news, the The R Project has once again been selected as a mentoring organization , and a variety of mentors have proposed a number of projects for students to work on during this summer. If you’re interested, here’s a quick introduction to the GSOC program and pointer to the R-related project ideas that are lining up for students this summer.
About Google Summer of Code
A quick reminder – Google brings together students with mentors to work on open-source projects of their choosing. Mentors get code written for their project, but no money; students get paid $5,000, equivalent to a nice summer internship.
If you’re a student and you’re interested on something R-related, pick something you’re interested in working on (whether a mentor has submitted an interesting idea you want to pursue, or if you have an idea and want a mentor). With an idea in hand, submit a project application directly to Google before Friday, March 21 at 12:00pm PDT. Google will award a certain number of student slots to the “R Project for Statistical Computing,” and projects will be ranked and slots allocated by the GSOC-R administrators and mentors.
Like last year, there are a few proposed R projects that are finance-related. I won’t go through them here, but look for the names of past mentors: Jonathan Cornelissen, Kris Boudt, David Ardia, and Doug Martin; as well as new mentors such as Daniele Signori and David Matteson. This is promising to be a very productive summer…
This year, Brian Peterson and I are looking for a student to work on improving time series visualization for xts time series objects, building on what we learned in successful GSOC projects in 2012 and 2013. This project will specifically focus on developing multi-panel time series charts that may be created from specified panels with a chart layout. Charts may (eventually) be of composed of panels with several different chart types, but the focus this summer is only on time series charts that may be linked via the x- and/or y-axes.
By default, plot.xts will simply chart the time series data in the form it is passed in, using a default panel that is a simple line chart. The following will show a single panel line chart with six lines:
> dim(x.xts)  60 6 > plot(x.xts)
A panel function will be used to define transformations of the data and its display. For example, there might be a function called
panel.CumReturns that takes return data, chains together the individual returns, and produces a line chart of cumulative returns through time. This code will show a single panel as defined in
panel.CumReturns with six lines:
> dim(x.xts)  60 6 > plot(x.xts, panels=panel.CumReturns)
Multiple panels can be used in a chart. Say we have a
panel.BarVaR function that takes returns and plots only the first series in a bar chart overlayed with an expanding window calculation of
VaR for that asset. And we have a
panel.Drawdowns function that produces a line chart of drawdowns through time for all time series returns data passed in. These panels can be passed the same way via an argument. In this case, the layout will be simply be divided by the number of panels, for example, divided into thirds in the following:
> dim(x.xts)  60 6 > plot(x.xts, panels = c(panel.CumReturns, panel.BarVaR, panel.Drawdowns))
This would result in a three-panel chart, each with six data data series (although the panel function may not choose to draw all of them) available.
There's much more, but that should whet your appetite.
Functions will likely be included in xtsExtra, an R package that provides supplementary functionality for xts. The package also served as a development platform for the GSoC 2012 and 2013 xts project, for experimental code that may eventually end up in the xts package.
There are also several other very interesting projects proposed for the broader R Project organization as well. Take a look - these are in various states of needing students or mentors.
Students, start your proposal...
Students should also take a look at the R Project's proposal template as a starting point. Proposals are expected to be very detailed, and may run to ten or more pages. In short, this is a competitive process and you will need to put your best foot forward. I should also note that the process is very iterative - you'll get feedback as time goes on and will be expected to be responsive to the questions people ask. Project mentors usually also propose a test - some task that they think is representative of the summer's work that will help demonstrate your skills and fitness for the project.
Or, consider bringing something new to the table. This is an active, dynamic group of people who have a broad set of interests, and the process can accommodate well-proposed ideas that garner support.
Good luck, and I hope to hear from you soon.