Computer composition principle course design