StartseiteSitemapDownloadsHilfeImpressumPOV-Ray-Zauberwürfel Chat


Startseite

Informatik

„Was – du studierst Informatik? Ich hätte da ein Problem mit meinem Drucker!” (Kollorz)
Wer glaubt, ein Informatiker könne einen Computer oder Ähnliches reparieren, der sollte seine Anschauung doch ein wenig nachkorrigieren, denn dazu wird ein Informatiker im Allgemeinen nicht ausgebildet. Ebenso wird aller Wahrscheinlichkeit nach ein (Kern−) Physiker auch kein Auto reparieren können, wenn „Autos reparieren” nicht gerade zu seinen Hobbys zählt. Ein Architekt dürfte auf der Baustelle wohl auch keine besonders gute Arbeitskraft darstellen. Selbst ein praktischer Arzt kann nicht einmal von einem Biologen vertreten werden. „In der Informatik geht es genauso wenig um Computer wie in der Astronomie um Teleskope.” (Dijkstra) Der Computer stellt für den Informatiker lediglich ein Labor dar, mit dem er arbeiten kann – der Informatiker hat sein ganzes Labor auf kleinem Raum.
Wenn sich aber Informatiker im Bereich der Hardware spezialisieren oder als Systemadministratoren arbeiten, kann es durchaus auch sein, dass solche Informatiker ein Druckerproblem in den Griff bekommen können. Was die Aufgaben eines Informatikers nun wirklich sind, wird im Folgenden vielleicht etwas klarer. Sie haben doch bestimmt schon einmal Eigentlich weiß aber nur ein Informatiker, was ein Informatiker alles können sollte. Deshalb schadet es nicht, wenn Sie selbst ein bisschen zum Informatiker werden.

Was ist Informatik?

Je länger ich mich mit der Materie Informatik auseinandersetze, desto mehr vertrete ich den Standpunkt, dass Informatik im gewissen Sinne einen Eckpfeiler für Sprachwissenschaften darstellt. Ohne Sprache läuft in der Informatik gar nichts! Mit Hilfe von Sprachen beschreibt der Informatiker nicht nur Lösungsverfahren, sondern auch die zu lösenden Probleme, was zum Beispiel die intensive Auseinandersetzung mit formalen Sprachen in der Informatik erklärt: Formale Sprachen – damit auch Computer mitsprechen können. :−)
In manchen Bereichen der Informatik wird sogar versucht, selbst natürliche Sprachen formal zu erschließen. Im Grunde genommen liegt die Kunst darin, für eine Sprache eine zugrunde liegende Bedeutung derart festzulegen, dass anhand dieser Bedeutung eine Lösung für ein gegebenes Problem gefunden werden kann. Umgekehrt versucht man häufig anhand einer Klasse von Problemstellungen, Sprachen zu formulieren, um möglichst viele Problemlösungsverfahren prägnant beschreiben zu können, was die ständig wachsende Zahl spezialisierter Programmiersprachen erklärt.
Die Begriffe „Sprache” und „Wort” werden entgegen dem herkömmlichen Gebrauch in der Informatik viel allgemeiner und deutlich abstrakter formuliert, sodass praktisch alles „Beschreibbare” (praktisch alles!) als Wort einer Sprache angesehen wird. Dass man dank der Informatik nun über nützliche Computerprogramme verfügt, lässt sich letztendlich immer nur auf die Anwendung formaler Sprachen zurückführen. Ein Computerprogramm ist im Übrigen auch wieder ein Wort einer Sprache. Selbst unser Universum ist ein Wort einer unfassbaren Sprache, andere Universen wie zum Beispiel so genannte Paralleluniversen sind eben andere Wörter dieser unfassbaren Sprache. Diese Wörter wachsen, schrumpfen und verändern sich. Doch wer verändert diese universalen Wörter? Ein alles umfassender Wortapparat namens Turingmaschine – auch bekannt unter dem Namen: Matrix.
Wenn man bedenkt, dass eine Turingmaschine wiederum als Wort einer weiteren Sprache formuliert werden kann, kommt zweifellos irgendwann einmal die Frage nach Gott. Ehe Sie Gelegenheit bekommen, mir „Gottlosigkeit” vorzuwerfen, möchte ich im Folgenden ein paar Begriffsdefinitionen aus der Literatur angeben. :−)
„Informatik [lat.] ist die Wissenschaft, die sich mit der grundsätzlichen Verfahrensweise der Informationsverarbeitung und allgemeinen Methoden der Anwendung solcher Verfahren [...] befasst. Hauptziel ist, Strukturen und Beschreibungsmöglichkeiten von Informationsverarbeitungssystemen und -prozessen und Informationen zu finden (Informationstheorie), wobei die Effektivität eine große Rolle spielt (Betriebssystem, Programmiersprachen). Rechnerarchitektur und -technologie, Automatisierung u. a. sind einige Disziplinen der Informatik.” [BROCKHAUS1977]
Informatik (computer science) ist die Wissenschaft von der systematischen Verarbeitung von Informationen, besonders der automatischen Verarbeitung mit Hilfe von Computern. Heute stellt sich die Informatik als eine Ingenieurwissenschaft dar, die (anstelle der Grundelemente Materie und Energie) den Rohstoff Information modelliert, aufbereitet, speichert, verarbeitet und einsetzt. Die schnell wachsende Bedeutung der Informatik verbunden mit dem großen Bedarf an Fachleuten auf diesem Gebiet hat in den USA Anfang der 60er, in Deutschland Anfang der 70er Jahre zur Schaffung von Informatikstudiengängen an Universitäten und Fachhochschulen geführt, vergleiche [INFODUDEN S. 305].

