If you take a look in the examples/ and io/ directories of Giraph's source tree, there are many IO formats (to read initial graph data and write results on HDFS) and there are also many example algorithms. Pretty much anything else you want to implement would be fine, put up a JIRA issue suggesting each algorithm idea and I'm sure if anyone has a problem they will comment or -1 the JIRA if any turn out to be redundant or otherwise a poor fit for Giraph.
Thanks for your interest, I think Giraph's application programming interface is really intuitive and comfortable to use once you get used to it, it ought to make a great project for your class. Eli
