Undergraduate computing classes typically deliver content through passive lectures and require students to write code from scratch. However, students do not always pay attention in lecture and writing ...