Informatik Buch



  • Hallo,

    ich studiere eine technisches Fach, bei dem wir zwar viel über Programmieren gelernt haben, aber was mir ein bisschen abgeht ist die Theorie dahinter, so Dinge wie Turing Maschine, Komplexität, Algorithmen, u.ä.
    Ich hätte gern ein Buch, welches mir möglichst breit gefächert einige Grundlagen der Informatik näher bringt.

    Muss jetzt nicht so im Detail sein, aber halt so, dass ich die Begriffe zuordnen kann, im Zweifelsfall kann ich immer noch in einem Spezialbuch nachschlagen.
    Wenn möglich sollte das ganze praxisorientiert sein, also mir wäre lieber wenn z.B. erklärt wird wie man die Komplexität eines Algorithmus' bestimmt als eine mathematische Herleitung dahinter.
    Einige Standard Algorithmen hingegen wären wieder interessant.

    Programmieren an sich muss jetzt nicht so im Detail erklärt werden da ich damit sowohl auf der Uni, der Arbeit, als auch privat zu tun habe.

    Nur so ein Beispiel was ich mir *ungefähr* vorstelle:
    http://www.amazon.de/dp/3446407545

    Da das ganze für mich privat ist, möchte ich jetzt auch nicht Unsummen ausgeben.



  • Die Komplexitätsbestimmung ist doch schon eine Herleitung. Ansonsten bleibt es bei einer Vermutung.

    Das Taschenbuch der Informatik ist ziemlich sicher nicht das was Du suchst. Es verstaubt seit Jahren bei mir im Regal weil es einfach mal unbrauchbar und nicht mit dem Bronstein für Mathematik zu vergleichen ist. Vieles wird angesprochen und nichts wird erklärt. Hände weg davon.

    Es gibt Bücher für Informatik-Einsteiger die einen Rundumschlag versuchen. Das Ganze aber als Lehrbuch und nicht als Lexikon:
    http://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=�M�Z��&url=search-alias%3Dstripbooks&field-keywords=einf�hrung+informatik&x=0&y=0

    Konkret empfehlen kann ich keines aber ein paar davon hatte ich schon in der Hand und so schlecht sah das garnicht aus.

    Alternativ kannst Du Dich auch durch die Skripte für Informatiker im Grundstudium quälen. Aber das setzt massiv Motivation und Zeit voraus.



  • µ schrieb:

    Das Taschenbuch der Informatik ist ziemlich sicher nicht das was Du suchst. Es verstaubt seit Jahren bei mir im Regal weil es einfach mal unbrauchbar und nicht mit dem Bronstein für Mathematik zu vergleichen ist. Vieles wird angesprochen und nichts wird erklärt. Hände weg davon.

    Bist Du Informatiker?

    Mit diesen "Taschenbuechern der XYZ" ist das naemlich so eine Sache. Ich habe das Gefuehl, dass die nicht fuer Leute aus dem jeweiligen Gebiet geschrieben sind, sondern eher fuer externe, die irgendeine Kleinigkeit aus dem Gebiet benoetigen. Das Taschenbuch der Informatik habe ich mir nie gekauft, aber bei mir verstaubt dafuer das Taschenbuch der Physik. Ich dachte mir mal, dass viele Dinge im Physikstudium nicht explizit definiert werden. Deshalb habe ich mir damals dieses Buch gekauft. Ich hatte die Hoffnung, dass dort fuer all diese Begriffe, die ich brauchte, eine kurze Definition drinsteht. Einige Jahre spaeter kann ich sagen, dass ich im Taschenbuch der Physik keine einzige Definition oder Erklaerung zu etwas gefunden habe, was ich gebraucht habe. Das liegt aus meiner Sicht daran, dass die Begriffe, die mich interessiert haben, schon zu speziell waren. Inzwischen denke ich, dass das Taschenbuch der Physik eher fuer Ingenieure interessant ist, die vielleicht mal kurz irgendeine Formel brauchen.

    Mit dem Taschenbuch der Mathematik sieht es so aehnlich aus. Das habe ich oft sehr erfolgreich genutzt. Allerdings bin ich auch kein Mathematiker. Mathematiker selbst nutzen dieses Buch AFAIK eher selten. Denn da stehen auch nur Saetze und Formeln. Mathematikern geht es aber vermutlich eher um Beweise.



  • Glutamat schrieb:

    Wenn möglich sollte das ganze praxisorientiert sein, also mir wäre lieber wenn z.B. erklärt wird wie man die Komplexität eines Algorithmus' bestimmt als eine mathematische Herleitung dahinter.

    Ich dachte, du wolltest die Theorie dahinter verstehen. Turing Maschinen sind nicht Praxis relevant sondern ein reines Tool zur theretischen Analyse. Genauso wie die Komplexität meistens nur über einen echten Beweis geführt(insbesondere was für ein Problem das Optimum ist). Auch die meisten Algorithmen versteht man nur, wnen man ein paar ihrer Grundeingeschaftne Beweist (Flussalgorithmen etc).

    Wenn du nur eine Liste der gebräuchlichsten Algorithmen mit kurzer Erklärung und Code willst: Algorithmen in C.
    Wenn du theoretisches Grundlagenwissen willst: schau dir mal "theoretische Informatik- kurz gefasst" an. Ist deine Preisklasse und macht mal nen Durchlauf durch die wichtigsten Aspekte der theoretischen Informatik.



  • Das "Theoretische Informatik - kurz gefasst" find ich schon mal ganz ok!
    http://www.amazon.de/dp/3827418240
    Mir gehts unter anderem auch darum, dass ich einen Informatik Master machen werde, und dafür möchte ich zumindest ein paar Informationen zu der theoretischen Informatik in meinem Gehirn abgespeichert haben.

    Was ich mich aber immer frage bei solchen Themen: Hat man in der Praxis irgendwas davon? Soll heißen: Ich kauf mir das Buch, les' es, und versuch es zu verstehen.
    Wird das irgendeine Auswirkung darauf haben, wie ich in Zukunft Probleme angehe und letztendlich in Code umsetze, oder ist es wie der Name schon sagt wirklich nur theoretischer Natur und damit nur auf der Uni in gewissen Vorlesungen wichtig?



  • Gregor schrieb:

    Bist Du Informatiker?

    Kurze Antwort: Nein

    Lange Antwort: Ich habe alle Scheine und Hauptdiplomprüfungen in Informatik (Uni) eingesackt. Diplomarbeit konnte ich aber aus persönlichen Gründen nicht mehr schreiben und musste mich exmatrikulieren.



  • Glutamat schrieb:

    Was ich mich aber immer frage bei solchen Themen: Hat man in der Praxis irgendwas davon?

    WIe so oft: kommt drauf an. Wenn du eine Sprache designst solltest du genau wissen, wie mächtig dein Parser ist. Ein Mächtiger Parser ist zwar gut, aber die Sprache ist schwieriger zu formulieren und die Verarbeitung dauert auch länger. Zum Beispiel ist Python absichtlich als LL(1) formuliert um möglichst einfach und effizient verarbeitbar zu sein. Bei sowas kann dir das Wissen in Automatentheorie helfen. Allerdings ersetzt das Buch das ich gelinkt hab keine Vorlesung in Sprachimplementierung oder ähnlichem.

    Die Komplexitätstheorie insbesondere so Sachen wie polynomielle Reduktion können sinnvoll sein, wenn du überprüfen willst ob eine Problemstellung NP-vollständig ist. Dann kannst du vielleicht deinem Auftraggeber sagen, dass er da etwas unmögliches versucht (oder direkt nach guten Approximationstechniken suchen).

    Wird das irgendeine Auswirkung darauf haben, wie ich in Zukunft Probleme angehe und letztendlich in Code umsetze

    Zu einem besseren programmierer wird dich das nicht machen, wenn du das meinst. Es gibt Bereiche der Informatik - man glaubt es kaum- die nichts mit programmeiren zu tun haben.



  • otze schrieb:

    Die Komplexitätstheorie insbesondere so Sachen wie polynomielle Reduktion können sinnvoll sein, wenn du überprüfen willst ob eine Problemstellung NP-vollständig ist. Dann kannst du vielleicht deinem Auftraggeber sagen, dass er da etwas unmögliches versucht (oder direkt nach guten Approximationstechniken suchen).

    Das Märchen wurde uns auch erzählt.

    (Nicht gegen TI und deren Relevanz. Aber das ist an den Haaren herbeigezogen)



  • µ schrieb:

    otze schrieb:

    Die Komplexitätstheorie insbesondere so Sachen wie polynomielle Reduktion können sinnvoll sein, wenn du überprüfen willst ob eine Problemstellung NP-vollständig ist. Dann kannst du vielleicht deinem Auftraggeber sagen, dass er da etwas unmögliches versucht (oder direkt nach guten Approximationstechniken suchen).

    Das Märchen wurde uns auch erzählt.

    (Nicht gegen TI und deren Relevanz. Aber das ist an den Haaren herbeigezogen)

    Inwiefern? Meinst Du...

    a) So etwas interessiert keinen "Auftraggeber"!

    oder

    b) Durch das Wissen über Komplexitätstheorie wird man nicht in eine bessere Lage bezüglich der Einschätzung der Komplexität von Problemstellungen gebracht!

    Oder etwas ganz anderes?



  • Eins vorweg, die Komplexitäts- und Berechenbarkeitstheorie sowie Logik waren für mich die Highlights im Studium, weil sie tiefe Einblicke gestatten.

    Leider leiden solche Vorlesungen an der Akzeptanz vieler Studenten, welche diese Themen nur als notwendiges Übel ansehen und mehr an Ausbildung als Bildung interessiert sind. Also packen die Dozenten das Märchen der Praxistauglichkeit solcher Themen aus. Ich kann mir einfach kein wirtschaftlich orientiertes Unternehmen vorstellen, deren Projektleiter sich für Reduktionsbeweise oder Korrektheitsbeweise mit dem Hoare-Kalkül interessieren. Nur in sehr speziellen Gebieten wie dem Compilerbau vielleicht.

    Also a) ohne Zweifel.

    b) stimmt nicht. Man hat ein intuitives Gefühl dafür, ob eine Lösung brauchbar ist oder nicht, wenn man die Grundlagen gelernt hat. Und man hat ein gutes Gefühl dafür, ob die Lösung akzeptabel ist. Aber ein "q.e.d." ist mir in der Praxis noch nicht untergekommen, schon garnicht gegenüber dem Chef. 😉



  • Übrigens Gregor, das Taschenbuch der Physik (ebenso Etechnik und Mathematik) finde ich toll und stöbere gerne darin. Du hast wahrscheinlich recht mit deiner Vermutung über Fachfremde 😉



  • Das Taschenbuch der Informatik ist zwar ein megamäßiger Schneinsritt durch alle möglichken Themen, aber zum Überblicken und Nachschlagen, wie auch als Quelle für Notdefinitionen, nicht unbedingt schlecht.

    Da in der Wissenschaft oft das Problem ist, das man immer wieder mal eine ganze Tüte furztrockenen Haferbrei ohne jede Flüssigkeit auf Ex fressen muß, sind Bücher wie
    http://www.amazon.de/Alan-Turing-Enigma-Andrew-Hodges/dp/0099116413/
    http://www.amazon.de/Passagen-einem-Philosophenleben-Charles-Babbage/dp/3931659070/
    oder andere wie
    http://www.amazon.de/Zahlenteufel-Kopfkissenbuch-Angst-Mathematik-haben/dp/3423620153/
    http://www.amazon.de/Real-World-Haskell-Bryan-OSullivan/dp/0596514980/
    hilfreich.

    Beide Bio-Helden, also Turing und Babbage, sind hervorragende Mathematiker, mit einem ebenso hervorragenden, spannenden praktischen Hintergrund.



  • µ schrieb:

    Eins vorweg, die Komplexitäts- und Berechenbarkeitstheorie sowie Logik waren für mich die Highlights im Studium, weil sie tiefe Einblicke gestatten.

    Leider leiden solche Vorlesungen an der Akzeptanz vieler Studenten, welche diese Themen nur als notwendiges Übel ansehen und mehr an Ausbildung als Bildung interessiert sind. Also packen die Dozenten das Märchen der Praxistauglichkeit solcher Themen aus. Ich kann mir einfach kein wirtschaftlich orientiertes Unternehmen vorstellen, deren Projektleiter sich für Reduktionsbeweise oder Korrektheitsbeweise mit dem Hoare-Kalkül interessieren. Nur in sehr speziellen Gebieten wie dem Compilerbau vielleicht.

    Also a) ohne Zweifel.

    b) stimmt nicht. Man hat ein intuitives Gefühl dafür, ob eine Lösung brauchbar ist oder nicht, wenn man die Grundlagen gelernt hat. Und man hat ein gutes Gefühl dafür, ob die Lösung akzeptabel ist. Aber ein "q.e.d." ist mir in der Praxis noch nicht untergekommen, schon garnicht gegenüber dem Chef. 😉

    Ja. Ich denke, so muss man die Komplexitätstheorie auch in etwa sehen. Man wird in die Lage verstetzt, Problemstellungen besser einzuschätzen. Natürlich interessiert die Auftraggeber so etwas nicht. Die wollen nur Resultate sehen und kein "So geht das nicht!" hören. Komplexitätstheorie beschäftigt sich nicht mit derart sozialen Aspekten.

    Trotz allem denke ich, dass es sehr hilfreich ist, wenn man entsprechendes Wissen über die Komplexitätstheorie hat und seine Problemstellungen gut einschätzen kann. Und so würde ich auch die Praxisrelevanz sehen.

    Zusatz: Andererseits kann man davon ausgehen, dass die meisten Informatikstudenten in ihrem Studium nicht so viel Komplexitätstheorie mitkriegen, dass sie tatsächlich in so einem hohen Maße davon profitieren können. Die meisten nehmen diesbezüglich das Pflichtprogramm mit und beschäftigen sich nicht weitergehend damit. Dabei kann man durchaus danach auch noch eine Menge lernen, was den Praxisbezug mit der Zeit offensichtlicher macht, auch wenn er sicherlich nie direkt herausgearbeitet wird. Zum Beispiel durch Lektüre des "braunen Buchs"...
    Computational Complexity | ISBN: 0521424267


Anmelden zum Antworten