Die Informatik (auch Computerwissenschaft genannt) befasst sich mit den theoretischen Grundlagen von Information und Datenverarbeitung sowie deren Implementierung und Anwendung in Computersystemen . Ein bekanntes Klassifikationssystem für Informatik ist das ACM Computing Classification System der Association for Computing Machinery .
Die Informatik lässt sich wie folgt beschreiben:
Unterfelder
Mathematische Grundlagen
- Codierungstheorie – Nützlich in der Netzwerktechnik, Programmierung, Systementwicklung und anderen Bereichen, in denen Computer miteinander kommunizieren.
- Spieltheorie – Nützlich in der künstlichen Intelligenz und Kybernetik .
- Diskrete Mathematik – Die Lehre von diskreten Strukturen. Wird in digitalen Computersystemen verwendet.
- Graphentheorie – Grundlagen für Datenstrukturen und Suchalgorithmen.
- Mathematische Logik – Boolesche Logik und andere Wege zur Modellierung logischer Anfragen; die Anwendungsmöglichkeiten und Grenzen formaler Beweismethoden.
- Zahlentheorie – Theorie der ganzen Zahlen . Wird in der Kryptographie sowie als Testgebiet in der künstlichen Intelligenz verwendet .
Algorithmen und Datenstrukturen
- Algorithmen – Sequenzielle und parallele Rechenverfahren zur Lösung eines breiten Spektrums von Problemen.
- Datenstrukturen – Die Organisation und Manipulation von Daten.
Künstliche Intelligenz
Überblick über künstliche Intelligenz
- Künstliche Intelligenz – Die Implementierung und Untersuchung von Systemen, die eine autonome Intelligenz oder ein eigenständiges Verhalten aufweisen.
- Automatisiertes Schließen – Lösungsmechanismen, wie sie beispielsweise in Prolog verwendet werden , welche Schritte zu einem Ergebnis auf Basis einer Abfrage einer Fakten- und Regeldatenbank erzeugen, sowie automatisierte Theorembeweiser , die mathematische Theoreme mit Unterstützung eines Programmierers beweisen sollen .
- Computer Vision – Algorithmen zur Identifizierung dreidimensionaler Objekte aus einem zweidimensionalen Bild.
- Soft Computing , die Verwendung ungenauer Lösungen für ansonsten extrem schwierige Probleme:
- Maschinelles Lernen – Entwicklung von Modellen, die in der Lage sind, ohne explizite Anweisungen zu lernen und sich anzupassen, indem Algorithmen und statistische Modelle verwendet werden, um Datenmuster zu analysieren und daraus Schlussfolgerungen zu ziehen.
- Evolutionäres Rechnen – Biologisch inspirierte Algorithmen.
- Verarbeitung natürlicher Sprache – Entwicklung von Systemen und Algorithmen zur Analyse, zum Verständnis und zur Generierung natürlicher (menschlicher) Sprachen.
- Robotik – Algorithmen zur Steuerung des Verhaltens von Robotern.
Kommunikation und Sicherheit
- Netzwerktechnik – Algorithmen und Protokolle für die zuverlässige Datenübertragung über verschiedene gemeinsam genutzte oder dedizierte Medien, oft einschließlich Fehlerkorrektur .
- Computersicherheit – Praktische Aspekte der Sicherung von Computersystemen und Computernetzwerken.
- Kryptographie – Wendet Ergebnisse aus Komplexitätstheorie, Wahrscheinlichkeitstheorie, Algebra und Zahlentheorie an, um Codes zu erfinden und zu knacken sowie die Sicherheit kryptographischer Protokolle zu analysieren .
Computerarchitektur
- Rechnerarchitektur – Entwurf, Organisation, Optimierung und Verifizierung eines Computersystems, hauptsächlich bestehend aus CPUs und Speichersubsystemen (und dem Bus, der diese verbindet).
- Betriebssysteme – Systeme zur Verwaltung von Computerprogrammen und zur Bereitstellung der Grundlage für ein nutzbares System.
Computergrafik
- Computergrafik – Algorithmen sowohl zur synthetischen Erzeugung visueller Bilder als auch zur Integration oder Veränderung visueller und räumlicher Informationen aus der realen Welt.
- Bildverarbeitung – Gewinnung von Informationen aus einem Bild durch Computerberechnungen.
- Informationsvisualisierung – Methoden zur Darstellung und Anzeige abstrakter Daten, um die menschliche Interaktion zur Erkundung und zum Verständnis zu erleichtern.
Gleichzeitige, parallele und verteilte Systeme
- Parallelrechnen – Theorie und Praxis der simultanen Datenverarbeitung; Datensicherheit in jeder Multitasking- oder Multithread-Umgebung.
- Parallelverarbeitung (Informatik) – Rechnen mit mehreren gleichzeitig ausgeführten Threads, Entwicklung von Algorithmen zur Problemlösung auf verschiedenen Prozessoren, um im Vergleich zur sequenziellen Ausführung eine maximale Beschleunigung zu erzielen.
- Verteiltes Rechnen – Rechnen mit mehreren Rechengeräten über ein Netzwerk, um ein gemeinsames Ziel oder eine gemeinsame Aufgabe zu erreichen und dadurch die Latenz zu reduzieren, die bei der Bearbeitung einer Aufgabe durch einen einzelnen Prozessor entsteht.
Datenbanken
- Relationale Datenbanken – die mengentheoretische und algorithmische Grundlage von Datenbanken.
- Strukturierte Speicherung – nicht-relationale Datenbanken wie z. B. NoSQL -Datenbanken.
- Data Mining – Untersuchung von Algorithmen zur Suche und Verarbeitung von Informationen in Dokumenten und Datenbanken; eng verwandt mit Information Retrieval .
Programmiersprachen und Compiler
- Compilertheorie – Theorie des Compilerentwurfs , basierend auf der Automatentheorie .
- Pragmatik von Programmiersprachen – Taxonomie von Programmiersprachen, ihre Stärken und Schwächen. Verschiedene Programmierparadigmen , wie z. B. die objektorientierte Programmierung .
- Theorie der Programmiersprachen – Theorie des Entwurfs von Programmiersprachen
- Formale Semantik – die strenge mathematische Untersuchung der Bedeutung von Programmen.
- Typentheorie – Formale Analyse der Datentypen und die Verwendung dieser Typen zum Verständnis der Eigenschaften von Programmen – insbesondere der Programmsicherheit.
Wissenschaftliches Rechnen
- Computergestützte Wissenschaft – die Entwicklung mathematischer Modelle und quantitativer Analyseverfahren sowie der Einsatz von Computern zur Analyse und Lösung wissenschaftlicher Probleme.
- Numerische Analysis – Näherungsweise numerische Lösung mathematischer Probleme wie Nullstellensuche , Integration , Lösung gewöhnlicher Differentialgleichungen ; Approximation spezieller Funktionen .
- Symbolische Berechnung – Manipulation und Lösung von Ausdrücken in symbolischer Form, auch bekannt als Computeralgebra .
- Computerphysik – Numerische Simulationen großer nicht-analytischer Systeme
- Computerchemie – Computergestützte Modellierung der theoretischen Chemie zur Bestimmung chemischer Strukturen und Eigenschaften
- Bioinformatik und Computerbiologie – Die Anwendung der Informatik zur Pflege, Analyse und Speicherung biologischer Daten sowie zur Unterstützung bei der Lösung biologischer Probleme wie Proteinfaltung , Funktionsvorhersage und Phylogenie .
- Computergestützte Neurowissenschaft – Computergestützte Modellierung der Neurophysiologie .
- Computerlinguistik
- Computerlogik – Anwendung von Logik zur Durchführung oder zum Schlussfolgern über Berechnungen
- Computergestützte Ingenieurwissenschaften – Bereich der algorithmischen Ausbildung
Softwareentwicklung
Überblick über die Softwareentwicklung
- Formale Methoden – Mathematische Ansätze zur Beschreibung und zum Schlussfolgern über Software-Design.
- Software-Engineering – Die Prinzipien und Praktiken des Entwerfens, Entwickelns und Testens von Programmen sowie die entsprechenden Engineering-Praktiken.
- Algorithmenentwicklung – Ideen aus der Algorithmentheorie nutzen, um kreative Lösungen für reale Aufgaben zu entwickeln.
- Computerprogrammierung – Die Praxis, eine Programmiersprache zur Implementierung von Algorithmen zu verwenden.
- Mensch-Computer-Interaktion – Die Erforschung und Gestaltung von Computerschnittstellen, die von Menschen genutzt werden.
- Reverse Engineering – Die Anwendung der wissenschaftlichen Methode zum Verständnis beliebiger bestehender Software.
Theorie der Berechnung
- Automatentheorie – Verschiedene logische Strukturen zur Problemlösung.
- Berechenbarkeitstheorie – Was ist mit den aktuellen Computermodellen berechenbar? Beweise von Alan Turing und anderen geben Aufschluss darüber, was berechenbar ist und was nicht.
- Komplexitätstheorie – Fundamentale Schranken (insbesondere Zeit und Speicherplatz) für Klassen von Berechnungen.
- Quantencomputertheorie – Erforscht Rechenmodelle, die die Quantenüberlagerung von Bits beinhalten.
Geschichte
- Geschichte der Informatik
- Liste der Pioniere der Informatik
- Geschichte der künstlichen Intelligenz
- Geschichte der Betriebssysteme
Berufe
- Informatiker
- Programmierer (Softwareentwickler)
- Lehrer / Professor
- Softwareentwickler
- Softwarearchitekt
- Softwaretester
- Hardware-Ingenieur
- Datenanalyst
- Interaktionsdesigner
- Netzwerkadministrator
- Datenwissenschaftler
Daten und Datenstrukturen
- Datenstruktur
- Datentyp
- Assoziatives Array und Hashtabelle
- Array
- Liste
- Baum
- Zeichenkette
- Matrix (Informatik)
- Datenbank
Programmierparadigmen
- Imperative Programmierung / Prozedurale Programmierung
- Funktionale Programmierung
- Logikprogrammierung
- Deklarative Programmierung
- Ereignisgesteuerte Programmierung
- Objektorientierte Programmierung