labs from http://courses.cms.caltech.edu/cs11/material/advcpp/