http://ged.msu.edu/courses/2009-fall-cse-491/cse491-2009-lecture2.html -- C. Titus Brown, ctb at msu.edu