Theoretische Informatik

Sowohl für die Formulierung und Untersuchung von Algorithmen als auch für die Rechnerkonstruktion spielen formale Methoden und mathematische Modelle eine wesentliche Rolle. Da die Struktur von Computern ständig komplexer wird, nimmt auch der Abstraktionsgrad einer angemessenen Beschreibung zu.
Für die Untersuchung von Fragestellungen in diesem Bereich sind gute Kenntnisse der modernen strukturellen Mathematik nötig.
Während aber in der Mathematik überwiegend statische Strukturen betrachtet werden, prägt in der Informatik der dynamische Ablauf von Prozessen die Denkweise. [INFODUDEN]
Forschungsbereiche:

Praktische Informatik

Die praktische Informatik entwickelt Methoden, um Programmsysteme erstellen zu können, sowie konkrete Entwicklungsumgebungen und Software-Werkzeuge zur Unterstützung von Programmierern und Anwendern. [INFODUDEN]
Grundstudium:

Technische Informatik

In der technischen Informatik befasst man sich mit dem funktionellen Aufbau von Computern und den zugehörigen Geräten sowie mit dem logischen Entwurf von Rechnern, Geräten und Schaltungen (Hardware). [INFODUDEN]
Grundstudium:

Angewandte Informatik

Die angewandte Informatik beschäftigt sich mit dem Einsatz von Rechnern in den verschiedensten Bereichen unseres Lebens. Einerseits gilt es, spezialisierte Programme für bestimmte Aufgaben zu entwerfen, andererseits müssen Programme und Konzepte entworfen werden, die in vielfältigen Bereichen einsetzbar sein sollen wie z. B. Textverarbeitungssysteme oder Tabellenkalkulationssysteme. [INFO94]
Informatik ist wie die Mathematik interdisziplinär. Aus diesem Grunde kann Informatik als Hilfswissenschaft für andere Wissenschaften angesehen werden. Es ist von der Anwendung der Informatik die Rede, wenn ein Informatiker in enger Zusammenarbeit mit seinem Auftraggeber (z. B. ein Experte eines anderen Bereiches) unterstützende, hilfreiche Softwarelösungen entwickelt: „Nennen Sie mir ein Problem, und ich schreibe Ihnen ein Programm dafür.”
Grundstudium: Hauptstudium: {Im Hauptstudium hat der Informatikstudent die Möglichkeit sich auf ein paar wenige Bereiche zu konzentrieren.}



Übersicht

