The NCSS Challenge: teaching programming via automated testing

Summary

The NCSS Challenge (http://challenge.ncss.edu.au/) is an online programming competition for Australian high school students. There are four different courses being run during 2011: Introductory Python, Intermediate Python, Advanced Python, and Embedded Systems (using the Arduino). In 2010 we had over 1700 students participate in the Challenge. There are a number of interesting technical challenges which had to be overcome in order to facilitate such a system.