Algorithmen und Datenstrukturen in Java

Devanther

Top Contributor
Hallo,

ich wollte fragen, wie das Thema "Sortieren von Algorithmen" in der Praxis aussieht.
Ich habe mir einen Video Kurs von udemy zu diesem Thema gekauft und lerne den auch grade.

Der Algorithmus wird mit Daten gefüttert, und je nachdem welcher Sortieralgorithmus, Bubble Sort, Selection Sort,
Insertion Sort, Shell Sort, Merge Sort, Quick Sort, Counting Sort das ist, ist der Algorithmus entweder schnell oder
weniger schnell.
https://en.wikipedia.org/wiki/Big_O_notation#/media/File:Comparison_computational_complexity.svg

So verhält sich der Algorithmus wenn er mit z.B. 1 Million Daten gefüttert wird, es werden dann so und soviele Schritte
durchlaufen. Der Algorithmus ist dann entweder schnell oder sehr langsam.

Meine Frage jetzt:
Habe ich das soweit richtig verstanden?
Und was sind das für Daten, die mit Hilfe von Sortieralgorithmen sortiert werden?
Im Video ist das immer jeweils ein Array mit der Länge 7, aber wie sieht das in der Praxis aus?
Es ist ja wohl kaum immer ein kurzes Array...

Sind das immer Arrays die da sortiert werden?
Dieses Thema ist ein sehr wichtiges und großes Thema, aber warum ist es so wichtig?

Es geht mir darum zu verstehen, wofür man diese Theorie in der Praxis halt braucht!
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Die Komplexitätsklassen von unterschiedlichen Sortieralgorithmen hört man einmal im Studium, behält vielleicht noch, dass man optimal nur in `O(n log(n))` sortieren kann und das wars dann. Du wirst mit großer Wahrscheinlichkeit in der Praxis nie selber einen Sortieralgorithmus implementieren, weil es einfach alles schon in den Standard-Libraries der Programmiersprachen (z.B. Java) gibt und diese "gut genug" sind.
Ich habe eigentlich noch nie erlebt, dass jemand einen Performancebottleneck beim Sortieren von Datensätzen entdeckt hat und diesen durch den Austausch des Sortieralgorithmus behoben hat.
Sortieren ist aber generell immer irgendwo wichtig. Zum Beispiel in einem E-Commerce Shop die Produkte nach Kundenrelevanz sortieren. Oder in einer Such-Engine wie z.B. Solr bzw. Lucene nach der Relevanz zum Suchbegriff sortieren. Das ist aber auch alles schon irgendwo irgendwie implementiert.
 

Devanther

Top Contributor
Echt? Das alles braucht man gar nicht?

Es ist ein sehr sehr schwerer Thema und es macht keinen Sinn das zu lernen?
Warum lernt man das 5CP manchmal sogar 10CP in der Hochschule.....wenn man es ey nicht braucht?
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Dass es keinen Sinn macht, das zu lernen, habe ich nicht gesagt. Und auch nicht, dass man es pauschal nicht braucht. Du wirst nur vermutlich keinen Sortieralgorithmus selbst implementieren. Das habe ich gesagt.
"Algorithmen und Datenstrukturen" soll dir ja nicht nur die exakte Funktionsweise von Sortieralgorithmen beibringen, sondern bringt dir das Verständnis von Komplexität und Algorithmen anhand dieser Beispiele bei. Somit entwickelst du hier ein Grundverständnis für algorithmisches Denken. Und das ist sehr wichtig!
 

Devanther

Top Contributor
Für ein Grundverständnis braucht man aber nicht so einen Aufwand im Studium.

Ein Informatik Studium ist auch schwer Mathelastig und da frage ich mich auch, wofür man die Mathematik
in der Informatik braucht.
 

httpdigest

Top Contributor
Was ist das denn hier? Einfach ein Rant gegen den Stoff, der dir in einem Informatikstudium beigebracht wird? Vielleicht ist ein Informatikstudium dann nicht das richtige für dich. Also, wenn du keine konkreten Fragen mehr hast...
 

Devanther

Top Contributor
Also interessant finde ich das schon, Informatik!
Ich will halt nur wissen, wofür man das eine oder andere braucht, wenn man es schon lernt....

