Competitive Programming

This project is a collaborative effort between Dr. Scott Wallace (Principle Investigator) from the School of Engineering and Computer Science and Dr. Jason Margolis from the School of Education. The project is funded by a grant from the NorthWest Academic Computing Consortium (NWACC).

Synopsis

To produce excellent graduates, a student's coursework must be engaging while simultaneously providing the incentives to take learning beyond the mere requirements of the assignments. One approach for creating this environment is known as Competitive Programming. In this paradigm, students submit homework solutions that can be automatically evaluated. Students compete either against one another or against benchmark solutions created by the instructor. In contrast to standard homework assignments which are submitted and graded only once, with competitive programming, students typically can resubmit any given assignment as often as they like until the due date. This process provides a feedback loop that allows each student to see the effects of their efforts. Rapid feedback is believed to be lead to better learning outcomes even when used independently from competition.

Goals

Our project has two aims. First, we will build an open source software infrastructure for rapid feedback and competitive programming that can be used on a variety of course assignments. Second, we will use this software to explore the relationship between competition, rapid feedback and student performance. The hope is to obtain a better understanding of what motives students to excel in their work.

Publications and Related Project Materials

Scott A. Wallace and Jason Margolis. Using Competitive Programming to Teach Computer Science Project proposal submitted to the NorthWest Academic Computing Consortium. February, 2007.
pdf

Software Downloads

WSUV Submission Server version 0.6. This is the current version of the submission server which allows students to upload their projects to a centeral location, allows faculty to view the history of student submissions, as well as downloads each students' work. And, critically, the submission server also supports plug-in evaluators (see the curiculum packages below for some examples) that provide rapid/on-demand feedback for students submitting software projects. This software requires linux, python, apache, mysql and php.

Curriculum

The submission server has been used with a variety of classroom projects. Project descriptions are available below and associated evaluation software will be provided to faculty as requested. Please send a message to Scott Wallace for more information.