Der dritte Platz bei der Code Competition “Rucksackproblem”

Robert konnte mit seiner Lösung des Rucksackproblems überzeugen und den dritten Platz bei der Code Competition gewinnen. Herzlichen Glückwunsch!
Der Masterstudent an der RWTH Aachen hat seine Lösung in Java erstellt. Warum, und welche Schwierigkeiten dabei aufgetreten sind, erfährst Du im Interview.

IT-Talents: Hallo Robert, herzlichen Glückwunsch zu Deinem dritten Platz bei der Code Competition „Rucksackproblem“! Erzähl den anderen IT-Talenten doch kurz etwas über Dich.

Robert: Hallo, ich bin Robert und studiere an der RWTH Aachen. Dort absolviere ich zurzeit meinen Master in Informatik. Diesbezüglich liegt mein besonderes Interesse in der Softwareentwicklung, aber auch im (Software)-Projekt-Management und an Themen aus der Optimierung.

IT-Talents: Was hat Dich motiviert, an der Competition teilzunehmen und wie bist Du auf den Wettbewerb aufmerksam geworden?

Robert: Auf IT-Talents bin ich zufällig bei der Suche nach Projektideen gestoßen. Das war erst kurz vor der Veröffentlichung der Code Competition „Das Rucksackproblem“. Da ich vorher noch an keiner Code Competition von IT-Talents teilgenommen habe, mir das Rucksackproblem bekannt war und ich nochmal Lust auf ein Projekt hatte, habe ich einfach mal mitgemacht.

IT-Talents: Wie bist Du an die Lösung der Aufgabenstellung herangegangen? Hattest Du schon Erfahrung mit dem Rucksackproblem?

Robert: Mich interessieren generell Themen aus dem Bereich Operations Research. Deswegen war mir das Rucksackproblem schon aus diversen Vorlesungen bekannt. Mit Hilfe kurzer Internetrecherche und Vorlesungsunterlagen, habe ich mich für zwei Lösungsstrategien entschieden: eine Näherungslösung per Greedy-Heuristik und eine optimale Lösung mittels Dynamischer Programmierung.

IT-Talents: Du hast Dich für eine Lösung der Aufgabenstellung in Java entschieden, wieso?

Robert: Für Optimierungsprobleme greife ich lieber auf C++ zurück, jedoch wollte ich mein Wissen in Java nochmal mehr erweitern. Da ich für das Ganze auch eine GUI basteln wollte, habe ich gleichzeitig die Chance genutzt, mir dabei das JavaFX Framework anzugucken, mit welchem ich zum ersten Mal gearbeitet habe.

IT-Talents: Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert?

Robert: Da ich immer wieder nur zwischendurch daran arbeiten konnte, lässt sich die genaue Entwicklungsdauer schwer sagen. Das Erstellen der Algorithmen sowie des restlichen Backends ging relativ zügig. Hier habe ich zusätzlich darauf geachtet, eine möglichst saubere Architektur (Modularer Aufbau, Daten- und Funktionskapselung, Entwurfsmuster, Wiederverwendbarkeit etc.) zu schaffen. Das Entwickeln der grafischen Oberfläche hat etwas länger Zeit in Anspruch genommen, da ich mit JavaFX noch nicht gearbeitet hatte und ich nicht besonders erfahren in GUI-Design bin. Deshalb habe ich immer wieder ein paar Kleinigkeiten gefunden, die sich an der GUI verbessern ließen. Ich habe auch zusätzlich darauf geachtet, die grafische Oberfläche möglichst robust gegenüber Eingaben zu gestalten.

IT-Talents: Und was hast Du durch die Entwicklung gelernt?

Robert: Ich habe das JavaFX Framework kennen gelernt. Zusätzlich habe ich gemerkt, dass sich das Strategie Entwurfsmuster (Strategy Pattern) und die Schablonenmethode (Template Pattern) hervorragend für das Erstellen der beiden bzw. weiteren Lösungsalgorithmen kombinieren lassen. Außerdem habe ich gemerkt, dass auch für kleinere Projekte eine vernünftige Dokumentation doch mehr Zeit in Anspruch nimmt als gedacht.

IT-Talents: Zu guter Letzt: Was würdest Du Dir thematisch gerne einmal als Code Competition wünschen?

Robert: Hm, interessante Themen in der Softwareentwicklung gibt es viele. Optimierungsprobleme finde ich persönlich recht interessant, aber „Der Handlungsreisende“ und „Das Rucksackproblem“ waren ja erst kürzlich Thema. Ansonsten würde ich gerne mehr zu Verbesserungsansätzen im Bereich der Softwareentwicklung (DevOps, Continuous Integration etc.) erfahren, aber das ist relativ schwer in eine Code Competition zu verpacken. Vielleicht etwas zur automatischen Code Generierung?

IT-Talents: Vielen Dank für Deine Teilnahme, das Interview und viel Spaß mit Deinem Gewinn 😉

Rückmeldungen