Vielleicht kann jemand noch was zu Algorithmen und Datenstrukturen schreiben.
Wenn ich Informatik studieren würde, dann auf jeden Fall, an einer FH und nicht Uni.....dann ist es nicht mehr soviel Mathe.
Außerdem finde ich Mathe auch interessant....

Dass man Dinge im Studium lernt, die man in der Praxis weniger braucht, das gilt wohl für die meisten Studiengänge.
 

Meniskusschaden

Top Contributor
Für ein Grundverständnis braucht man aber nicht so einen Aufwand im Studium.

Ein Informatik Studium ist auch schwer Mathelastig und da frage ich mich auch, wofür man die Mathematik
in der Informatik braucht.
Du brauchst diese Grundlagen als Rüstzeug, um später schwierigere Probleme lösen zu können. Man kann in der IT auch ohne diese Kenntnisse ganz gut klar kommen. Dann wäre aber eine Fachinformatiker-Ausbildung passender. Ein Informatikstudium wirst du so nicht zu Ende bringen können.
 

Devanther

Top Contributor
Ok. Was sind das für schwierigere Probleme? Beispiele? Womit beschäftigen sich Informatiker?
Was hast du selber schon für Probleme gelöst?
 

White_Fox

Top Contributor
Für ein Grundverständnis braucht man aber nicht so einen Aufwand im Studium.
Grundverständnis heißt ja nicht nur, mal den Wikipedia-Artikel gelesen zu haben. Sondern daß du einen Wikipedia-Artikel dazu schreiben kannst, und zwar auf einem anständigen wissenschaftlichen, allgemeinen Niveau.

Ein Informatik Studium ist auch schwer Mathelastig und da frage ich mich auch, wofür man die Mathematik
in der Informatik braucht.
Ich bin ja kein Informatiker (sondern E-Techniker), aber versuch doch mal herauszufinden, wie ein Navi eigentlich eine Route ermittelt. Oder befasse dich mal mit Kryptographie. Oder Compilerbau. Und nur, weil du wahrscheinlich keine Sortieralgorithmen schreiben wirst (wobei, möglicherweise wirst du mal einen in einer exotischeren Sprache implementieren müssen) heißt das bestimmt nicht, daß du nie einen Algorithmus schreiben wirst müssen.

Grundsätzlich kann ich dir eines sagen, daß zumindest für alle naturwissenschaftlichen Studiengänge gilt: In der Regel hat sich jemand, der einen unglaublich großen Erfahrungs- und Wissensschatz auf dem Gebiet deines Studiengangs hat, hingesetzt und sich überlegt, wie kriegt er einen Haufen völlig grüner Rookies nach sechs Semsestern so weit, daß sie in der Lage sind die gängige Fachliteratur halbwegs zu verstehen und um Probleme hoffentlich mal selbständig zu lösen. Probleme, für die es noch keine Lösung gibt.
Und wenn dieser Jemand der Meinung ist, das Differentialgleichungen, Graphentheorie, Matritzenrechnung, Komplexe Zahlen, Analysis, Mengentheorie, ... dazu wichtig sind, dann wird dieser Jemand dafür gute Gründe haben.

Aber grundsätzlich ist ein Studium sowieso nur etwas für diejenigen, die das Fach interessiert (=die Fachbücher auch in ihrer Freizeit lesen würden).
 

Meniskusschaden

Top Contributor
Ok. Was sind das für schwierigere Probleme? Beispiele? Womit beschäftigen sich Informatiker?
Was hast du selber schon für Probleme gelöst?
Ich würde sagen, wenn es beispielsweise in Richtung Simulation, 3D-Grafik oder KI geht, wird es schon anspruchsvoller. Natürlich gibt es auch viele ausgebildete Informatiker, die für ihre ausgeübte Tätigkeit kaum mehr als die vier Grundrechenarten benötigen. Da gibt es auch durchaus viele wichtige Jobs, mit denen man ganz gut verdienen kann. Das wäre aber eben auch ohne Studium möglich und dessen Niveau orientiert sich (hoffentlich) eher an dem, was man von einem ausgebildeten Akademiker im MINT-Bereich verlangen möchte, nämlich dass er nicht nur vorgegebene Problemlösungen anwenden, sondern auch eigene entwerfen kann.
 
X

Xyz1

