Wofür das alles?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@jens & @sparrow: Ich glaube ihr verwechselt "Themen / Teilbereiche aus der Mathematik" mit der "Mathematik als ganzes"! Informatik besteht ja auch nicht nur aus der Softwareentwicklung, sondern diese ist nur *ein* Teil davon, den man aber eben *nicht* vollständig aus dem Gesamtkomplex herauslösen kann. Genauso ist das mit der Mathematik. Man braucht *vieles* aus verschiedenen Gebieten der Mathematik, um Softwareentwicklung i.A. betreiben zu können. Für andere Themen aus der Informatik braucht es wiederum andere Mathematik, teilweise aber auch dieselbe. Dennoch ist es schwer, das kleinste gemeinsame Vielfache der Mathematik für ein Studium der Informatik zu extrahieren, eben weil Informatik an sich auch extrem vielseitig ist.

Aus diesem Grund gibt es ja ein "Grundstudium", welches jedem Informatiker eine solide Basis an Grundlagen schaffen soll. Im Hauptstudium (Master?) findet zumeist auch eine Spezialisierung statt. Für diese werden dann separat benötigte Grundlagen vermittelt, die *nicht* jeder Informatiker benötigt.

Aber imho braucht es schon einiges an Mathematik, um ein solides Fundament für die Grundlagen der Informatik zu schaffen (ohne die man eben auch keine Softwareentwicklung betreiben kann!). Ob man nun "Differentialrechnung" zu den Grundlagen zählt oder nicht, darüber kann man natürlich vortrefflich streiten. Aber es gibt schon viele Aspekte, ohne die man sich schwer tun wird, grundlegende Themen der Informatik zu erfassen.

Ich werfe mal alleine das Thema Zeitkomplexität in den Raum... da sollte man schon wissen, was ein Logarithmus ist ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@jens: Die Informatik ist aus der Mathematik hervorgegangen. Das ist im Grunde angewandte Mathematik. Wobei Mathe hier nicht unbedingt das Rechnen in der Schule meint, sondern eher so Logik, Grammatiken, Graphentheorie, Mengenlehre, und so weiter. Und diese Sachen findet man eigentlich auch ständig in der Anwendung — wenn man nicht CRUD-Oberflächen programmiert mit wenig bis gar keiner Programmlogik. Wobei selbst dort ist es sehr nützlich sein kann das relationale Modell und die dahinterstehende Mengenlehre verstanden zu haben wenn ein RDBMS involviert.

@sparrow: Bei Entscheidungen zur Verladung bei einem Logistikunternehmen hat man doch in der Regel mit einem Optimierungsproblem und/oder Graphenalgorithmen zu tun‽ Welches Zeitveralten bei verschiedenen Operationen auf Datenstrukturen anfallen kommt in der Realität doch auch ständig vor. Danach wählt man schliesslich aus welche Datenstrukturen man verwendet um ein Problem zu lösen. Und sei es nur die Wahl zwischen Liste, Wörterbuch, und Mengentyp. Ab und zu hat man dann aber auch Probleme wo man eine Queue braucht, oder eine Heap-Struktur. Wie sollte man ohne Wissen um das Laufzeitverhalten die richtige Wahl treffen?

@allgemein: Insgesamt lehrt einem die Mathematik im Informatikstudium auch strukturiert an ein Problem heran zu gehen und das sauber und exakt formal auszudrücken. Nichts anderes macht man am Ende ja mittels einer Programmiersprache um einen Lösungsweg exakt und formal für den Rechner zu beschreiben. Oder zum Beispiel bei deklarativen Ansätzen das Ergebnis mit Eigenschaften und Bedingungen so zu beschreiben das der Rechner den Lösungsweg von den Ausgangsdaten zum beschriebenen Ergebnis finden kann.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ein "reines" Informatik-Studium soll schon ein bißchen mehr vermitteln als ein VHS-Kurs zum Thema Programmieren. Nach dem Studium sollen die Absolventen (idealerweise) fähig sein, sich von der Methodik her relativ zügig in alle möglichen Themenbereiche der Informatik einarbeiten zu können. Da geht es nicht darum, ein paar Zeilen PHP-Code hinklatschen zu können. Daher ist die Mathematik entsprechend wichtig.