AlgorithmenLösungsverfahren
Algorithmen sind Verfahren zur Lösung von Problemen.
  1. SortierenSortierverfahren
    Wie können Elemente einer Liste in die richtige Reihenfolge gebracht werden?
    1. RadixSortDistributionSort BucketSort
      Das schnellste Sortierverfahren, welches je die Welt erblickte - jedoch mit Vorbehalten!
    2. QuickSort
      Einer der schnellsten Sortieralgorithmen, welcher auf Vergleichen beruht, ist der QuickSort!
      1. Zufallsvariante
        Der Worst Case des QuickSort taucht nur noch in den seltensten Fällen auf!
      2. 3−Median−Variante
        Der Worst Case des QuickSort taucht so gut wie nie auf!
      3. IntroSort
        Der IntroSort ist ein QuickSort, der in entarteten Fällen auf andere schnelle Sortierverfahren zurückgreift.
    3. MergeSort
      Ein relevanter Algorithmus zum externen Sortieren ist der MergeSort!
    4. HeapSort
      Ein relevanter Sortieralgorithmus, welcher die Datenstruktur Heap benutzt, ist der HeapSort!
    5. BubbleSortBlasensortierung
      Ein äußerst ineffizienter Sortieralgorithmus ist der BubbleSort!
      1. ShakerSortCocktailSort ShearSort BiDiBubbleSort
        Ein verbesserter BubbleSort, aber immer noch ineffizient, ist der ShakerSort!
    6. SelectionSortSelectSort MinSort MaxSort ExchangeSort
      Ein recht ineffizienter Sortieralgorithmus ist der SelectionSort!
    7. InsertionSort
      Ein recht ineffizienter Sortieralgorithmus ist der InsertionSort!
      1. ShellSort
        Ein verbesserter InsertionSort, aber immer noch recht ineffizient, ist der ShellSort!
    8. SlowSort
      Ineffizienter kann man nicht mehr sortieren!
    9. BogoSortRandomSort StupidSort MonkeySort
      Der BogoSort gehört zu den langsamsten Sortieralgorithmen.
  2. KomprimierenKomprimierverfahren
    Wie können Dateien vorübergehend verkleinert werden?
    1. RLERun Length Encoding Lauflängenkodierung
      Eine Lauflängenkodierung, die die Folgen gleicher Werte stark komprimiert.
      1. RLE (8−Bit)
        Eine Lauflängenkodierung, die die Folgen gleichwertiger Bytes stark komprimiert.
      2. RLE (16−Bit)
      3. RLE (24−Bit)
      4. RLE (32−Bit)
      5. RLE (alternierend)
    2. HuffmanHuffman−Kodierung Shannon−Fano−Kodierung
      Die Idee von Morse wird von Huffman auf die Komprimierung beliebiger Daten übertragen.
    3. Lempel−Ziv
      Das bekannte Zip-Programm komprimiert mit Lempel-Ziv.
  3. SuchenSuchverfahren Suchalgorithmen
    Wie kann anhand eines Suchkriteriums ein Objekt gefunden werden?
    1. Damenproblem
      Acht Damen auf dem Schachbrett dürfen sich nicht gegenseitig schlagen können.
      1. Damenproblem−kongruenzfrei
        Damenproblem + Zusatzbedingung: Es gibt keine zwei Lösungen zum Damenproblem, die deckungsgleich sind.
    2. Springerproblem
      Ein Springer besucht jedes Feld auf dem Schachbrett genau ein Mal.
    3. SolitaireSolitär Solohalma Steckhalma Nonnenspiel Einsiedlerspiel Jumper
  4. PrimzahltestPrimzahl Primzahlfaktorzerlegung
    Prüfe, ob eine gegebene natürliche Zahl eine Primzahl ist!

Datenstrukturen
Datenstrukturen sind Datenmengen mit den jeweils dazugehörigen Operationen.
  1. StackKeller Stapelspeicher Kellerspeicher
    Eine listenähnliche Datenstruktur mit dem LIFO-Prinzip heißt Stack oder Keller.
  2. QueueWarteschlange
    Eine listenähnliche Datenstruktur mit dem FIFO-Prinzip heißt Queue oder Warteschlange.
    1. DequeueDouble−Ended Queue Deque
    2. PriorityQueuePrioritätsorientierte Warteschlange
      Eine Warteschlange nach dem Motto: Je wichtiger, desto eher!
  3. TreeBaum Kompositum
    Die Datenstruktur Tree stellt einen speziellen Graphen dar.
    1. BinaryTreeBinärbaum
      Der BinaryTree ist eine baumartige Datenstruktur mit dem maximalen Verzweigungsgrad 2.
      1. HeapHalde Max−Heap Descending Priority Heap
        Eine hierarchische Datenstruktur mit der ordnungserhaltenden Eigenschaft: Vater ist nie kleiner als seine Kinder.