Gast
und dessen Niveau orientiert sich (hoffentlich) eher an dem, was man von einem ausgebildeten Akademiker im MINT-Bereich verlangen möchte, nämlich dass er nicht nur vorgegebene Problemlösungen anwenden, sondern auch eigene entwerfen kann
Mh, soll der Akademiker dann jedes mal einen eigenen Sortieralgorithmus statt eines bestehenden verwenden? :D Dann wäre er zu recht schnell seinen Job los...
 

Devanther

Top Contributor
@White_Fox

Aber das Wissen ändert sich doch auch (schnell). Das Wissen was für einen Informatiker vor 20 Jahren relevant war,
ist heute vielleicht schon veraltet. Es kann sein, dass Dinge die man gelernt hat, unwichtig werden, weil es eine andere
Technik gibt, die mit der alten nichts mehr oder sehr wenig zu tun hat.
Es ist nicht so, dass neue Technik immer auf der alten aufbaut!
Das ist sicherlich oft der Fall aber nicht immer!

Wenn es z.B. Quantencomputer gibt, wird das Wissen aus dem Informatik Studium sicherlich veraltet.
Dann muss man sich komplett neu orientieren.
 

Devanther

Top Contributor
hm. Was ist theoretische Informatik, wofür ist das gut?

Man findet nur wenig Lernmaterial dazu, sieht eher langweilig aus.(zumindest auf den ersten Blick)

@White_Fox

Was war das schwerste Modul, dass du in deinem E-Technik Studiengang hattest?
 
K

kneitzel

Gast
hm. Was ist theoretische Informatik, wofür ist das gut?

Man findet nur wenig Lernmaterial dazu, sieht eher langweilig aus.(zumindest auf den ersten Blick)

@White_Fox

Was war das schwerste Modul, dass du in deinem E-Technik Studiengang hattest?
Kurzer Überblick über Theoretische Informatik: https://de.wikipedia.org/wiki/Theoretische_Informatik
Wofür es gut ist? Ohne entsprechende theoretische Vorarbeit schreibt man gewisse Algorithmen nicht. :)
 

White_Fox

Top Contributor
Aber das Wissen ändert sich doch auch (schnell). Das Wissen was für einen Informatiker vor 20 Jahren relevant war,
ist heute vielleicht schon veraltet. Es kann sein, dass Dinge die man gelernt hat, unwichtig werden, weil es eine andere
Technik gibt, die mit der alten nichts mehr oder sehr wenig zu tun hat.
Wer hat dir denn diesen Unfug erzählt?
Letztendlich sieht es so aus: Computer als Verkaufsprodukt veralten wahnsinnig schnell, ja. Na und? Es sind nach wie vor logische Verknüpfungen, realisiert durch Transistoren, die bereits in den 30er Jahren des letzten Jahrhunderts theoretisch beschrieben wurden.
Mikrocontroller kommen immer wieder neue auf den Markt-und bestehen nach wie vor aus einer ALU, etwas Speicher, und verschiedenen Hardwaremodulen wie Timern oder Kommunikationsbausteinen (SPI, UART, ...).

Ansonsten glaubst du nicht, wie oft die aktuellen Säue früher schon durch die Dörfer getrieben wurden. Nehmen wir mal Industrie 4.0. Aus einem anderen Bastlerforum kenne ich jemanden, der zu diesem Thema 30 Jahre Schulungsunterlagen hat. Damals hieß es nur anders.

Es ist nicht so, dass neue Technik immer auf der alten aufbaut!
Ich glaube, mit dieser Einstellung solltest du lieber eine Facharbeiter-Ausbildung anstreben. Da wird dir der aktulle Stand der Technik beigebracht, aber eben wenig Hintergrundwissen. Du sollst schließlich weniger den Stand der aktuellen Technik kennenlernen (den bringt sich der interessierte Student sowieso nebenher bei), sondern den Weg dahin wenigstens nachvollziehen zu können.

Aber ich verrate dir etwas: Die Industrie hat sich schon darauf eingestellt, daß die Hochschulen immer mehr Unfähige produzieren. Nimm als Beispiel einfach Mikrocontroller: Es gab mal Zeiten, da war die theoretische Einarbeitung um überhaupt irgendein Ergebnis zu erzielen schlicht Bestenauslese. Da haben sich nur die damit beschäftigt, die Biss und Eier genug hatten sich den Kram durchs Hirn zu ziehen und sich damit befaßt haben. Heute gibt es sowas wie Arduino. Gebaut, damit jeder was programmieren kann, auch wenn er nicht programmieren kann. Und jetzt programmieren viele, die es nicht können. Das Ergebnis kann man in vielen Endprodukten bewundern.

