The NCSS Challenge: teaching programming via automated testing

Mr. Tim Dawborn bio
30min ◊◊ Intermediate
Sunday 11:40am, Ionic
categories: django, education, engineering, security, university

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. Executing arbitrary code on your servers which is supplied somebody on the internet is a scary situation for any system administrator. We have developed an elegant solution for this problem whereby we can securely execute arbitrary code not restricted to any particular subset of languages.
 
This presentation will be going through three aspects of the Challenge infrastructure. First, how the Challenge works from a competition point of view, and how we teach programming via automated testing. Second, we will cover the sandbox we developed to facilitate this arbitrary code execution. Last, we will cover the application stack powering the Challenge site itself.


files Files:





# Permalink