Warum ist das Informatik Studium so Mathelastig?
Zuerst mal ich studiere nicht aber hab immer gehört. dass im Informatik Studium sehr viel Mathe mit dabei sei. Nun meine Frage: warum ist das so? Unter Informatik stelle ich mir hauptsächlich programmieren vor. Wofür brauch man da so viel Mathe???
8 Antworten
Die Arbeit eines typischen Informatikers besteht meist nur zu einem recht geringen Teil aus Programmierung.
Dies gilt sogar dann, wenn man als Software-Entwickler arbeitet: Nur in etwa 15 Prozent aller Arbeiten steht das Schreiben oder Abändern von Code im Mittelpunkt. Was andere notwendige Arbeiten sind, beschreibt recht gut der Artikel Faustregel zur Schätzung von Software-Entwicklungsaufwand, den du leicht per Google finden kannst.
Es gibt zahlreiche sehr gut bezahlte Informatiker, die schon wenige Jahre nach Beginn ihrer Karriere gar nicht mehr in der Lage sind, ein Programm zu schreiben. Sie benötigen vor allem hohes Abstraktionsvermögen.
In den 30 Jahren, in denen ich als Informatiker gearbeitet habe, bin ich niemals mit Mathematik in Berührung gekommen. Die Tatsache aber, dass ich mal Mathematik studiert hatte, hat mir dennoch ganz enorm geholfen. Man hat dann gelernt, auch besonders formal zu denken - und genau das müssen erfolgreiche Informatiker gut beherrschen.
Du stellst dir darunter was falsches vor. Wir nutzen heute hauptsächlich Computer im Informatikbereich. Die Wissenschaft an sich ist aber nicht gebunden an Computern. Am Ende ist es technische Mathematik in Verbindung mit Informationen.
Programmieren lernst du eher in einer Ausbildung im IT-Bereich als in einem Studium. Da geht es um Theorie und Konzepte. Interessant ist das Studium dann meist eher für diese Bereiche bzw. die Forschung.
Studieren tun natürlich trotzdem viele, vor allem aufgrund des höheren Einstiegsgehalt. Die beste Vorbereitung für die Softwareentwicklung ist es aber bei weitem nicht.
Ein Informatiker ist keiner, der nach ein paar vorgegeben Rezepten irgendwas abarbeitet. Er bekommt Aufgaben, zu denen er Lösungen erarbeiten muss, die erstmalig sind und wo er nicht einfach irgendwo nachschauen und abschreiben kann. Er muss selbst kreativ tätig werden und Ideen entwickeln können. Ein mathematisches Verständnis ist da eine sehr solide Voraussetzung dafür, dass ihm bei Bedarf auch immer was Passendes einfällt.
Wer Tätigkeiten in der Informatik im Auge hat, die mit wenig Mathe auskommen, kann ja vereinfachte Ausbildungsziele wählen. Da sind dann halt die Mitbewerber in der Vielzahl und der Traum vom großen Geld in weiter Ferne. Wer zahlt schon was für etwas, was jeder kann? Gut bezahlt werden Lösungen, die einen Durchbruch bringen und keine einfachen Routinearbeiten.
Weil auch Programmierung viel mit Mathematik zu tun hat. Warum?
Analyse von Laufzeit losgelöst von Hardware wird berechnet. Diese Berechnungen lassen sich in Laufzeitklassen einordnen anhand derer man sagen kann, wie gut/schlecht ein Algorithmus bei einer beliebigen Verarbeitungsgröße ist. Wenn du beispielsweise eine exponentielle Laufzeit hast (z.B. 2^n) dürfte das in den meisten Fällen ziemlich schlecht (weil langsam) sein.
https://de.wikipedia.org/wiki/Landau-Symbole
Auch zur Verbesserung von Algorithmen (auch im Endeffekt wieder Laufzeit) kann es nützlich sein.
Beispiel: Du willst die Summe aller Zahlen von 1-n wissen.
Die einfache Herangehensweise wäre mit einer for-Schleife. Damit hätteste eine lineare Laufzeit (also n).
Eine andere Lösung wäre mittels Gaußscher Summenformel möglich. Diese hat eine konstante Laufzeit von 1.
Das ganze mal als Quellcode:
public static void main(String[] ARGS){
int n=5;
int sum=0;
//Als Summenformel
for(int i=1;i<=n;i++){
sum+=i;
}
System.out.println(sum);
sum=0;
//Gaußsche Summenformel
sum=(int) ((Math.pow(n,2)+n)/2);
System.out.println(sum);
}
https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Summenformel
Nun hast du aber das Problem: Stimmt deine Überlegung, dass das Ergebnis deiner aufgestellten Formel (in dem Fall die gaußsche Summenformel) für jeden einzelnen Wert in einem Zahlenbereich richtig ist?
In dem Fall hier wurde es schon bewiesen, aber man kommt durchaus auch an Probleme, wo man sich selbst eine Verbesserung einer mathematischen Formel überlegen muss. Damit man da nicht hoffen muss, dass man richtig liegt, wird einem beispielsweise der Induktionsbeweis beigebracht.
https://de.wikipedia.org/wiki/Vollst%C3%A4ndige_Induktion
ABER das ist nichtmal ansatzweise alles. Beispielsweise wirste, wenn es um Computergrafiken in den Grundzügen geht, mit Mathe nur so zugeschmissen.
https://de.wikipedia.org/wiki/Drehmatrix
Und das zieht sich einfach nur so durch.
Noch mehr?
https://de.wikipedia.org/wiki/Advanced_Encryption_Standard
https://de.wikipedia.org/wiki/RSA-Kryptosystem
Basiert ebenso auf Mathematik. Gerade in Kryptographie wirste komplett zerpflückt, wenn du keine Ahnung von Mathematik hast.
Warum du sowas am Ende können sollst? Weil du keine spezifische Ausbildung machst. Am Ende sollst du von vielen Dingen Ahnung haben, um so in vielen Bereichen Fuß fassen zu können.
Hast du schon mal Code von einer Matheniete gesehen?
(Ich meine jetzt Dinge, die ein wenig mehr in die Tiefe gehen.)
Die Denkstrukturen, die man braucht, um Algorithmen zu entwickeln, sind sehr ähnlich denen, die man für mathematische Beweise braucht. Nicht umsonst waren die ersten Programmierer in der Regel Mathematiker.
Ohne ein wenigstens mittelmäßiges mathematisches Verständnis merkt man oft nicht mal, wenn man Sicherheitslücken, Speicherlecks, um mehrere Zehnerpotenzen kürzbare Brute-Force-Methoden u. ä. einbaut.
Beim Informatikstudium spielt das tatsächliche Programmieren eine untergeordnete Rolle. Dafür lernt man, wie man theoretisch begründen kann, dass eine Methode funktioniert, und auch, dass sie einigermaßen optimal ist, und viele weitere schöne theoretische Dinge. Diese Theorie ähnelt der Mathematik so stark, dass mein "Sprachgefühl" sie als Dialekt der Mathematik empfindet.