Und ich verrate dir noch was: Dein Gehirn als Denkmaschine wird nicht besser, wenn du sie wenig benutzt. Dann verkümmert es. Und wenn du es mit vielen vorgefertigten Informationen flutest (Film schauen statt Buch lesen) anstatt es harte Nüsse knacken zu lassen wird es einfach nur ein Datenklo, eine Informationssenke. Nur kann es keinen Output liefern.


Was war das schwerste Modul, dass du in deinem E-Technik Studiengang hattest?
Schwer zu sagen. Im Nachhinein ist eigentlich alles nicht mehr so schwer gewesen-ein gelöstet Problem ist halt immer einfach.

Außerdem gab es eine Webseite, wo es viele Laborprotokolle und Musterlösungen zum Auswendiglernen oder Nachpinseln zum Runterladen gab. Eine auffällige Korrelation dabei: Die Studenten, die mehr mit dieser Seite "gearbeitet" haben, sind deutlich schneller rausgeflogen als andere. Die wenigen, die es mit Auswendiglernen oder Spicken irgendwie durch die Prüfung geschafft haben, werden garantiert keine Probezeit überleben-wenn sie es überhaupt durch das Vorstellungsgespräch schaffen.

Mathe war einerseits durchaus hart bei uns, andererseits hätte ich gerne noch mehr mathematische Grundlagen gehabt, so einige Dinge kamen da leider einfach zu kurz oder sind ganz unter den Tisch gefallen.

Ansonsten kommt es sehr auf die Leute an, was man als schwer empfindet. Einerseits auf den Prof, andererseits auch auf die Studenten. In Elektrische Antriebe haben die allermeisten stumpf ausendiggelernt und sich mit riesigen Formelsammlungen irgendwie durchgehauen. wirklich verstanden haben nur wenige. Das wiederum war auch nicht einfach, da der Prof doch ein recht straffes Programm gefahren hat. Ausendiglernen liegt mir gar nicht, aber leicht fand ich es nicht.
Dagegen fielen mir alle Fächer, die was mit Programmierung zu tun hatten, sehr leicht. Andere haben z.B. bei Pointern in C regelrecht gekotzt.

Letztendlich ist die Frage ob das Studium schwer ist, die falsche Frage. Richtig wäre: Ist das Studium interessant?

PS: Wenn du ein Studium durchziehen willst, will ich dich keineswegs davon abhalten. Mein Post ist an keiner Stelle böse gemeint, auch wenn ich an der ein oder anderen Stelle etwas...hm...deutlich bin.
Aber du solltest dir halt im Klaren darüber sein, daß ein Studium eben kein Addon zur bisherigen Schullaufbahn ist. Vergiss nicht: Du wirst später mal den ganzen Tag mit diesem Kram verbringen. Wenn es dir dann keinen Spaß macht, war das Studium umsonst. Oder du wirst den Tag mit anderem Kram verbringen-auch dann hättest du vielleicht lieber gleich was anderes gemacht.
 

Devanther

Top Contributor
Mir ist Hintergrundwissen sehr wichtig, deswegen frage ich auch nach theoretischer Informatik.
Kann mir jemand erklären, wofür das gut ist?
Aus dem wikipedia Artikel wird das nicht richtig deutlich.
 

httpdigest

