What algorithm in algebraic geometry should I work on implementing? This summer my wife and one of my friends (who are both programmers and undergraduate math majors, but have not learned any algebraic geometry) want to learn some algebraic geometry from me, and I want to learn how to program from them, so we were planning on working on some computational algebraic geometry together. While there are several books which we could work through, I thought it might be more fun and productive if we had the goal of developing a usable new algorithm, or at least implementing an algorithm which no one has implemented before. I do not have any ideas, but I thought that some mathoverflowers might have had an idea for an algorithm they would like to see implemented but have never had the time to work through the details.  Keep in mind that my wife and friend will have to learn any mathematics past a first course in topology and abstract algebra as we go. 
So does anyone have any ideas for an algorithm they would like to use which is within the reach of my "team" to implement within a summer?  We are planning on working on this stuff between 2 and 3 hours a day for about 3 months.
 A: Steve, do you know about Macaulay 2? It's a computer algebra system designed for commutative algebra and algebraic geometry. 
Moreover it has a fairly easy to use language and an easy way to create packages. 
Probably if you would join the Google Group "Macaulay 2" and asked this same question you would get some offers. 
A: Just a thought, but maybe you should have a look at sage.  It's a big open source project that is currently under very active development.  If you're interested in contributing, I would suggest that you post to the sage-devel Google group with this same question.  Some thoughts for things to do would be to improve the support for relative extensions of number fields and for function fields.
A: My proposal: a usable tool for working with line bundles on toric varieties and their cohomology. There are some tools (Polymake, Latte) for working with polyhedra, but I haven't seen a library dedicated specifically to toric varieties.
For example, you could provide a GUI tool for working with toric surfaces, where you can e.g. blow a point up by a single click (as far as I remember, this corresponds to adding an edge), compute intersections of divisors and cohomology of line bundles. 
Also: toric deformations and degenerations, action of the Frobenius morphism (there are two descriptions of Frobenius push-forwards of line bundles, due to Thomsen and Bondal), finding exceptional collections etc.
I think this could be really interesting and useful.
A: Faugère's F5 algorithm for computing Groebner bases.  A huge number of algorithms in algebraic geometry rely on Groebner bases, and F5 is reputed to be "the best".  But there is only one implementation, and it is not so widely available.  The community could really benefit from a second, well-explained implementation.  
This is more of a ``foundational'' answer that you might have wished for, I'm sure.  But it seems that most algebraic geometry algorithms eventually rely on Groebner bases, so why not start there?
