This course is a continuation of the (Advanced) Competitive Programming course. During the semester, we will cover algorithms and data structures that, due to their efficiency and comparatively easy implementation, see extensive usage in competitive programming (and often in real-world applications too!). While the previous course focused on basic algorithms, in this semester we focus on more advanced topics, for example treaps, min-cost flows, lazy segment trees.
Every topic is first introduced in detail during the lecture, and afterwards we provide a set of exercises, to be solved by implementing the solution in a programming language and submitting it to an automated testing system. The highlight of the course are the live contests, where the students compete between themselves in teams of three, just like in the official ACM ICPC competitions.
This time, the course is once again held in cooperation with the Institute of Theoretical Informatics at KIT in Karlsruhe. The lecture content is synchronized, and we provide a common forum as well as a common scoreboard, so that HPI- and KIT-teams can directly compete and also keep in touch, i.e., by discussing solution ideas.