Top Contributor
Es bildet die mathematischen Grundlagen der gesamten restlichen Teilgebiete der Informatik. Theoretische Informatik teilt sich selbst in die drei Bereiche "Berechenbarkeitstheorie", "Komplexitätstheorie" und "formale Sprachen".
Berechenbarkeitstheorie untersucht ganz formal und theoretisch im Grunde genommen, was ein "Algorithmus" ist und was eigentlich von einem Computer "berechenbar" ist. Die Definition dessen ist nämlich alles andere als einfach. Hier findest du Begriffe wie Turing Maschine und Lambda-Kalkül.
Ausgehend von einer Definition dessen, was ein Algorithmus ist, beschäftigt sich die Komplexitätstheorie mit der Frage der Laufzeit- und Speicherplatzkomplexität von Klassen von Algorithmen. Die Frage ist also: Gegeben ein Problem, kann es mit einem Algorithmus aus einer bestimmten Komplexitätsklasse gelöst werden oder nicht? Beispiel: Suchen. In der Komplexitätstheorie gibt es das aktuell ungelöste "P vs. NP Problem". Die Frage ist, ob diese beiden Komplexitätsklassen äquivalent sind oder nicht.
Das dritte Teilgebiet "formale Sprachen" dient zur Formalisierung von formalen (also nicht-natürlichen) Sprachen, wie eben einer Programmiersprache. Hier findest du Begriffe wie reguläre oder kontextsensitive Sprachen bzw. generell die Chomsky-Hierarchie der Sprachen. Hier wird untersucht, mit welchen Arten von Grammatiken man eine Sprache beschreiben kann und mit welchen Algorithmen man Sätze dieser Grammatik erkennen kann. Das ganze hat dann eine direkte Anwendung im Compilerbau, denn Compiler besitzen ja Parser, die eine Programmiersprache erkennen/parsen müssen.
 
K

kneitzel

Gast
Kein gutes Buch gefunden? Hast Du Mal in Google gesucht? Stichworte hast du ja genug bekommen, wonach man suchen kann.

Ich kriege da direkt einiges angeboten....

Ein Buch, das da eine Einführung in diese Themen gibt:

Aber das ist nur einer von mehreren Treffern.

Eine Möglichkeit, die man da auch erwähnen muss: es gibt Fernunis, die Informatik anbieten und da kann man als Gasthörer auch so Module beziehen. FU Hagen habe ich in der Vergangenheit benutzt um mich zu gewissen Themen selbst weiter zu bringen.

So gibt es da z.B. die Einführung in die theoretische Informatik...
 

mihe7

Top Contributor
Wenn es z.B. Quantencomputer gibt, wird das Wissen aus dem Informatik Studium sicherlich veraltet.
Dann muss man sich komplett neu orientieren.
Dazu habe ich vor kurzem einen interessanten Vortrag eines QC-Forschers, ich meine vom KIT, auf Youtube gesehen, der Deinen Überlegungen widerspricht.

Erstens existieren bereits Quantencomputer, zweitens ersetzen diese auf absehbare Zeit nicht die normalen Rechner und drittens sind viele Erkenntnisse übertragbar (natürlich in veränderter Form). Für letzteres wurden bereits entsprechende Modelle dazu entwickelt -> theoretische Informatik.

QC sind nicht grundsätzlich schneller als normale Rechner, sie können bestimmte Berechnungen unglaublich schnell durchführen, die aber mit einem Fehler behaftet sind. Daher eignen sich QCs für Angriffe auf die kryptographischen Ansätze, die heute im Einsatz sind (dafür gibt es dann quanten-kryptographische Verfahren) und Simulation von natürlichen Vorgängen, weniger für deterministische Algorithmen.
 
X

Xyz1

Gast
QC sind nicht grundsätzlich schneller als normale Rechner, sie können bestimmte Berechnungen unglaublich schnell durchführen, die aber mit einem Fehler behaftet sind. Daher eignen sich QCs für Angriffe auf die kryptographischen Ansätze, die heute im Einsatz sind (dafür gibt es dann quanten-kryptographische Verfahren) und Simulation von natürlichen Vorgängen, weniger für deterministische Algorithmen.
Endlich ein TRNG. :)
 

Devanther

Top Contributor
Naja, aus der Vorschau des Buches verstehe ich fast nichts.
Ich kann mir nicht vorstellen dass man damit lernen kann.

Es ist sehr sehr unverständlich.

https://www.amazon.de/Theoretische-Informatik-Dummies-Roland-Schmitz/dp/3527714316/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&crid=2SHBKKWP6GFFW&keywords=theoretische+informatik&qid=1563649581&s=gateway&sprefix=theoretische+i,aps,162&sr=8-4

Ich warte lieber auf das.^^

Gibt es vielleicht für Elektrotechnik, technische Informatik gutes Lernmaterial?
Mit Elektrotechnik will ich mich auch etwas auseinander setzen.

https://www.pearson-studium.de/informatik/rechnerarchitektur.html

Das lerne ich grade.
 
Zuletzt bearbeitet:

White_Fox

Top Contributor
Naja, aus der Vorschau des Buches verstehe ich fast nichts.
Naja, so schwer verständlich finde ich es nicht. Ich hab zwar nur die erste Seite kurz angelesen und danach weitergescrollt, aber ich finde das verständlich erklärt. Ich schätze aber, wenn du ein paar anständige Mathevorlesungen hinter dir hast, dann wirst du über die mathematischen Ausdrücke nicht mehr einfach nur drüberlesen.

Du solltest vielleicht noch wisesn, daß man in der Schule keine Mathematik lernt, sondern nur rechnen.

Gibt es vielleicht für Elektrotechnik, technische Informatik gutes Lernmaterial?
Naja...ich hab mich schon lange vor dem Studium mit sowas beschäftigt:
www.dieelektronikerseite.de

Didaktisch gut, aber für Ingenieure langt das nicht ansatzweise weit genug. Wenn es mehr auf der wissenschaftlichen praxisorientierten Stufe sein soll, kannst du dir mal die Bänder Elektrotechnik für Ingenieure 1-3 von Wilfried Weißgerber anschauen.
 

AndiE

Top Contributor
Ich halte es für wichtig, sich selbst Fragen zu stellen. Nur dann kann man verstehen, worum es geht. Wie würde man "a=1; b=2;c=a+b" berechnen, wenn man verschiedene Speicherformen benutzt? Wie kann man eine Mausefalle als Automat beschreiben? Wie erzeugt man Sprachen für die Eingabe oder ähnliches?

Mathematik dient in der Informatik zur Modellierung. Sowohl als grafische Darstellung, aber auch im Sinne von Logik oder Matrizenrechnung.

Wenn man z.B. die Kompensation einer LS-Lampe berechnet, kommt man an komplexen Zahlen und damit an Vektoren kaum vorbei. Ebenso läßt sich eine Rolladensteuerung kaum beschreiben ohne Mathe, z.B. für Mikrocontroller.

Der Sprung zur OOP ist letztlich auch nur mathematisch fassbar.
 

White_Fox

Top Contributor
Na dann...viel Spaß damit.
Mathematik dient in der Informatik zur Modellierung.
Nicht nur in der Informatik, in allen Natur- Technik- und Ingenieurswissenschaften. Und da ist wohl auch schon eines der Grundprobleme: Zumindest ich habe in der Schule eigentlich nicht Mathe gelernt, sondern nur rechnen.
So sehr ich oft über meine faulen Studienkollegen aus den niederen Semestern im Bachelor schimpfe, so muß man doch festhalten daß das deutsche Bildungssystem heutzutage eine Katastrophe in dieser Hinsicht ist.
 
X

Xyz1

Gast
Na, etwas Mathe schon, man denke an das Sieb des Eratosthenes in der 5. Klasse oder die Herleitung der pq-Formel... Aber es ist auch klar das zwischen Schule und später ein kleiner Quantensprung ist.
Nur ob man den ganzen Sch*** später später braucht kann auch infrage gestellt werden. ;)
 
K

kneitzel

Gast
Naja, aus der Vorschau des Buches verstehe ich fast nichts.
Ich kann mir nicht vorstellen dass man damit lernen kann.

Es ist sehr sehr unverständlich.

https://www.amazon.de/Theoretische-Informatik-Dummies-Roland-Schmitz/dp/3527714316/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&crid=2SHBKKWP6GFFW&keywords=theoretische+informatik&qid=1563649581&s=gateway&sprefix=theoretische+i,aps,162&sr=8-4

Ich warte lieber auf das.^^

Gibt es vielleicht für Elektrotechnik, technische Informatik gutes Lernmaterial?
Mit Elektrotechnik will ich mich auch etwas auseinander setzen.

https://www.pearson-studium.de/informatik/rechnerarchitektur.html

Das lerne ich grade.
Also ich selbst frage mich, was Du erwartest oder was Dein Ziel ist. Du willst etwas Theorie (Theoretische Informatik!) lernen: Wozu? Was willst Du machen? Praktischen Nutzen hast Du besser, wenn Du diesbezüglich die praktischen Bücher liest - da kommt dann viel der Theorie mit....

Von seinem "Dummies" Buch halte ich bei der Theoretischen Informatik absolut nichts. Ich frage mich ernsthaft, was da jemand wie erläutern will, so dass da wirklich etwas ernsthaft gelernt wird.

Und es gibt viele andere Bücher, die man per Google finden kann. Auch Bücher, die nur einen Aspekt etwas mehr aufbereiten. Das Buch war nur eben der Treffer, der mir eigentlich positiv aufgefallen ist...

Und die Theoretische Informatik ist in erster Linie Theorie? Komisch aber auch...

Was das Verständnis angeht: Die Theoretische Informatik setzt einiges an Grundlagen voraus. So könnte man sich z.B. schon mit Aussagen- und Prädikatenlogik auseinander setzen. Aber auch das Themengebiet Syntax und Semantik (von Programmiersprachen)

Dann ist man eher auf dem Level einen Studienanfängers. Und Bücher gibt es da dann auch genug., z.B.
https://www.amazon.de/Formale-Grundlagen-Programmierung-Studienbücher-Informatik/dp/3834818895
um wieder nur einen Treffer, der mir etwas ins Auge gefallen ist, zu bringen.

Aber ich möchte mich wiederholen:
Willst Du Dich wirklich tief einarbeiten? Sozusagen Lernstoff von der Uni vorwegnehmen? Dann schau Dir an, was Fernunis so anbieten! Als Gasthörer hat man normalerweise auch Zugriff auf gewisse "Uni Internas". Du bekommst i.d.r. Lehrbriefe, kannst auch Fragen stellen, u.s.w. Und was interessant sein kann: Manch ein Student gibt Lehrbriefe weiter, die er nicht mehr braucht. Da bekommst du dann ggf. günstig Lernmaterialien (z.B. auch von Mathe oder so, dann könntest Du das, was fehlt, evtl. gezielt aufarbeiten....)

Und das ist übrigens eine Möglichkeit, sich vernünftig gewisse Themen anzueignen. Wenn Du einmal das Studium abgeschlossen hast, dann interessiert Dich evtl. noch ein anderes Thema sehr? (Ich habe mich immer sehr für Philosophie interessiert und habe da dann auch den einen oder anderen Lehrbrief mitgenommen) oder es gibt ein Thema, das Dir (beruflich) wichtig ist? (Paar Jura Themen sind durchaus interessant in der Praxis: BGB, Arbeitsrecht, ... )
 

AndiE

Top Contributor
Ich denke, das ist ein Wechselspiel: Ohne Automatentheorie kann man Statusdiagramme nicht verstehen. Und auch das Verstehen des wahlfreien Zugriffs, der Stackverarbeitung oder des endlosen Bandes hilft bei der Praxis. Ich denke dabei nicht an das programmieren mit Java selbst, sondern an Anwendungen mit Mikrocontrollern oder an Interpreter/Compiler-Bau.
Wobei ich auch die Anwendung nicht sehr so sehr prozedural sehen würde, sondern als Grundlage der OOP. Aber ich denke, auch der Übergang von Modellierungsmöglichkeiten vom PAP und NSD zu den Mitteln, die uns UML u.ä. zeigen, ist Teil der theoretischen Informatik.
 

White_Fox

Top Contributor
Also ich selbst frage mich, was Du erwartest oder was Dein Ziel ist. Du willst etwas Theorie (Theoretische Informatik!) lernen: Wozu? Was willst Du machen? Praktischen Nutzen hast Du besser, wenn Du diesbezüglich die praktischen Bücher liest - da kommt dann viel der Theorie mit....
Und vor allem die Bücher nicht nur liest, sondern das Wissen auch anwendest.

Ich bin sowieso der Meinung, daß man schon praktische Vorkenntnisse besitzen sollte, bevor man ein Studium aufnimmt. In seiner Freizeit ein paar Jahre lang an Autos oder Modellfliegern rumgeschraubt zu zu haben ist unfassbar hilfreich, wenn man später Maschinenbau studiert.
Und auch mit E-Technik oder Informatik kann man heute privat so viel anfangen wie noch nie zuvor in der Menschheitsgeschichte. Sehr viel Wissen liegt quasi kostenlos im Internet herum. Und die Werkzeuge dazu kosten für den Anfang auch nichts oder nur wenig.
 

White_Fox

Top Contributor
Hm...erst ein Studium, jetzt willst du einen Online-Kurs kaufen?

