Database Systems

Selected Fun Problems of the ACM Programming Contest (Proseminar)

Proseminar  INF-3664
Degree  Bachelor
Readers
Torsten GrustBjö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.de by 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 15submit paper
Sunday, August 29submit reviews
Sunday, September 12final 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:

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: