Informatik ➟ Programmierung ➟ Wettbewerbe

Programmierwettbewerbe

Wer Freude am Programmieren hat, der braucht Programmieraufgaben, die er lösen kann. Geeignete Aufgaben zu finden ist manchmal schwieriger, als das Lösen der Aufgaben selbst. Viele Aufgaben findet man bei Online-Programmierwettbewerben, die sich vor allem an Programmierer mit guten Kenntnissen in Informatik und Mathematik richten und für Schüler der Mittelstufe meist zu schwierig sind.

Beim Shortening Contest gibt es allerdings auch Programmieraufgaben, die von Schülern der Klasse 8/9 gelöst werden können – wenn sie sich nicht von der englischen Sprache abschrecken lassen. Ähnlich wie im Informatikunterricht besteht die Aufgabe darin, ein Programm zu schreiben, das etwas bestimmtes "macht". Die Besonderheit beim Shortening Contest besteht darin, dass die Quelltexte möglichst kurz sein sollen: je kürzer, desto besser die Platzierung. Für den Anfang ist das aber erst einmal unerheblich.

Mitmachen in 6 Schritten

  1. Einmalig registrieren: Seinen richtigen Namen braucht man nicht anzugeben, lediglich eine gültige E-Mail Adresse für die Bestätigung der Registrierung. Werbung oder Spam bekommt man nicht.
  2. Eine Aufgabe auswählen, hier also die Aufgabe FIBON.
  3. Aufgabe lesen und verstehen! Meistens sinnvoll: Experimente mit Papier und Stift.
    Beim Problem FIBON geht es darum, ein Programm zu schreiben, das für einen eingegebenen Integerwert n die n-te Fibonacci-Zahl ausgibt. Also muss man zunächst herausfinden, was Fibonacci-Zahlen sind.
  4. Ein Programm schreiben, das die Aufgabe löst. Dabei sind die in der Beschreibung von FIBON genannten Vorgaben zu beachten, die zusätzlich durch ein Beispiel illustriert werden. Bei FIBON lautet die Eingabe:
    2
    10
    20
    Das bedeutet: Ein "virtueller Anwender" gibt zunächst an, wie viele Zahlen er noch eingeben wird, im Beispiel sind es 2. Danach folgt die entsprechende Anzahl an Zahlen. Für jeden Eingabewert muss das Programm einen Wert ausgeben. Für den Eingabewert 10 lautet der richtige Ausgabewert 55, weil 55 die 10. Fibonacci-Zahl ist. Ein passendes Programmgerüst für Python 3 könnte also so aussehen:
    zeilenzahl = int(input()) # Anzahl der nun folgenden Zeilen
    for zeile in range(zeilenzahl): 
        n = int(input()) # Wert für n einlesen
        fibo = n + 45  # n-te Fibonacci-Zahl berechnen, aber natürlich RICHTIG!
        print(fibo)
    
    Wichtig: Das Programm muss nicht nur für das gezeigte Beispiel die richtigen Ergebnisse liefern, sondern für alle möglichen Eingabewerte. Bei FIBON heißt das, für alle natürlichen Zahlen bis 70.
  5. Das Programm hochladen (engl. "submit"). Man fügt den Quelltext mittels copy & paste in das Auswahlfenster ein, wählt die passende Programmiersprache aus und schickt es ab. Das hochgeladene Programm wird dann sofort auf einem Server ausgeführt und mit passenden Eingabedaten gefüttert, so als ob am anderen Ende ein Anwender säße, der die Werte eingibt. Von diesen Werten weiß man nur, dass sie den in der Aufgabenstellung genannten Bedingungen entsprechen, mehr nicht.
  6. Das Ergebnis ansehen: Sobald das hochgeladene Programm ausgeführt wurde, erscheint in der Statusliste ein neuer Eintrag. Wenn das Programm die richtige Ausgabe erzeugt, ist der Eintrag grün und in der Spalte "Result" steht die erreichte Punktzahl – sie entspricht der Länge des Quelltextes in Bytes; je kleiner die Zahl, desto besser. Liefert das Programm falsche Ausgabewerte, bricht mit einem Laufzeitfehler ab oder ist zu langsam, dann erscheint eine entsprechende Meldung orange eingefärbt.