Selected Fun Problems of the ACM Programming Contest (proseminar)

Seminar  INF-3664
Torsten GrustDenis HirnTim FischerLouisa LambrechtBjörn Bamberg

⚠️ Signup

To apply for enrollment in this seminar, send an email to by April 5th with the name of the seminar in the subject line and the following content:

  • matriculation number
  • course of study
  • intended degree
  • number of semesters
  • Which courses in the (wider) field of database systems have you already attended?

There is a limited number of places. Writing an email does not guarantee the participation in the seminar. Acceptance/rejection emails will be sent before the first week of the semester.

In this proseminar, participants are each confronted with a selected problem from the ACM Programming Contest (which has been held annually since 1970) or the yearly Advent of Code programming challenge. On the one hand, these problems are characterised by quite fun and interesting tasks, on the other hand, these tasks allow solutions that are often very elegant and compact (the core typically comprises less than 50 lines of program code) and are almost always accompanied by “aha!” effects.

The seminar participants will each present the problem, work out a solution - formulated as elegantly as possible in the participant’s favourite programming language - and present it during the seminar talk. (If there is a “snag” in the solution to the problem, this is not a show stopper: we are happy to give tips - nobody has to fail this seminar because of this).

Important Dates

Friday, June 21, 2024presentations
Friday, June 28, 2024presentations
Sunday, August 18, 2024handin paper
Sunday, September 08, 2024handin reviews*
Sunday, September 22, 2024final paper handin

*Review cycle
After you first handin your papers, each student will receive two peer papers to read and review. You will handin the review report two weeks later and then find some more time to apply suggestions from your received reviews to your own paper. You can find general notes on seminar review cycles at our chair here.

Topics (ACM ICPC and Advent of Code tasks) and process of the seminar

An introduction to the seminar, a look at exemplary problems and the assignment of topics will take place in a first meeting at the beginning of the semester.

Two of your presentations (approx. 25-30 minutes each, followed by a short discussion) will take place on the seminar dates. We will organise the dates in consultation with you.

You are obliged to attend all appointments - not least out of fairness to your fellow students. Please let us know if you are unable to attend an appointment for any reason.

Below you will find some ACM ICPC and Advent of Code problems as examples of programming challenges that we want to work on in this seminar:

ACM ICPC Problems:

For some of the problems that we will be working on, you will find a way to determine the results of the instances entered here. You may even find problem instances there that users have tested before you.

Advent of Code Problems:

Notes on the presentations

  • You can find general notes on presentations at our chair here.

  • Important: On one slide of your presentation, you should explain as precisely as possible why you are using the programming language you have chosen. If you only know one programming language, use this slide instead to identify 2-3 features of a (fictitious) programming language that would have been particularly helpful to you in formulating the solution.

  • Please note that the ACM Programming Contest generally requires well-formed inputs. You can also ignore explicit treatment of illegal inputs in the context of this seminar.

Notes on the seminar papers

  • You can find general notes on seminar papers at our chair here.