Software−EngineeringSoftware−Entwicklung Software−Technik
Bei der Software-Entwicklung vereinen sich die Teildisziplinen der Informatik!
  1. EntwicklungsmodelleVorgehensmodelle
    Entwicklungsmodelle zur strukturierten Software-Entwicklung.
    1. Wasserfallmodell
      Das Wasserfallmodell ist ein bewährtes Modell zur strukturierten Software-Entwicklung.
    2. Evolutionäres Modell
      Mit dem evolutionären Modell nähert man sich den Bedürfnissen des Kunden schrittweise an.
    3. Transformationsmodell
      Mit einer formalen Spezifikation wird das Zielprojekt generiert.
  2. EntwicklungsphasenProduktentwicklung
    Entwicklungsphasen zur strukturierten Software-Entwicklung
    1. AnforderungsdefinitionLastenheft/Pflichtenheft
      Während der Anforderungsdefinition werden Produktvorstellungen dokumentiert.
      1. AnforderungserhebungRequirements Engineering
        Anforderungserhebung ist die Ermittlung erforderlicher Anforderungen.
      2. LastenheftGrobkonzept Fachkonzept
        Das Lastenheft erstellt der Kunde.
      3. PflichtenheftFachfeinkonzept Fachspezifikation Handbuch
        Das Pflichtenheft ist Teil und Voraussetzung des Vertrages.
    2. AufwandsschätzungKostenschätzung Aufwandsabschätzung
      Dauer und Kosten eines Software-Projekts werden geschätzt.
      1. Schätzmethoden
        Herkömmliche Methoden zur Aufwandsschätzung.
    3. EntwurfEntwurfsmuster Design−Patterns
      Der Entwurf legt die Beziehungen zwischen den Modulen/Objekten und Klassen fest.
    4. Spezifikation
      Die Spezifikation beschreibt vollständig alle Bestandteile des Software-Systems.
    5. ImplementationImplementierung
      Die Implementation ist die Erzeugung des Software-Systems gemäß der Spezifikation.
    6. VerifikationSoftware−Test
      Die Verifikation ist der vollständige Test des implementierten Software-Systems.
      1. Verifikation−BeispielUnit−Tests JUnit
        Für den Software-Test von Java-Klassen eignet sich JUnit.
    7. InstallationSetup
      Der Kunde wird mit dem neu installierten Software-System vertraut gemacht.
    8. Wartung
      Die Wartung und Nachkorrektur des installierten Software-Systems.
  3. Web−Engineering
    Mit Web-Engineering zur Internetanwendung.
    1. Web−CMSWCMS
      Inhalte einer Webseite ohne Programmierkenntnisse bearbeiten.
      1. Web−CMS−BeispielVisitenkarte
        Eine editierbare Web-Visitenkarte als Web-CMS.
    2. Webdesign
      Achten Sie auf ein ansprechendes Design Ihrer Website!
      1. BrowserInternet−Browser
        Zur Betrachtung von Websites benötigen Sie einen Browser.
    3. MashupWeb 2.0 Applets Java−Applets
      Importieren Sie sich fremde Inhalte für Ihre eigene Website.
      1. 8−Puzzles−AppletOnline−Schiebepuzzle
        Importieren Sie sich das 8-Puzzles-Applet für Ihre eigene Website.
      2. Pfadsuche−Applet
        Importieren Sie sich das Pfadsuche-Applet für Ihre eigene Website.
      3. Setty−Applet
        Importieren Sie sich das Setty-Applet für Ihre eigene Website.
      4. Tinyray−AppletOnline−Raytracer
        Importieren Sie sich das Tinyray-Applet für Ihre eigene Website.
      5. Presburger−AppletOnline−Entscheider Online−Beweiser
        Importieren Sie sich das Presburger-Applet für Ihre eigene Website.
      6. DWZ−AppletOnline−DWZ−Rechner
        Importieren Sie sich das DWZ-Applet für Ihre eigene Website.
    4. WerbungGoogle−Werbung
      Nehmen Sie das Potential von Werbung im Internet wahr.
      1. AdWordsGoogle−AdWords
        Google-AdWords verschafft Ihnen Besucher für Ihre Website.
      2. AdSenseGoogle−AdSense
        Mit Google-AdSense können Sie mit Ihrer Website Geld verdienen.

