Selected Fun Problems of the ACM Programming Contest (Proseminar)

- Readers
- Torsten Grust • Louisa Lambrecht • Denis Hirn • Tim Fischer • Björn Bamberg • Nico Faden
⚠️ Signup
To apply for enrollment in this seminar, send an email to
db-lehre@cs.uni-tuebingen.de
by April 9th with the name of the seminar in the subject line and the following content:
- matriculation number
- course of study
- intended degree
- number of semesters
- preferred 2 topics you could imagine working on (see Topics)
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).
Meetings
We will have weekly meetings
- at Sand 13, 72076 Tübingen in room B305.1
- on Wednesdays, 12-14.
Participation is obligatory (attendance is not optional like in lectures). If you do not attend the first appointment (April 16, 2025), you will unfortunately not be able to take part in the seminar.
Contact
If you have any questions, please contact Louisa Lambrecht .
Examination
The seminar examination consists of a presentation and a paper. Your slide material and your paper of the problem and its solution will be in English. You may hold your presentation in German.
Each participant will talk and write about the problem he/she has worked on and present interesting code bits of their solution. Focus on the specific features of your programming language that are relevant to your solution — a complete presentation of the code is not appropriate (neither in the presentation nor the paper). Make sure to include visually appealing graphics and/or simple UI visualisation of your problem/relevant steps in between.
You can find general notes on presentations and papers on our website.
Topics
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:
- Black Box
- Booby Traps
- Wiring Assistant
- The Unsinkable Ship
- Biker
- Scanner
- Clock Breaking
- Oil
- Triangles
- Go with the Flow
- Directing Rainfall
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: