Credit for much of the material goes to Peter Chen and past CIS 1962 instructors!