Note: This is an archvied version of our old webpage. Some links might be broken. The current one can be found here.
I7 Logo
Chair for Foundations of Software Reliability and Theoretical Computer Science
Informatik Logo TUM Logo
Practical Course: Algorithms for Programming Contests

  News | Schedule | Content | Material

ConPra course page for the next (WS2020/2021) semester is open

The oral part of ConPra SS20 procedural update.
The oral part will be mainly conducted via (unrecorded) video calls including the student and two course team members. We plan to set up a separate room in (TUM RBG) BigBlueButton for these video calls, with a fallback to LRZ Jitsi Meet if something goes wrong. We will request to see the TUM ID card.
We schedule the students into medium-size group for a half-day with some default order. Our «waiting room» procedure is: we have created a chat channel at TUM Rocket.Chat, we ask you to join this channel on the day you are in the list, and we will mention the next person from the list (of course if you agree to trade places, we have no problems with that) once we have finished the conversation with the previous student. Rocket.Chat seems to support pop-up notifications for mentions in the usual setups; after approximately a minute with no signs of reaction, we will accept anyone from the time group willing to go next. Once we have sent the link to the video call to whoever is the next, we will mention whoever is expected to be called afterwards.
The current planned days are: 22 July for «as early as possible» requests (if there are many more people who ask to be there, we will split into two days in the same week), 31 July for «with a week between contest week and the oral part», 7 August as the date that seems to saitsfy the «early August» requests, and we offer 17 August due to the popular demand for a very late slot. We assigned people to days according to our understanding of the preferences expressed, and we randomly shuffled the order. See the list.
If we put you into the wrong day: please write us, we will update the list. If two of you agree to trade the places inside the day, you can also write us, we will take this into account.
If you are not on the list: write us and pick the day.

Expected knowledge at the oral part — oral part is open-book, but you should of course know the course content…

Contest week: you can form teams of two, please both team participants write to the course email conpra@in.tum.de to register a team.
Our current contest team list file

Oral part of Conpra SS2020: we consider as the most natural the week after the contest week, and the week aferwards. Please write to the course email conpra@in.tum.de to tell us which you prefer; also if you prefer a later time (up to mid-August sounds reasonable, but of course we will try to group all such requests).
The default way of performing the oral part is a video call, as we need to see the face and the student ID at least once. We hope that by the time of the exam it will be reasonably easy for students to come to TUM if needed, so that doing the video call from on-campus is an option for those who have problems with quiet space/connection throughput/privacy concerns at home. We expect in-person examinations to be in principle possible if there is a good reason, but the amount of precautions imposed means we avoid that absent a specific reason.

AES-CTR now concluded, we will still consider testcases breaking the «graded» solutions, of course…

«Approximation Experimentation about Soup: Contest for Testcase Research» (AES-CTR)

A testcase contest for bonus points (and unspecified amount of chocolate bars for the best participants, but at least one is guaranteed if someone gains points)! See the archive with the solutions to break in the materials.
AES-CTR scoring: 2 points for breaking each (almost-reasonable) solution (providing a test case that makes it go outside 4x approximation bound), +1 point for a generator capable to provide many diverse testcases breaking the same solution (please specify what is the success rate), and more (see README.txt inside the archive)
Submission via the course email

Spreading a forum discussion

Some students are asking for general advice on approaches to problem solving — please share your experience with your coursemates!

Class meeting

The first meeting will take place on Tuesday 21.04.2020 at 12:01 in room FMI 00.08.038.
A recorded RBG BigBlueButton room will be used for meetings until in-person meeting restrictions are lifted. Recordings (audio+synchronised slide switches, navigable by timestamp and by slide number) are accessible to the course participants like other materials.

Preliminary meeting

The preliminary meeting has taken place on Wednesday 22.01.2020 at 13:01 in room FMI 00.08.038. Slides are available.

Registration details

Due to circumstances, this semester we are a smaller team and the target practical course size is 30 students. For course registration, we use the matching system, and we ask the applying students to complete some preliminary tasks.

The amount of work taken into account is two problems (there are some easy ones in the list), and we will check progress before submitting the matching priorities (it is not too late as long as matching system is open for students).

We remind everyone that the practical course includes five programming problems of various complexity per week, and most of them are harder than the easy ones in the list. To demonstrate the prerequisite skills (and interest in the course), we ask the students wishing to register (both local and exchange students) to solve some problems in a similar format. As our internal platform is tied to the local TUM accounts, we use an established third-party platform for programming contest based in EU, SPOJ.

Procedure:

  • Register at SPOJ. No need to specify your real name if you do not wish to.
  • Solve and submit some of the problems from the list below. We expect everyone to solve at least two; we might have to use further progress for ranking in the matching system. Some problems are easy, some require more effort, and some benefit from having a bit of experience or background knowledge. To the best of our knowledge, all of the problems are solvable in any of C++, Java or Python 2 (PyPy).
  • To confirm that the account is created by a student applying for ConPra course, submit solutions that immediately print a wrong answer to the listed marker problems in the specified order.
  • Send an email with you full name and SPOJ account name (public profile link) to the course contact email, conpra@in.tum.de — please put ConPra and SPOJ in the beginning of the subject
  • Assign ConPra some priority in the matching system.
  • Once you are either registered for the course or no longer wish to be registered for the course, you may delete the SPOJ account if you wish.
Chosen problems (please solve and submit at least two, more might be taken into account, trying and failing to solve more problems will be evaluated no worse than not trying, problem order is random): Marker problems, please submit code that immediately prints a wrong answer to the marker problems in this order (the same three problems are repeated twice):