Automating the assessment of programming lab assignments.