I could show you how EM improves accuracy of the learned models, but for reasons of time, I will focus on a more interesting use of the algorithm.  Note that our algorithm learned from data where Intelligence and Difficulty were never observed.  It was essentially inventing these concepts, i.e., defining for itself a concept of “smart” versus “weak” students, based on the data.  Of course, in this example, the concepts were there to begin with, in the data we generated.  Does this work in real data?