Selected Fun Problems of the ACM Programming Contest (Proseminar)

Degree Bachelor
- Readers
- Torsten Grust • Björn Bamberg
- Presentation
- TBA (end of June), B305.1 (Sand 13)
- Paper
- August 15 (submit)
August 29 (reviews)
September 12 (final) - Participants
- max 6
⚠️ Signup
To apply for enrollment in this seminar, send an email to
db-lehre@cs.uni-tuebingen.deby April 16th with the name of the seminar in the subject line and the following content:
- Matriculation number
- Course of study
- Intended degree
- Number of semesters
- A preference for two topics you would like to work on (see Topics).
Please note: There is a limited number of places. Writing an email does not guarantee the participation in the seminar. Acceptance/rejection emails will be sent in due time.
Topic
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 meet at the beginning of the semester (Friday, April 17, 10:00-10:30, Sand 13, B305.1) where we will properly introduce this seminar—this meeting is mandatory for all participants! After that, you will regularly meet with your seminar supervisors to discuss the problem and your solution. The specific dates for these one-on-one meetings will be arranged in consultation with you.
We will have additional meetings where we will hear your presentations on
- TBA (end of June TBA)
- at Sand 13 in Room B305.1.
Contact
If you have any questions, please contact Björn Bamberg .
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.
Presentations
There is a time limit of 25 minutes per talk. Do not overrun. Afterwards there will be a short Q&A session of about 5 minutes. Prepare your code editor to be able to answer questions about the code.
The talks should consist of at least:
- the problem description,
- an explanation of the implementation
- and of a live demo.
General notes for our seminar presentations can be found here.
Paper
On 5-6 pages, each student will have the opportunity to present their solution in form of a scientific paper. We will use the ACM template that is common for many conferences in the database community.
In a review cycle, students will receive their fellow students’ papers and provide peer feedback in form of a written review. After writing reviews for others and receiving the reviews for their own paper, each participant will have about two weeks to incorporate the feedback into their final submission.
Please, consult our general notes on seminar papers here.
Presentation Dates and Paper Deadlines
The student presentations (part 1 of the seminar examination) will be on
- TBA (end of June)
The submission deadlines for the student papers (part 2 of the seminar examination) are:
| Sunday, August 15 | submit paper |
| Sunday, August 29 | submit reviews |
| Sunday, September 12 | final paper submission |
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: