On Mon, Mar 11, 2013 at 8:48 AM, Brent Yorgey <byorgey@seas.upenn.edu> wrote:
Hi everyone,

I am currently teaching a half-credit introductory Haskell class for
undergraduates.  This is the third time I've taught it.  Both of the
previous times, for their final project I gave them the option of
contributing to an open-source project; a couple groups/individuals
took me up on it and I think it ended up being a modest success.

So I'd like to do it again this time around, and am looking for
particular projects I can suggest to them.  Do you have an open-source
project with a few well-specified tasks that a relative beginner (see
below) could reasonably make a contribution towards in the space of
about four weeks? I'm aware that most tasks don't fit that profile,
but even complex projects usually have a few "simple-ish" tasks that
haven't yet been done just because "no one has gotten around to it
yet".

If you have any such projects, I'd love to hear about it!  Just send
me a paragraph or so describing your project and explaining what
task(s) you could use help with --- something that I could put on the
course website for students to look at.

Myself and several of my friends would find it useful to have a plotting library that we can use from ghci to quickly/easily visualize data. Especially if that data is part of a simulation we are toying with. Therefore, this proposal is for: A gnuplot-, matlab- or plotinum-like plotting API (that uses diagrams as the backend?). The things to emphasize:
  * Easy to install: No gtk2hs requirement. Preferably just pure haskell code and similar for any dependencies. Must be cross platform.
  * Frontend: graphs should be easy to construct; customizability is not as important
  * Backend: options for generating static images are nice, but for the use case we have in mind also being able to render in a window from ghci is very valuable. (this could imply something as purely rendering to JuicyPixels and I could write the rendering code)
 
* What I would hope from you is a willingness to exchange email and/or
  chat with the student(s) over the course of the project, to give
  them a bit of guidance/mentoring.  I am certainly willing to help on
  that front, but of course I probably don't know much about your
  particular project.

I am willing/able to take on the mentoring aspect :)

Jason