A book by DonKnuth 2001 see DonKnuthMitLectures ISBN:1575863278