Rubik is a program that helps you learn about and solve Rubik's cube. The screenshot above should give you some idea what it looks like and what it does.
It's free and includes complete documentation. Download information appears at the bottom of this page.
It's pretty new, so I'd be happy to hear about any bugs you find or features you might suggest. I'm also interested in documentation errors or omissions, and am particularly interested in comments on my rough draft of the associated mathematics tutorial.
In addition, I am working on a document that can be used in conjunction with the program and a physical cube to introduce concepts like group theory and permutations to students using a method that's perhaps more engaging than the normal approaches.
It has a "solve" command so even students who can't solve their physical cubes yet can enter their cube's configuration and recieve a series of moves that they can use to restore thier cube to "solved" without resorting to a screwdriver.
MacOSX executable (for Intel Macs): rubik1.tar.gz
MacOSX executable (for Intel Macs, Mountain Lion): testrubik.tar
Note: On some Windows systems, the cube graphics is scrambled. If this happens to you, try reducing or eliminating your hardware graphics acceleration. See: http://www.deskshare.com/Resources/articles/dmc_turnoffhardwareacceleration.aspx
Linux executable + documentation + patterns: linuxrubik.tar.gz
Some pretty pattern macros: patterns.rub
Here's the source code for a program that will allow you to calculate the size of the subgroup generated by a set of generators. It works by brute force, but on my machine, with a gig of memory, it can do subgroups with up to about 30,000,000 members: subgroup.tar.gz
Group Theory via Rubik's Cube is a document (currently still in rough-draft form) for use by teachers, students, or anyone interested in learning a bit more about the cube and the mathematics behind it. This document assumes no knowledge of group theory, but is aimed roughly at the level of bright high-school students.