SICP exercises and notes.