Core Information

The SICSA Programming Challenge is a programming competition to solve a set of given problem specifications within a given time period, typically within one afternoon. There will be prizes at the end of the competition: 100 GBP for the winner, 50 GBP for the second and third place, and a judges price of 50 GBP. This event is open for all under-graduate and taught post-graduate students at Scottish universities.
This event is graciously funded by the Scottish Informatics and Computer Science Alliance (SICSA).

The next SICSA Programming Challenge "humble Hamming" will run on Wed 25.1.2023 from 2-6pm online using the OpenKattis.

These programming challenges will be an opportunity for students to test and exercise their programming skills. It will consist of a sequence of programming tasks that are posted through OpenKattis. Each successfully solved problem will gain you points, and the overall highest scoring student will be the winner of the challenge.

In order to register for the event, you'll need to sign-up for the event once it's available on OpenKattis (ca 2 days before the event). If you want to be considered for prizes, sign-up with your real name and your affiliation (university). You can pariticpate anonymously, or use an alias, but in this case you won't qualify for prizes.

We'd enourage participants to take a look at the embedded screencast below to familiarise themselves with the system. To learn about usage of the system, problems can be solved directly (outside a contest) and be submitted for validation. setup of the programming challenge.

Set up of the Challenge

  • To register, sign-up for the challenge on OpenKattis once the challenge is online (see 'upcoming events' on OpenKattis). You'll need an account on OpenKattis, which can be linked with e.g. your gmail account.
  • When setting up the account, do use your real name and identify your institution, if you want to participate in the run for the prizes. Email me your Name on OpenKattis and your matriculation number (student number) by the end of the challenge, so that we can validate the winners.
  • This challenge is for individual contributions, so when you are asked about a "Team" just put down your name.
  • More info about OpenKattis usage is in the next section below.
  • There are some more comments on the challenge tasks (with pictures) below.

Basic Usage

Embedded video with guidance on how to use OpenKattis (video/webm with VP8 codec; maximise when viewing):

If the embedded video doesn't work, use this direct link to the video on MS Stream (needs MS login).

Some General Tips about OpenKattis Contests

Some quick tips on OpenKattis usage (see embedded screencast below):

  • IMPORTANT: all problems read from stdin and write to stdout (see INPUT / OUTPUT examples for the required format given in each problem)
  • when you click on the 'help' tab and then the language you choose, you'll get useful info, often including a code snippet how to read from stdin and convert to e.g. Int (search for 'Solving a problem')
  • you are free to choose any of the supported languages (see 'help' tab for a list)
  • the problems are sorted by difficulty, and scores (bracketed number under/next to the problem) reflect difficulty (roughly)
  • you don't need to do the problems in sequence: just pick the ones you fancy and have a go at implementing them
  • the validation of the submission checks both functional correctness (produce the right output for a given input) but also performance (that it runs within a given time limit); so you must make sure to produce an efficient implementation;
  • if this is the first time you use OpenKattis, I'd recommend to start with the first (easiest) problem, to learn about the environment (and reading/writing to/from stdin/stdout)
  • when validating your submission, you will get only basic info about passing and failing; unfortunately, you will not see the input/output of the test case that failed; for debugging you might want to create some test cases yourself to check for corner cases in your implementation;

On scoring in OpenKattis:

  • Note: At the moment there is an issueg in the setup of the challenges which prevents selection of a custom scores. Therefore, for this challenge all tasks have the same score. Note that the level of difficulty is in ascending order, from A to F (difficulties 2.2 to 6.9), so best do the challenge tasks in this order.
  • For a successful submission of a solution (i.e. the uploaded program passes all validation checks) you'll get the full points associated to this problem.
  • Your final score will be the sum of successfully solved problems; so you can choose whether you want to go for a few high scoring or several low scoring problems.
  • The winner will be the participant with the highest total score, using time as a tie-breaker.
  • Important: For each unsuccessful submission, you will get a time penalty of 20 minutes, added to the total time you spent on the problems.
  • Therefore, you want to be careful not submit too often or you will accumulate time penalties.

Main resources:

  • The platform we will be using for the competition is: OpenKattis
  • A screencast with basics about OpenKattis usage is available above as an embedded video that should be playable in your browser

Background Reading


This event is supported by SICSA