Challenge2Code: Getting First-Year UG Informatics Students to Program through Staged and Streamed Programming Competitions
Computer programming is a skill to be learned through practice rather than by reading a book or attending a lecture. The most efficient and effective way to learn this skill is by working through a series of programming challenges, from simple to more complex tasks. While we constantly encourage our students to do so---through labs, small-group tutorials, coursework, but even within lectures---we find that most of our students still require more practice and a strong incentive to invest the effort.
It is well-known that students arrive at university with very diverse backgrounds in programming, ranging from students with no knowledge at all to students who know and can use two or more programming languages. As a result, any programming practice offered must be achievable by students with no background (who frequently need the most practice) while being challenging enough for the students already fluent in programming.
As a consequence, failure rates of first-year programming courses are usually higher than for other subjects.
This project aims to help address these challenges by developing a series of programming competitions to run in parallel to the first-year modules. These competitions will be open to all first-year students. The challenges will be staged in complexity, starting from comparatively easy programming quizzes and moving on to a number of challenges in which student programs compete against each other. The project will produce the challenge tasks, but more importantly, will produce a set of software tools that allow entries to be assessed automatically, so that there is minimal effort required in running the competition year on year, making the project sustainable beyond the funding provided.
This addresses the challenges as follows: 1) Staged tasks provide accessibility to weaker students while offering challenges to strong students. 2) Public competition creates an additional incentive for students to participate, increasing programming practice.

We are having a min-hackathon at King's tomorrow to kick off the final stage of the competition. Students will be asked to write trading agents competitively trading in bets on the success of Kickstarter projects!
Many thanks for Fares Alaboud of the KCL Tech Society for organising the event. Read more here and here. Find some pictures here.
Prizes for the second stage have been awarded. Here are the lucky winners:
- Beginners stream:
- Anuar Aitimov, 990 points
- Subhav Gautam, 475 points
- Steven Ngo, 450 points
- Advanced stream (pic):
- Leonardo Ciocan, 770 points
- Michal Dorko, 757 points
- Lokesh Khatri Tekchandani, 270 points
The competition is now open and available from here.
Student intern working on the design, development, and maintenance of the competition system.
Funder
Project funded through King's College London College Teaching Fund 2013.
Duration
01 July, 2013 to 31 March, 2014 (9 months)
Amount
£ 18,881.60
[pdf] Poster, research areas: Teaching
Research contribution:

