Challenge2Code: Getting First-Year UG Informatics Students to Program through Staged and Streamed Programming Competitions

Project Overview

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.

Project Progress

27/03/2014

Prizes for the third stage have been awarded. Here are the lucky winners:

  • Beginners stream (pic):
    1. Anuar Aitimov, 32.06$
    2. Amrinder Rai, 9.99$
    3. Dillan Patel, 1.51$
  • Advanced stream (pic):
    1. Thomas Paul Owers, 10.0$
    2. Codrin-Gabriel Gidei, 8.75$
    3. Michal Dorko, 7.24$
07/03/2014

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.

20/02/2014

Prizes for the second stage have been awarded. Here are the lucky winners:

  • Beginners stream:
    1. Anuar Aitimov, 990 points
    2. Subhav Gautam, 475 points
    3. Steven Ngo, 450 points
  • Advanced stream (pic):
    1. Leonardo Ciocan, 770 points
    2. Michal Dorko, 757 points
    3. Lokesh Khatri Tekchandani, 270 points
03/12/2013

Prizes for the first stage have been awarded. Here are the lucky winners:

  • Beginners stream (pic):
    1. Steven Ngo, 2541 points
    2. Codrin-Gabriel GÓdei, 2490 points
    3. Anuar Aitimov, 2360 points
  • Advanced stream (pic):
    1. Mustafa Al Bassam, 1480 points
    2. Leonardo Ciocan, 1386 points
    3. Jooyoung Lee, 785 points
28/10/2013

The competition is now open and available from here.

Project staff

Student intern working on the design, development, and maintenance of the competition system.

Funding

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

Publications

[-] 2014

Steffen Zschaler, Piotr Galar, and Andrew Coles: Challenge2Code: Encouraging first-year computer-science students to program. 8th King's College London Excellence in Teaching Conference, 2014.
[pdf] Poster,  research areas: Teaching
Research contribution:  Writing contribution: