Teaching Design by Contract using Snap! | IEEE Conference Publication | IEEE Xplore