Klar gibt es bestimmt auch etliche Studenten, die einfach nur programmieren möchten. In dem Fall sollte man sich aber besser eine Ausbildung zum Programmierer aussuchen oder von Anfang an etwas studieren, was mehr mit angewandter Programmierung zu tun hat. Beispiele wären Wirtschaftsinformatik oder ein Studienfach, wo man halt ein paar IT-bezogene Kurse dazuwählen kann. Da kommt man dann immer noch (mitunter nicht zu knapp) mit Mathematik in Berührung, aber man sieht möglicherweise eher den praktischen Zusammenhang zur später gewünschten Tätigkeit.

Es ist halt das typische Problem bei der Wahl des Studienfachs: Oftmals hat man ganz andere Vorstellungen von dem, was man sich ausgesucht hat und wird dementsprechend enttäuscht von seinem Studium sein. Wenn man so etwas merkt, dann sollte man sein Studium IMHO aber auch früher oder später abbrechen, anstatt sich bis zum Ende durchzuquälen. Es gibt wie gesagt auch Ausbildungen oder eben Studienfächer in Bereichen, die einem vielleicht eher zusagen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Als erstes mächte ich, wie BlackJack vor mir, eine Lanze für Scheme und zpeziell PLT Scheme/Racket brecken. Ich finde das ist eine exzellente Sprache zum lernen von Programmierung. Sie ist in vielerlei Hinsicht deutlich simpler als Java oder C oder ähnliche Sprachen und in vielerlei hinsicht auch deutlich mächtiger. Das war die erste funktionale Sprache die ich benutzt habe, und ich hatte viele Abende Kopfschmerzel als ich "The Little Schemer" gelesen habe, aber seitdem war die Art von Code die ich in Python schreibe ziemlich anders. Und Racket hat auch eine echt praktische Umgebung um Programmieren zu lernen. Das was man in C völlig vergeblich sucht und in Java evtl. von BlueJ repräsentiert wird.

Aber man muss sich halt klar sein, dass Informatik keine Lehre über Computer ist. Computer sind nur Werkzeuge die benutzt werden um diese Informatik zu betreiben, aber etwa so relatiert zu Informatik wie Taschenrechner zu Mathematik oder Teleskope zu Astronomie. Klar, es gibt Felder die sich praktischer mit Computern beschäftigen, aber ein Von-ganz-unten-nach-ganz-oben-Ansatz zum lernen über Computer ist Zeitlich schwer machbar, evtl überhaupt nicht möglich (weil Intel z.B. weniger begeistert ist sein komplettes CPU-Wissen an Unis weiterzugeben, wir haben im Jahr 2008 über ne alte AMD-CPU aus den 80ern gelernt) und schon gar nicht nützlich, weil das Feld sich so schnell ändern kann dass die CPU die man 2 Jahre lang von Grund auf geändert hat nun komplett obsolet ist. Daher muss man irgendwo Grenzen ziehen. Bei uns war die Grenze "Konzepte der Mikroprogrammierung", wir sind nicht auf die Ebene gegangen wo E-Techniker beheimatet sind und auch nicht auf die darunterliegende Ebene wo Physiker sich wohl fühlen. Und selbst wenn man von der CPU ausgeht, wie bootet ein System. Da stellt sich die Frage, was für ein System? Eine x86-Kiste? Ein Smartphone? Ein Mainframe? Ein Batch-System? Ein verteiltes Cluster? Wenn man soweit ist dass ein OS bootet, welches OS? Man kann nicht jedes OS im Detail betrachten, das ist teils wiederrum technisch nicht machbar weil der Code nicht verfügbar ist und teils auch nicht praktikabel weil die komplexität erdrückend ist. Daher schaut man sich in der Regel Spielzeugsysteme an, damit man einen überblick über wichtige Konzepte hat, etwa Scheduling, dann ist man in der Betriebssystemsvorlesung.

Nun kann man weiter gehen und sich überlegen wie man Daten organisiert. Dabei kann man natürlich auch nur einen kleinen Bereich abdecken, also pickt man sich die interessantesten Algorithmen und Datenstrukturen raus (ist auch wieder eine Vorlesung). Dann weiß man schonmal wie man effizient mit Daten arbeiten kann. Nun kann man weiter hoch gehen und das mit Relationaler Algebra verbinden und raus kommen RDBMS. Man kann noch weiter gehen und dann kommt man etwa im Web an, mit seinen myriaden von Frameworks die teilweise Halbwertszeiten von Wochen haben.

