Einführung in die Programmierung

This wiki article doesn’t exist in English. We will display it in German for you instead.

Written by Daniel Wolleb-Graf.

Dieses erste Kapitel soll dir den Einstieg in die Programmierung von SOI-Aufgaben erleichtern. Es ist keine Anleitung an sich, sondern viel mehr ein Ratgeber, der dir sagt, womit du starten kannst.

Ich möchte Programmieren lernen!

Hast du noch nie etwas programmiert? Dann bist du hier richtig. Für die SOI empfehlen wir dir eine von folgenden zwei Programmiersprachen zu lernen:

  • Python (in der Version 3) [super für Einsteiger, reicht bis zum SOI-Final aus]
  • C++ (in der Version C++11 oder neuer) [etwas schwieriger, dafür auch mächtiger]

Die meisten von uns haben mit Programmieren begonnen, indem sie ein Einsteigerbuch zu einer Programmiersprache gelesen haben. Wenn du möchtest, kauf dir ein Buch über Python oder C++ und fahre danach mit den Punkten unten fort.

Es gibt aber auch einige Möglichkeiten, um Programmieren zu lernen, die interaktiver und anfängerfreundlicher sind - Bücher können manchmal auch etwas trocken sein. Hier zwei solche Programmiereinstiege für Anfänger:

LOGO-Heft des ABZ der ETH

In der Schildkrötenprogrammiersprache LOGO kannst du zwar keine SOI-Aufgaben lösen, aber sie ist wunderbar einfach zu lernen und man kann tolle Dinge damit zeichnen. Das Ausbildungs- und Beratungszentrum für Informatikunterricht der ETH Zürich hat eine schöne Anleitung samt Programmierumgebung für LOGO zusammengestellt.

→ zum den LOGO-Unterlagen

Interaktives Python-Tutorial des BWInf

Unsere Kollegen von der deutschen Informatikolympiade (Bundeswettbewerb Informatik, kurz BWInf) und der kanadischen Informatikolympiade haben ein interaktives Tutorial für Python zusammengestellt, was du auch an der SOI benutzen kannst. Du lernst Schritt für Schritt die wichtigsten Befehle und kannst sie gleich ausprobieren.

→ zum Tutorial: Python-Tutorial

Ich möchte SOI-Aufgaben lösen lernen!

Für diejenigen von euch die schon etwas Programmiererfahrung mitbringen, haben wir hier einige Unterlagen zusammengestellt, die euch den Start mit unseren Aufgaben erleichtern.

Python für die SOI

Python ist die ideale Einstiegsprogrammiersprache und auch ausreichend, um die Aufgaben der ersten Runde der SOI zu lösen. Neben dem Python-Tutorial von oben können wir auch das offizielle Python-Tutorial (auf Englisch) empfehlen.

Workshopunterlagen zu Python

An unseren Einsteigerworkshops im Herbst unterrichten wir ebenfalls in Python. Auf der entsprechenden Seite findest du viele Unterlagen dazu:

→ SOI-Workshop-Unterlagen (Python unter “Tag 1”)

→ Python-Cheat-Sheet mit den wichtigsten Befehlen

Python-Skript im Wiki

Johannes Kapfhammer hat ein Kapitel spezifisch zu Python für die erste SOI-Runde geschrieben mit vielen nützlichten Tricks:

→ Kapitel zu Python für die erste SOI-Runde

C++ für die SOI

In der ersten Runde der SOI ist jede Programmiersprache zugelassen. Wenn du also bereits etwas anderes beherrschst, z.B. Python oder Java, dann darfst du gerne damit teilnehmen. Python ist auch in den weiteren Runden der SOI erlaubt, nicht aber an der IOI. Deshalb empfehlen wir dir, früher oder später auf C++ umzusteigen.

Ein- und Umstieg auf C++

Sandro Feuz (sandro@soi.ch) hat ein ausführliches Tutorial zu den für die SOI relevanten Features von C++ geschrieben. Wenn du bereits gute Vorkenntnisse in irgendeiner Programmiersprache hast, dann kannst du direkt hier einsteigen (ansonsten solltest du vielleicht eher weiter oben beginnen).

Die C++ Standardbibliothek

Wenn du es bis hierhin geschafft hast, dann kannst du dich locker an die ersten SOI-Aufgaben in C++ heranwagen. C++ kann aber noch viel mehr! Insbesondere die Standardbibliothek enthält sehr viele nützliche Hilfsmittel, zum Beispiel eine Funktion, die das Sortieren von Arrays für dich übernimmt. Das Tutorial von Johannes Kapfhammer (johannesk@soi.ch) stellt dir die nützlichsten Datenstrukturen und Tricks daraus vor.

→ zum Tutorial: C++ Standardbibliothek