Q:

Machine learning algorithms/approaches for class recommendations? 

I am asking a theoretical question about machine learning in terms of clustering.  Is it possible, given a set of data of classes that students have taken in a semester to recommend additional classes that students should take if they selected some classes? 
I am thinking along the line of forming clusters of classes and figuring out if a particular set of picked classes match with a pre-existing set of classes.  Then, recommend the class that are in the set.  But I am new to machine learning, and so welcome any other suggestions of algorithms. 
In addition, this is not particularly theoretical, so feel free to ignore: but does anyone know any particular software that can accomplish this?  I know LensKit is a software to handle recommendations but it seems to need ratings (which I do not have). 
I welcome any mathematical manipulations that can turn clusters into "ratings."  Thanks. 

A:

Actually the simplest approach would be Association Rule Mining, aka Frequent Itemset Mining (FIM). " Clustering" is an attempt to uncover structure, but not so much to make recommendations.  It's explorative, not predictive; the clusters will most often be something rather obvious to the domain expert. 
FIM will learn rules of the form that students, which have taken class A and B, have also taken class C with x% probability, i.e.
$$ {A,B} \rightarrow {C} \text{ with confidence }x\%$$
You really need to go through some introductory course.  APRIORI is discussed everywhere, and is an obbvious fit here.  In particular as you don't have quantities to predict (you don't have users that take class A 5 times and class B 2 times and thus are likely to buy -2 times class C...) Depending on your data, FPGrowth or Eclat algorithms may be more performat though.