MIT 6.001 Structure and Interpretation of Computer Programs Course, 1986.