Participate in the Open - Contribute to OSS as a Team!

image

informatiCup 2025 Challenge: Participate in the Open - Make Your Team OSS-Contribution!

Motivation: Open Source ist überall: Mehr als 90 Prozent aller Softwareprojekte und der größten Unternehmen nutzen Open Source Software. Das Beitragen zu Open Source Projekten ist ein großer Vorteil für Softwareentwickler, Studierende, Forscher und alle IT-Enthusiasten, da es nicht nur die technischen Fähigkeiten erheblich verbessert, sondern auch Soft Skills wie Zusammenarbeit, Kommunikation, Marketing und Konfliktmanagement, was zu deutlich höheren Chancen auf dem Arbeitsmarkt führt. Allerdings haben sich auch die Beitragshürden für größere Open Source Projekte erheblich verschoben. Die meisten Kernentwickler sind bezahlte, langjährige Softwareprofis und automatisierte Qualitätsprüfungen sowie Beitragsrichtlinien können für Anfänger sehr einschüchternd wirken. Das Ziel des diesjährigen InformatiCup ist es, Studierende zu ermutigen, diese anfänglichen Beitragshürden zu überwinden und die vielen Belohnungen einer potenziellen Karriere mit Open Source-Entwicklung zu erschließen.

~

Motivation: Open Source is everywhere: More than 90 percent of all software projects and largest companies use Open Source software. Contributing to Open Source projects is a large advantage for software developers, students, researchers and any IT enthusiasts as it does not only significantly improve technical skills but also soft skills like collaboration, communication, marketing, conflict management resulting in much higher chances in the job market. However, the contribution barriers for larger Open Source projects have shifted significantly as well. Most core contributors are paid, long tenured software professionals and automated quality checks and contribution guidelines can look very intimidating for beginners. The goal of this year’s InformatiCup is to encourage students to get over this initial contribution hurdle and unlock the many rewards of a potential career involving Open Source related development.

Wo registrieren? - Auf der Suche nach einer Studiengruppe? - Wie trage ich zu Open Source bei?

~

Where to register? - Looking for a student group? - How do I Open Source?

Aufgabenbeschreibung:

  • Projektauswahl: Wähle ein Projekt aus Millionen von Open Source Projekten, das zu deinen Interessen passt. Wir möchten die Auswahl auf bestehende Open Source Projekte mit einer aktiven Community beschränken. Wähle dein Projekt auf GitHub, GitLab, Codeberg oder einer ähnlichen Hosting-Plattform. Ein guter Indikator für eine aktive Community ist die Anzahl der Sterne, ein aktiv verwaltetes Issue-Log sowie regelmäßige Merges und Releases.

  • Aufgabenidentifikation: Identifiziere einen spezifischen Algorithmus oder eine Funktion, an der du arbeiten möchtest. Dies umfasst das Hinzufügen einer neuen oder die Verbesserung einer bestehenden Funktionalität des Projekts. Großartige Inspiration für potenzielle Features und komplexe Bugfixes wären Repositories und Issues, die mit hacktoberfest oder good first issue gelabelt sind.

  • Code-Beitrag: Erstelle einen Fork des Repositories, erstelle einen neuen Branch und implementiere deine Lösung.

  • Pull Request: Sobald der Code vollständig ist, erstelle einen Pull Request zum ursprünglichen Repository. Pull Requests müssen innerhalb der Bearbeitungszeit gestartet werden, um berücksichtigt zu werden. Der Pull Request muss den Code-Beitragsrichtlinien des geforkten Repositories folgen und alle automatisierten Prüfungen bestehen, die Teil der Projekttest-Suites sind. Dein Pull Request muss nicht gemergt werden für eine gültige Einreichung.

  • Code Review und Feedback: Sei offen für Feedback und Vorschläge von den Projektbetreuern und anderen Mitwirkenden.

  • Ausarbeitung: Dokumentiere schließlich dein Projekt in einem begleitenden Dokument im Umfang von 8 bis 12 Seiten. Ausgenommen Referenzen, ein- oder zweispaltig erlaubt, Haupttext-Schriftgröße 10-12pt.

~

