12.4. Algorithmische Aufgaben

Python:

* o o o o

Informatik:

* * * * *

Mathematik:

* * * o o

Python-Module:

keine

Falls du dich mehr für Algorithmen in der Informatik interessierst und eigentlich keine weiteren Funktionalitäten von Python kennen lernen möchtest, ist dies das Projekt für dich. Die bearbeiteten Aufgaben dringen ins Herz der Informatik vor, wo du für komplexe Probleme einen eigenen Lösungsansatz entwickeln und umsetzen musst.

In diesem Projekt wirst du nur Python-Befehle und Strukturen benötigen, welche wir schon kennen. Die bisher bekannten Schleifen und Verzweigungen sowie Eingabe und Ausgabe über input() und print() reichen vollkommen aus.

Dies bedeutet aber nicht, dass dieses Projekt einfacher ist als die anderen. Denn hier geht es um das eigentliche Handwerk von Programmierern. Ein guter Programmierer zeichnet sich nicht nur dadurch aus, dass er viele Befehle einer Sprache kennt, sondern dass er komplexe Probleme selbständig mit Hilfe eines Programms lösen kann. Ganz im Sinne des folgenden Zitates:

„Man versteht etwas nicht wirklich, wenn man nicht versucht, es zu implementieren [d.h. programmieren].“ – Donald E. Knuth, im Interview bei heise.de, c’t 5/2002, S. 190

12.4.1. Aufträge

  1. Auf SPOJ gibt es viele Aufgaben. Sie haben aber zwei Nachteile: Zum Teil sind sie sehr anspruchsvoll und alles ist auf englisch. Es gibt aber auch einige einfache Aufgaben. Versuche als Einstieg die folgenden Aufgaben zu lösen:

    Benutze diese Aufgaben, um herauszufinden, wie SPOJ deine Lösung automatisch korrigieren kann.

  2. Auf der Seite der Schweizer Informatik-Olympiade SOI gibt es ein Archiv, in welchem alle Aufgaben der letzten Jahre gesammelt sind. Auch Projekt Euler bietet viele spannende Aufgaben. Such dir dort oder auf SPOJ weitere Aufgaben zum Lösen aus. Löse möglichst viele spannende Aufgaben.

12.4.2. Dokumente

In diesem Projekt musst du ausschliesslich Programmcode verfassen und das Arbeitsjournal führen. Es gibt keine weiteren Dokumente.

Achte darauf, dass der Programmcode gut kommentiert wird, so dass man nachvollziehen kann, wie dein Lösungsansatz funktioniert. Kopiere keinen Programmcode aus dem Internet, den du nicht verstehst. In jeder Programmdatei sollte ein Link vermerkt sein, welche Aufgabe mit diesem Programm gelöst wird.