ProgrammiersprachenComputersprachen
Die wichtigste Schnittstelle zwischen Mensch und Computer ist die Programmiersprache.
  1. CompilerCompilerbau Übersetzer Kompilierer
    Der Compiler übersetzt eine Quellsprache in eine Zielsprache.
  2. Interpreter
    Der Interpreter führt ein Quellprogramm aus.
    1. Setty
      Eine extrem einfache Sprache zur exemplarischen Demonstration der Arbeitsweise eines Interpreters.
      1. Setty−PräprozessorPräprozessor
        Ein besonders einfacher Präprozessor zur Quellsprache Setty.
      2. Setty−Scanner
        Ein verhältnismäßig einfacher Scanner zur Quellsprache Setty.
      3. Setty−Parser
        Ein gerade noch überschaubarer Parser zur Quellsprache Setty.
    2. TinyrayRaytracer Strahlenverfolgung
      Eine weitere Sprache zur exemplarischen Demonstration der Arbeitsweise eines Interpreters.
      1. Tinyray−ScannerScanner
        Der Scanner ist die Hauptkomponente der lexikalischen Analyse.
      2. Tinyray−ParserParser Syntaxbaum
        Der Parser ist die Hauptkomponente der syntaktischen Analyse.
      3. Tinyray−Language
        Ein Tinyray-Programm kann mit dem Language-Package leicht in andere Sprachen übersetzt werden.
      4. Tinyray−Raytracer
        Ein Tinyray-Programm kann mit dem Raytracer-Package zu einem 3D-Bild (gerendert) werden.
      5. Tinyray−Wallpapers
        Mit Tinyray erstellte Wallpapers (Desktop-Hintergrundbilder)
  3. Java
    Plattformunabhängige, objektorientierte Programmiersprache.
    1. Java−Snippets
      Java-Schnipsel, die häufig benötigt werden.
  4. C/C++
    Universelle Hochsprache zur Entwicklung beliebiger Programme.
  5. POV−Ray
    Raytracer mit objektbasierter Sprache zur Gestaltung von 3D-Grafiken.
    1. POV−Ray−Koordinaten3D
      Das POV-Ray-Koordinaten basiert auf dem Linke-Hand-System.
    2. POV−Ray−Schachspiel3D−Schach
      Die Entstehung eines 3D-Schachspiels mit POV-Ray.
    3. POV−Ray−ZauberwürfelRubik's Cube Zauberwürfel
      Ein POV-Ray-Framework für den Zauberwürfel von Rubik.
      1. POV−Ray−Zauberwürfel−TestsZauberwürfel−Tutorium
        Das Testen des POV-Ray-Framework ist zugleich ein Tutorium für den Zauberwürfel.
      2. Pons AsinorumDie Eselsbrücke
        Ein leichtes Muster des Zauberwürfels.
      3. Six SpotDie Blume
        Rubiks Zauberwürfel wird mit nur acht Drehungen zur Blume.
      4. Cube in a CubeDer Würfel im Würfel
        Der Würfel im Würfel ist ein sehr schönes Zauberwürfelmuster.
  6. LaTeX
    Makrosprache zur Erstellung von beliebigen Textdokumenten.
    1. Beamer
      LaTeX-Beamer: Ein Werkzeug zur Gestaltung konsistenter, ansprechender Präsentationen.

Künstliche IntelligenzKI Artificial Intelligence AI
Roboter/Computerprogramme weisen intelligentes Verhalten auf.
  1. KI−ArchitekturenExpertensystem
    Ansätze zur Strukturierung intelligenter Systeme.
  2. PlanenAblauforganisation
    Wenn Roboter/Computerprogramme eigenständig planen können.
    1. Klassisches Planen
      Das klassische Planen beruht auf Suche.



Info

stefan−baur.de / Informatik

[BROCKHAUS1977]  Der große Brockhaus,  F. A. Brockhaus,  18. Auflage,  1977,  ISBN 3−7653−0039−X.  12 Bände

[INFODUDEN]  Duden Informatik,  Bibliographisches Institut & F. A. Brockhaus AG,  2. Auflage,  1993,  ISBN 3−411−05232−5.  Ein Sachlexikon für Studium und Praxis

[THEORET]  Dr. rer. nat. Renate Winter (Universität Halle):  Theoretische Informatik,  Oldenbourg Wissenschaftsverlag GmbH,  2002,  ISBN 3−486−25808−7.  Grundlagen mit Übungsaufgaben und Lösungen

[INFO94]  Heinz−Peter Gumm,  Manfred Sommer:  Einführung in die Informatik,  Addision−Wesley (Deutschland) GmbH,  1. Auflage,  1994,  ISBN 3−89319−574−2.







Startseite

Copyright © 2004-2009 Stefan K. Baur − Druck20042005200620072008200920102011