Task Description:

  • Project Selection: Select a project that aligns with your interests from millions of Open Source projects. We would like to restrict the selection to existing Open Source projects with an active community. Choose your project at GitHub, GitLab, Codeberg or a similar hosting platform. A good indicator of an active community is the number of stars, an actively managed issue log as well as regular merges and releases.

  • Task Identification: Identify a specific algorithm or feature to work on. This includes adding a novel or improving an existing functionality of the project. Great inspiration for potential features and complex bug fixes would be repositories and issues labelled with hacktoberfest or good first issue.

  • Code Contribution: Fork the repository, create a new branch, and implement your solution.

  • Pull Request: Once the code is complete, create a pull request to the original repository. Pull requests must be started within the processing period to be considered. The pull request has to follow the code contribution guidelines of the forked repository and satisfy all automated checks that are part of the projects’ test suites. Your pull request does not have to be merged for a valid submission.

  • Code Review and Feedback: Be open to feedback and suggestions from the project maintainers and other contributors.

  • Elaboration: Finally, document your project in an accompanying document ranging between 8 and 12 pages. Excluding references, single or double column allowed, main text font size 10-12pt.

Zusätzliche Anforderungen:

  • Dokumentation: Der Code sollte gut dokumentiert sein, einschließlich klarer Docstrings, die seinen Zweck, Parameter und Rückgabewerte erklären.

  • Demonstration: Erstelle eine Demo oder ein Tutorial, das die implementierte Funktion zeigt. Biete klare Anweisungen und Beispiele für Benutzer, um die implementierte Funktion zu verstehen und zu nutzen.

  • Community-Engagement: Wir ermutigen dich, mit der Open Source Community zu interagieren, Fragen zu stellen sowie Hilfe anzubieten und anzunehmen.

  • Testen: Dein Projekt sollte sich auf Unit- und Integrationstests stützen, um die Korrektheit der Implementierung sicherzustellen.

~

Additional Requirements:

  • Documentation: The code should be well-documented, including clear docstrings explaining its purpose, parameters, and return value.

  • Demonstration: Create a demo or tutorial showcasing the implemented feature. Provide clear instructions and examples for users to understand and utilize the implemented feature.

  • Community Engagement: We encourage you to interact with the Open Source community, ask questions, as well as offer and accept help.

  • Testing: Your project should rely on unit and integration tests to ensure the correctness of the implementation.

Bewertung der Coding Challenge:

  • Code-Qualität: Bewertung der Qualität des Codes, einschließlich Lesbarkeit, Effizienz und Einhaltung von Coding-Standards.

  • Problemlösungsfähigkeiten: Bewertung der Fähigkeit des Teilnehmers, das Problem zu verstehen und zu lösen. Berücksichtigung des Schwierigkeitsgrads sowie zusätzlicher Implikationen des Problems.

  • Zusammenarbeit und Community-Engagement: Bewertung der Bereitschaft des Teilnehmers zur Zusammenarbeit mit anderen und seiner Fähigkeit zur Teamarbeit. Bewertung des Engagements des Teilnehmers in der Open Source Community.

  • Dokumentation: Bewertung der schriftlichen Projektdokumentation. Berücksichtigung eines klaren Schreibstils, eines guten Layouts sowie eines gut recherchierten Hintergrunds nach akademischen Standards. Bewertung der Verständlichkeit der Demo.

Durch den Fokus auf Open Source Beiträge können wir nicht nur Programmierfähigkeiten testen, sondern auch ein Gemeinschaftsgefühl fördern und kollaborative Praktiken in der Softwareentwicklung ermutigen.

~

Coding Challenge Evaluation:

  • Code Quality: Assess the quality of the code, including readability, efficiency, and adherence to coding standards.

  • Problem-Solving Skills: Evaluate the participant’s ability to understand and solve the problem. Consider the difficulty level as well as additional implications of the problem.

  • Collaboration and Community Engagement: Assess the participant’s willingness to collaborate with others and their ability to work in a team. Evaluate the participant’s level of engagement with the Open Source community.

  • Documentation: Evaluate the written project documentation. Consider a clear writing style, a good layout as well as a well researched background following academic standards. Assess the comprehensibility of the demo.

By focusing on Open Source contributions, we can not only test coding skills but also foster a sense of community and encourage collaborative practices in software development.

Zeitplan des Wettbewerbs

31. Januar 2025: Bekanntgabe der Aufgabe und Aufruf zur Teilnahme

Februar bis Juni 2025: Aufgabenbearbeitung

Mitte September 2025: Finale auf dem INFORMATIK FESTIVAL 2025 am HPI Potsdam (parallel zur SKILL und TechCrush).

~

Competition Timeline

January 31, 2025: Task announcement and call for participation

February to June 2025: Task processing

Mid-September 2025: Finals at INFORMATIK FESTIVAL 2025 at HPI Potsdam (parallel to SKILL and TechCrush).