Homework, practice code, and teaching aids for programming language concepts