Also klar, man weiß in Informatik nicht von Grund auf wie Computer funktionieren. Aber egal was man macht, man weiß nie wie irgendetwas von Grund auf funktioniert, dafür ist unsere Welt zu komplex um alles zu wissen. Was man aber als Informatiker kann ist, wenn einen eines der Gebiete interssiert, dass man das Handwerkszeug hat, sich zu erarbeiten wie die Details funktionieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Leonidas hat geschrieben:Was man aber als Informatiker kann ist, wenn einen eines der Gebiete interssiert, dass man das Handwerkszeug hat, sich zu erarbeiten wie die Details funktionieren.
Das sollte eigentlich für fast alle Studiengänge gelten: die Vermittlung von Grundlagen, partiellen Spezialwissen, die Fähigkeit strukturiert zu denken sowie lernen zu lernen, nicht nur unter Anleitung, sondern auch selbständig. Das ist sicher ein hoher Anspruch, aber dazu ist ein Studium schließlich auch da.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

kbr hat geschrieben:Das sollte eigentlich für fast alle Studiengänge gelten: die Vermittlung von Grundlagen, partiellen Spezialwissen, die Fähigkeit strukturiert zu denken sowie lernen zu lernen, nicht nur unter Anleitung, sondern auch selbständig. Das ist sicher ein hoher Anspruch, aber dazu ist ein Studium schließlich auch da.
Leider scheint dieses neuhumanistische Bildungsideal nicht gerade die Vorlage für Bologna gewesen zu sein. SCNR :evil:
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

kbr hat geschrieben:Das sollte eigentlich für fast alle Studiengänge gelten: die Vermittlung von Grundlagen, partiellen Spezialwissen, die Fähigkeit strukturiert zu denken sowie lernen zu lernen, nicht nur unter Anleitung, sondern auch selbständig.
"lernen zu lernen" sollte IMHO schon in der Schule vermittelt werden... Aber naja, unser Schulsystem :evil:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

jens hat geschrieben: "lernen zu lernen" sollte IMHO schon in der Schule vermittelt werden... Aber naja, unser Schulsystem :evil:
Ich würde da durchaus eher sagen: "Aber naja, die vielen Eltern..." ;-) Die meisten schulischen (Leistungs-)Probleme werden im Elternhaus verursacht :!:

Und dieser Anspruch kann höchstens ab Klasse 11, also dem tatsächlichen Gymnasium gelten. Zuvor geht es primär um Grundlagenwissen, welches imho besser frontal als durch "Gruppenarbeiten" oder ähnlichen Mumpitz "erarbeitet" wird! Zumal leider nicht jeder Mensch dazu fähig ist - hören viele nicht gerne, die Realität zeigt es jedoch :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hyperion hat geschrieben:Ich würde da durchaus eher sagen: "Aber naja, die vielen Eltern..." ;-) Die meisten schulischen (Leistungs-)Probleme werden im Elternhaus verursacht :!:
Das was die Schule nicht schafft, sollen also die Eltern nachholen? Deswegen auch die immer weiter Steigende Anzahl an Nachhilfe?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Kann man auch umdrehen: Was die Eltern nicht schaffen soll also die Schule nachholen? Es geht dabei ja nicht um Schulstoff sondern die grundlegende Erziehung. Ich denke da fällt schon noch einiges in die Verantwortung von Eltern was heute teilweise der Schule rüber geschoben wird und die dann überfordert.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

eine erfolgreiche Bildungskarriere beginnt ab Geburt, wo Neugierde, Spaß am Lernen, Geduld und Ausdauer vermittelt wird. Wenn die Kinder mit 6 in die Schule kommen, und nicht wenigstens Grundlagen dieser Grundlagen da sind, ist es leider meistens schon zu spät. Wer nicht mit 2 Bilderbücher anschaut, wird mit 20 auch nicht freiwillig ein Informatikbuch lesen.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich denke, dass eine "Bildungskarriere" (was für ein Wort) auch erfolgreich sein kann, wenn man nicht von Anfang an der perfekte Einser-Schüler war. Vieles an Wissen lässt sich im späteren Leben nachholen. Es muss nur ausreichend Interesse und Motivation vorhanden sein. Natürlich lernt man in jungen Jahres vieles deutlich leichter als mit Anfang 30. Das heißt aber nicht, dass man einen Menschen abschreiben sollte, wenn er nicht seit seiner Geburt als absolut lernwillig aufgetreten ist. Den umgekehrten Weg gibt es ja genau so: Die viel versprechende Bildungskarriere findet ein jähes Ende, weil das Kind dank falscher Freunde oder traumatisierender Ereignisse "in der Gosse" landet.
Antworten