Wieviel Mathematik brauche ich zum Programmieren?

Die Mehrzahl der Probleme

Programmierung wird häufig mit Mathematik in Verbindung gebracht und das ist schlussendlich auch nicht verkehrt, denn beim Computer dreht sich immer alles um Zahlen.

Computer kann man heutzutage mit 32-Bit und 64-Bit Prozessoren kaufen, früher waren auch 16-Bit und 8-Bit Prozessoren üblich. Daher ist 8-Bit immer noch eine übliche Einheit. Mit 8 Bit kann man 28 unterschiedliche Werte ausdrücken, also 256. Mit jeder Verdopplung der Bits potenziert sich die Anzahl unterschiedlicher Werte. Ein 16 Bit Prozessor kann also 216 = 256*256 = 65536 Zustände unterscheiden. Wichtig ist dabei, dass die Zahlen zählbar sind. Mit 32-Bit Prozessoren liegen wir bereits bei über 4 Milliarden.
Es handelt sich also immer um eine Teilmenge der natürlichen Zahlen. Man bezeichnet sie als integere Zahlen, oder kurz als Integer.

Die meisten Probleme werden mit zählbaren Zahlen gelöst: Bildschirmpositionen, also X- und Y-Position, Farben (Rot, Grün, Blau-Wert, jeweils von 0 bis 255) und natürlich Indizes.
In diesem Bereich bewegen wir uns also im Bereich der Grundschulmathematik: Addition, Subtraktion, Multiplikation, Division. Auch den Rest einer Division, wie wir sie in der Grundschule kennengelernt haben, können wir mit einer Operation berechnen. Diese Operation wird „Modulo“ genannt.

Was über Grundschulkenntnisse hinausgeht und regelmäßig Anwendung findet, wäre der Umgang mit negativen Zahlen. Gelegentlich werden Verhältnisse gebildet, hier kann es nicht schaden, wenn man Prozentrechnung und damit den Dreisatz halbwegs verstanden hat.

Die meisten Probleme, die Programmierer zu lösen haben, sind effiziente Datenverwaltungen. Hierfür müssen eher Datenstrukturen bekannt sein, als höhere Mathematik.

Spezielle Mathematik

Der Computer besitzt eine eigene Form der Mathematik. Da der Arbeitsspeicher begrenzt ist, können Zahlen auch nicht unbegrenzt groß werden. Man bestimmt immer einen Speicherbereich, der für eine Zahl benutzt wird und damit ergibt sich die größte Zahl, die darstellbar ist. Rechnet man auf einem Byte (8 Bit), so ist der Zahlenbereich von 0 bis 255. Rechnet man 200+100, so kann man nicht 300 erwarten, sondern das Ergebnis wird sich wieder im Bereich von 0 bis 255 wiederfinden. Es gilt also noch ein paar Besonderheiten zu lernen, die man in der Schule nicht lernt.

Da Computer weiterhin nicht wie wir mit zehn Ziffern rechnen, sondern nur mit zwei Ziffern (nämlich die berühmten 0 und 1), ergeben sich neben Addition und Subtraktion auch einige Operationen, die ebenfalls nicht in der Schule im Fach Mathematik unterrichtet werden - eher im Bereich 'Technik': Man lernt so einige Operatoren kennen, die ähnlich wie Addition oder Subtraktion zwei Zahlen miteinander verrechnen und „Und“, „Oder“, „Exklusives Oder“ und „Nicht“ genannt werden.

Logik

Ebenfalls neue Operatoren werden aus der Logik entnommen. Die meisten sind Vergleiche und sollten aus der Schule bekannt sein: Größer, Kleiner, Gleich, Ungleich. Hinzukommen logische Verknüpfungen, so dass mehrere Bedingungen gelten müssen. Zum Beispiel: Nudelwasser bereit, wenn Wasser im Topf UND Wasser kocht.

Reelle Zahlen

Computer können jedoch auch mit reellen Zahlen (Zahlen mit Komma) umgehen. Sie werden für aufwendigere Berechnungen benötigt, wie sie in der Geometrie oder bei physikalischen Problemen benötigt werden. Wie bei den Integern wird lediglich eine gewisse Menge Speicher verwendet, um eine reelle Zahl zu speichern. So wirklich reell sind die Zahlen dadurch auch nicht, denn sie sind nicht ganz genau. Fortgeschrittene Programmierer müssen sich also später mit einem besonderen Teil der „Computermathematik“ beschäftigen, der Numerik.
Für den Einsteiger sollte das jedoch kein Hinderungsgrund sein, denn die meisten werden zu Beginn keine Programme schreiben, die Menschenleben gefährden könnten.

Wer entsprechend mathematische oder physikalische Probleme bearbeitet, muss die entsprechende Mathematik des Problems also kennen und - falls die Berechnungen wichtig sind - sich mit der Numerik auseinandersetzen.

So werden kleine Fehler in 3D-Berechnungen in Computerspielen durchaus akzeptiert, hier reicht es also, sich mit Vektorrechnung auseinanderzusetzen. Möchte man hingegen CAD („Computer Aided Design“, technisches Zeichen am Computer) betreiben und muss eine gewisse Genauigkeit garantieren, kommt man an der Numerik nicht vorbei. Wäre ja schade, wenn beim Tunnelbau von zwei Seiten gebohrt wird und man sich aufgrund einer Ungenauigkeit nachher im Berg nicht wiederfindet.

Aufwendige Themen

Es gibt natürlich auch Themen, wo sich Mathematiker Stellungskriege liefern. Ein bekanntes Thema wäre die Kryptographie (Verschlüsselung), wo fähige Mathematiker einerseits komplexe Verschlüsselungsalgorithmen entwickeln und andere Mathematiker entsprechend damit beschäftigt sind, die Verschlüsselung zu knacken. Wer sich für Verschlüsselung interessiert, kann auch als Anfänger mit Grundschulkenntnissen geheime Botschaften erzeugen. Um hier in vorderster Front mitspielen zu können, kann dann ein Mathematikstudium durchaus helfen.
Die wenigsten Programmierer müssen sich jedoch mit diesen Themen befassen, sondern nutzen lieber vorhandene Verschlüsselungstechniken.

Fazit

Für den Einstieg in die Programmierung sind fehlende Mathematikkenntnisse kein Hinderungsgrund. Die Mathematik ist ein Werkzeugkasten, der hilft Probleme zu lösen. Wie beim Heimwerken kauft man sich viele Werkzeuge erst, wenn man sie braucht. Und wie beim Heimwerker verändert sich der Blick auf die Mathematik, wenn man selbst etwas in die Finger nimmt und praktisch anwendet. Statt dem Mathelehrer bei seiner Präsentation nur bei der Arbeit zuzuschauen, erkennt man vielleicht auch, dass man mit dem präsentierten Werkzeug auch selbst etwas programmieren kann.