Ich hab mir mal die Beschreibung davon angesehen. Solange es nur um Gleichstrom geht, könnte das alles einigermaßen passen.
Aber spätestens ab der Feldtheorie ist dann Schluß, denk ich. Wenn man es vernünftig verstehen will, braucht man da sehr robuste Mathekenntnisse. Vektoranalysis, Integral- und Differentialrechnung müssen sitzen.

Und wenn er dann später zur Wechselstromtechnik kommt, brauchst du dann noch komplexe Zahlen, ansonsten wird es eine elende Plackerei. Das Problem dabei: Die Menge aller Zahlen nicht mehr als aufeinanderfolgende Elemente zu betrachten (wie beim Zahlenstrahl), sondern als Ebene zu begreifen dauert etwas. Bei mir hat das ein bis zwei Semester gedauert, und so richtig verinnerlicht hab ich das erst im dritten oder so. Da hatte ich aber auch jeden Tag damit zu tun im Studium.

Tip: Überleg dir erstmal, was du eigentlich erreichen willst. Denn ein Studium und so ein Online-Crashkurs sind keineswegs miteinander zu vergleichen und haben auch unterschiedliche Ziele.
 

AndiE

Top Contributor
Ich würde mich eher oder auch auf Digitaltechnik stürzen. Ich finde, dass der Denkweise beim Programmieren eher entspricht. Letztendlich wirst du da sowieso viel hin- und herspringen. Ich würde mir dazu den "Raspberry Pi" mit dem Bastelset besorgen/schenken lassen. Das ist nahe an der elektrotechnischen Basis und doch computerorientiert. Oft lernt man gerade durch solche Bastelsätze mehr als in irgendwelchen Kursen.
 

ARadauer

Top Contributor
Im Grunde sind das Fingerübungen... ein Schlosserlehrling muss auch am Anfang stundenlang Werkstücke feilen. Glaubst du in seinem Berufsleben wo er eine 10 Mio teure CNC Drehmaschine bedient tut er das noch oft?
Man muss schon etwas die Grundlagen verstanden haben, damit man dann später nicht beim ersten komplexeren Problem anstößt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Algorithmen und Datenstrukturen Allgemeine Java-Themen 1
M Algorithmen und Datenstrukturen Allgemeine Java-Themen 6
M Aufgabenstellung unklar (Vorlesung Algorithmen und Datenstrukturen..) Allgemeine Java-Themen 2
B Web Crawler Algorithmen mit Jsoup Allgemeine Java-Themen 3
A Algorithmen Allgemeine Java-Themen 2
A Algorithmen Allgemeine Java-Themen 2
Gaudimagspam Algorithmen formulieren Allgemeine Java-Themen 1
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
S Buch oder Website mit genialen Algorithmen..? Allgemeine Java-Themen 1
C Rechenzeit verschiedener Algorithmen vergleichen Allgemeine Java-Themen 4
F deduktive algorithmen Allgemeine Java-Themen 0
X Suche Softwareimplementierung von Cryptographischen Algorithmen Allgemeine Java-Themen 3
K Frage zu ProgressBars, Algorithmen und Multithreading ->F Allgemeine Java-Themen 2
A Datenstrukturen Allgemeine Java-Themen 2
A Datenstrukturen richtig anlegen/laufzeitanalyse Allgemeine Java-Themen 10
N Datenstrukturen an neue Klasse übergeben Allgemeine Java-Themen 16
D Multiple Datenstrukturen erstellen Allgemeine Java-Themen 4
D Design: on-the-fly-Parsing + Datenstrukturen Allgemeine Java-Themen 5
D Listen / Datenstrukturen und ein blutiger Anfänger Allgemeine Java-Themen 7
J vergleich zweier datenstrukturen Allgemeine Java-Themen 6
M Effiziente Datenstrukturen Allgemeine Java-Themen 3
theJavaMaschine Mitstreiter gesucht: Gemeinsam Java und Android Development lernen! Allgemeine Java-Themen 5
PARAS Karriereberatung benötigt: Wie kann ich ein Java Full Stack Entwickler werden? Allgemeine Java-Themen 7
P Java Access Bridge Allgemeine Java-Themen 5
W ICEpdf PDF-Dateien werden mit Java 21 nicht nicht mehr vollständig dargestellt Allgemeine Java-Themen 3
MiMa Grundsätzliche Frage zur Verwendung von Java Versionen?? Allgemeine Java-Themen 3
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben