What are some interesting coding projects (doable in Java) that relates to group theory? I would like some ideas of possible programs I can write in Java that involves some computational aspects of group theory.  My only ideas so far is to write a program that computes the product of two elements of $S_n$, but this is too easy.  Any suggestions/ideas will be greatly appreciated.  
 A: Another suggestion may be to look at the Java library http://java.symcomp.org/ which implements a Java API for SCSCP protocol and OpenMath encoding, with a collection of middleware developed on top of it. 
Using this API, a Java application will be able to send requests and get back results to/from any SCSCP-compliant computer algebra system, and one of such systems is GAP by means of its SCSCP and OpenMath packages. This way, group-theoretical computations will be performed on the GAP's side, while the Java implementation will take care of things not easily doable in GAP or not possible there at all. 
One can envisage a range of possible applications, from simple forms to input data and get back the result, to e.g. visualising the Cayley table of a finite group, or its lattice of subgroups, or, say, visualising finite-state automata. It may be worth to look for some ideas from GAP packages XGAP, automata and sgpviz which use different technologies for visualisation.
This may be not the original idea of the question, but obviously the link with the group theory (or other areas covered by GAP or other CAS) will be present. I am happy to talk about this in more details. 
A: One option (off the top of my head) would be to determine the order of an element in a cyclic group.
I suggest looking at this book (free): http://abstract.pugetsound.edu/
It has some programming problems (designed for a different language, but should be close enough) that relate to whatever topic the chapter discusses.  Obviously, group theory is included.
A: An interesting project would be: given a group, its generators and its defining equations, print the whole group table. Consider this example, taken from A Book of Abstract Algebra, 2nd Edition by Charles C. Pinter (Dover Book):
Let $G$ be the group $\{e, a, b, b^2, ab, ab^2\}$ whose generators satisfy $a^2 = e$, $b^3 = e$, $ba = ab^2$. Your program should print the following table for $G$:
$$\begin{array}{c|cccccc} 
  & e & a & b & b^2 & ab & ab^2 \\ \hline
e & e & a & b & b^2 & ab & ab^2 \\
a & a & e & ab & ab^2 & b & b^2 \\
b & b & ab^2 & b^2 & e & a & ab \\
b^2 & b^2 & ab & e & b & ab^2 & a \\
ab & ab & b^2 & ab^2 & a & e & b \\
ab^2 & ab^2 & b & a & ab & b^2 & e \\
\end{array}$$
