Haupt >> Computerprogrammierung >> Informatik

Informatik

Informatik , oder Informatik , ist das Studium der theoretischen Grundlagen von Information und Berechnung und deren Implementierung und Anwendung in Computersystemen. Die Informatik hat viele Teilgebiete; Einige betonen die Berechnung spezifischer Ergebnisse (z. B. Computergrafik), während sich andere (z. B. die Theorie der Computerkomplexität) auf Eigenschaften von Computerproblemen beziehen. Wieder andere konzentrieren sich auf die Herausforderungen bei der Implementierung von Berechnungen. Beispielsweise untersucht die Programmiersprachentheorie Ansätze zur Beschreibung von Berechnungen, während Computerprogrammierung gilt spezifisch Programmiersprachen um spezielle Rechenaufgaben zu lösen.

Geschichte

Die Geschichte der Informatik liegt viele Jahre vor der Erfindung des modernen Digitalcomputers. Maschinen zur Berechnung fester numerischer Aufgaben gibt es seit der Antike, wie z Abakus . Wilhelm Schickard baute 1623 die erste mechanische Rechenmaschine. Karl Babbage entwarf in viktorianischen Zeiten eine Differenzmaschine, und um 1900 verkaufte die IBM Corporation Lochkartenmaschinen. Alle diese Maschinen waren jedoch darauf beschränkt, eine einzelne Aufgabe oder bestenfalls eine Teilmenge aller möglichen Aufgaben auszuführen.



Vor den 1950er Jahren der Begriff Computer an einen menschlichen Angestellten verwiesen, der Berechnungen durchführte. Frühe Forscher in der sogenannten Informatik, wie Kurt Gödel, Alonzo Church und Alan Turing , interessierte sich für die Frage der Berechenbarkeit: Was kann ein menschlicher Angestellter berechnen, der einfach einer Liste von Anweisungen mit Papier und Bleistift folgt, so lange wie nötig, und ohne Einfallsreichtum oder Einsicht? Ein Teil der Motivation für diese Arbeit war der Wunsch, sich weiterzuentwickeln Rechenmaschinen das die oft mühsame und fehleranfällige Arbeit eines menschlichen Computers automatisieren könnte. Ihre wichtigste Erkenntnis bestand darin, universelle Computersysteme zu konstruieren, die (theoretisch) in der Lage sind, alle möglichen berechenbaren Aufgaben auszuführen, und somit alle früheren Maschinen für dedizierte Aufgaben zu dem einzigen Begriff des universellen Computers zu verallgemeinern. Die Schaffung des Konzepts eines universellen Computers markierte die Geburtsstunde der modernen Informatik.

In den 1940er Jahren, als neuere und leistungsfähigere Rechenmaschinen entwickelt wurden, wurde der Begriff Computer bezog sich eher auf die Maschinen als auf ihre menschlichen Vorgänger. Als klar wurde, dass Computer für mehr als nur mathematische Berechnungen verwendet werden können, erweiterte sich das Gebiet der Informatik auf das Studium der Berechnung im Allgemeinen. Die Etablierung der Informatik als eigenständige akademische Disziplin begann in den 1960er Jahren mit der Gründung der ersten Informatik-Fakultäten und -Studiengänge. Seit praktische Computer verfügbar wurden, sind viele Computeranwendungen zu eigenständigen Studienbereichen geworden.

Große Erfolge

Trotz ihrer relativ kurzen Geschichte als formale akademische Disziplin hat die Informatik eine Reihe grundlegender Beiträge zur Informatik geleistet Wissenschaft und Gesellschaft . Diese beinhalten:

  • Eine formale Definition von Berechnung und Berechenbarkeit und ein Beweis dafür, dass es rechnerisch unlösbare und hartnäckige Probleme gibt.
  • Das Konzept eines Programmiersprache , ein Werkzeug für den präzisen Ausdruck methodologischer Informationen auf verschiedenen Abstraktionsebenen
  • Die Theorie und Praxis von Compilern zum Übersetzen zwischen Programmiersprachen
  • Praktische Anwendungen: der PC, die Internet , Suchmaschinen, wissenschaftliches Rechnen

Beziehung zu anderen Feldern

Trotz ihres Namens beinhaltet ein Großteil der Informatik nicht das Studium von Computern selbst. Tatsächlich wird der renommierte Informatiker Edsger Dijkstra oft mit den Worten zitiert: 'In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope.' Das Design und der Einsatz von Computern und Computersystemen wird im Allgemeinen als Bereich anderer Disziplinen als der Informatik angesehen. Beispielsweise wird das Studium von Computerhardware normalerweise als Teil der Computertechnik angesehen, während das Studium kommerzieller Computersysteme und ihrer Bereitstellung häufig als Informationstechnologie oder Informationssysteme bezeichnet wird. Die Informatik wird manchmal als unzureichend wissenschaftlich kritisiert, eine Ansicht, die in der Stellungnahme vertreten wird „Die Wissenschaft ist für die Informatik wie die Hydrodynamik für die Sanitärtechnik“ Stan Kelly-Bootle und anderen gutgeschrieben. Zwischen den verschiedenen computerbezogenen Disziplinen gab es jedoch viele gegenseitige Befruchtungen von Ideen. Die Informatikforschung ist auch oft in andere Disziplinen übergegangen, wie z. B. künstliche Intelligenz, Kognitionswissenschaft, Physik (siehe Quantencomputer) und Linguistik .

Der Informatik wird von einigen eine viel engere Beziehung zu ihr zugeschrieben Mathematik als viele wissenschaftliche Disziplinen. Die frühe Informatik wurde stark von der Arbeit von Mathematikern wie Kurt Gödel und anderen beeinflusst Alan Turing , und es gibt weiterhin einen nützlichen Gedankenaustausch zwischen den beiden Bereichen in Bereichen wie mathematische Logik, Kategorientheorie, Domänentheorie und Algebra .

Die Beziehung zwischen Informatik und Software-Engineering ist ein umstrittenes Thema, das durch Streitigkeiten darüber, was der Begriff 'Software-Engineering' bedeutet und wie Informatik definiert wird, weiter getrübt wird. Einige Leute glauben, dass Software Engineering eine Teilmenge der Informatik ist. Andere, die sich an der Beziehung zwischen anderen Ingenieur- und Wissenschaftsdisziplinen orientieren, glauben, dass der Hauptfokus der Informatik auf der Untersuchung der Eigenschaften von Berechnungen im Allgemeinen liegt, während der Hauptfokus der Softwareentwicklung auf dem Entwurf spezifischer Berechnungen zur Erreichung praktischer Ziele liegt. sie zu unterschiedlichen Disziplinen zu machen. Diese Ansicht wird (unter anderem) von David Parnas vertreten. Wieder andere behaupten, dass Software überhaupt nicht entwickelt werden kann.

Bereiche der Informatik

Die Informatik sucht nach Konzepten und Beweisen, um interessierende Rechensysteme zu erklären und zu beschreiben. Sie ist eine Wissenschaft, weil sie bei einem interessierenden System eine /Analyse/ durchführt und nach allgemeinen Prinzipien sucht, um dieses System zu erklären. Wie bei allen Wissenschaften können diese Theorien dann verwendet werden, um praktische technische Anwendungen zu synthetisieren, die wiederum neue zu untersuchende und zu analysierende Systeme vorschlagen können.

Mathematische Grundlagen

Mathematische Logik
Boolesche Logik und andere Methoden zur Modellierung logischer Abfragen; die Verwendung und Grenzen formaler Beweismethoden
Zahlentheorie
Beweistheorie und Heuristik zur Beweisfindung im einfachen Bereich der ganzen Zahlen. Benutzt in Kryptographie sowie eine Testdomäne in der künstlichen Intelligenz.
Graphentheorie
Grundlagen für Datenstrukturen und Suchalgorithmen.
Typentheorie
Formale Analyse der Datentypen und die Verwendung dieser Typen zum Verständnis der Eigenschaften von Programmen – insbesondere der Programmsicherheit.

Theorie der Berechnung

Automatentheorie
Verschiedene logische Strukturen zur Lösung von Problemen.
Berechenbarkeitstheorie
Was mit den aktuellen Computermodellen kalkulierbar ist. Beweise entwickelt von Alan Turing und andere bieten einen Einblick in die Möglichkeiten dessen, was berechnet werden kann und was nicht.
Berechnungskomplexitätstheorie
Grundlegende Grenzen (insbesondere Zeit und Speicherplatz) von Berechnungsklassen.
Theorie des Quantencomputings

Algorithmen und Datenstrukturen

Analyse von Algorithmen
Zeitliche und räumliche Komplexität von Algorithmen.
Algorithmen
Formale logische Prozesse, die für die Berechnung verwendet werden, und die Effizienz dieser Prozesse.
Datenstrukturen
Die Organisation von und Regeln für die Manipulation von Daten.

Programmiersprachen und Compiler

Compiler
Methoden zum Übersetzen von Computerprogrammen, normalerweise von höheren Sprachen in niedrigere Sprachen.
Programmiersprachen
Formale Sprachparadigmen zum Ausdrücken von Algorithmen und die Eigenschaften dieser Sprachen (z. B. für welche Probleme sie geeignet sind).

Nebenläufige, parallele und verteilte Systeme

Parallelität
Die Theorie und Praxis des simultanen Rechnens; Datensicherheit in jeder Multitasking- oder Multithread-Umgebung.
Verteiltes Rechnen
Datenverarbeitung unter Verwendung mehrerer Datenverarbeitungsgeräte über ein Netzwerk, um ein gemeinsames Ziel oder eine gemeinsame Aufgabe zu erfüllen und dabei die Latenzzeit zu reduzieren, die mit einzelnen Prozessorbeiträgen für jede Aufgabe verbunden ist.
Paralleles Rechnen
Computing mit mehreren gleichzeitigen Ausführungs-Threads.

Softwareentwicklung

Formale Methoden
Mathematische Ansätze zur Beschreibung und Begründung von Softwaredesigns.
Softwareentwicklung
Die Prinzipien und Praktiken des Entwerfens, Entwickelns und Testens von Programmen sowie ordnungsgemäße technische Praktiken.
Reverse-Engineering
Die Anwendung der wissenschaftlichen Methode auf das Verständnis beliebiger vorhandener Software
Algorithmus-Design
Verwenden von Ideen aus der Algorithmentheorie, um Lösungen für reale Aufgaben kreativ zu entwerfen
Computerprogrammierung
Die Praxis, eine Programmiersprache zu verwenden, um Algorithmen zu implementieren

Rechnerarchitektur

Rechnerarchitektur
Das Design, die Organisation, Optimierung und Verifizierung eines Computersystems, hauptsächlich in Bezug auf CPUs und Speichersubsysteme (und den sie verbindenden Bus).
Betriebssysteme
Systeme zur Verwaltung von Computerprogrammen und Bereitstellung der Basis eines nutzbaren Systems.

Kommunikation

Spieltheorie
In jüngster Zeit hat die Spieltheorie aufgrund ihrer Verwendung in der künstlichen Intelligenz und Kybernetik die Aufmerksamkeit von Informatikern auf sich gezogen.
Vernetzung
Algorithmen und Protokolle für die zuverlässige Kommunikation von Daten über verschiedene gemeinsam genutzte oder dedizierte Medien, häufig einschließlich Fehlerkorrektur.
Kryptographie
Wendet Ergebnisse aus der Komplexitäts-, Wahrscheinlichkeits- und Zahlentheorie an, um Codes zu erfinden und zu knacken.

Datenbanken

Relationale Datenbanken
Data-Mining
Untersuchung von Algorithmen zur Suche und Verarbeitung von Informationen in Dokumenten und Datenbanken; eng mit der Informationsbeschaffung verbunden.

Künstliche Intelligenz

Künstliche Intelligenz
Die Implementierung und Untersuchung von Systemen, die eine autonome Intelligenz oder ein eigenes Verhalten aufweisen.
Automatisiertes Denken
Lösungsmaschinen, wie sie in Prolog verwendet werden, die bei einer Abfrage in einer Fakten- und Regeldatenbank Schritte zu einem Ergebnis erzeugen.
Robotik
Algorithmen zur Steuerung des Verhaltens von Robotern.
Computer Vision
Algorithmen zum Identifizieren dreidimensionaler Objekte aus einem zweidimensionalen Bild.
Maschinelles Lernen
Automatisierte Erstellung eines Satzes von Regeln und Axiomen basierend auf Eingaben.

Soft-Computing

Ein Sammelbegriff für Techniken zur Lösung spezifischer Probleme. Siehe Hauptartikel.

Computergrafik

Computergrafik
Algorithmen sowohl zum synthetischen Erzeugen visueller Bilder als auch zum Integrieren oder Verändern visueller und räumlicher Informationen, die aus der realen Welt entnommen wurden.
Bildverarbeitung
Bestimmung von Informationen aus einem Bild durch Berechnung.
Menschliche interaktion mit dem Computer
Das Studium und Design von Computerschnittstellen, die von Menschen verwendet werden.

Wissenschaftliches rechnen

Numerische Algorithmen
Numerische Lösung mathematischer Probleme wie Wurzelfindung, Integration, Lösung gewöhnlicher Differentialgleichungen und Approximation spezieller Funktionen.
Symbolische Mathematik
Manipulation und Lösung von Ausdrücken in symbolischer Form, auch bekannt als Computeralgebra.
Computerphysik
Numerische Simulationen großer nichtanalytischer Systeme
Computerchemie
Computermodellierung der Theoretischen Chemie zur Bestimmung chemischer Strukturen und Eigenschaften
Bioinformatik
Der Einsatz von Informatik zur Pflege, Analyse und Speicherung biologischer Daten und zur Unterstützung bei der Lösung biologischer Probleme wie Proteinfaltung, Funktionsvorhersage und Phylogenie.
Computational Neuroscience
Computermodellierung echter Gehirne
Kognitionswissenschaft
Computermodellierung echter Köpfe

Informatik ausbildung

Einige Universitäten unterrichten Informatik als theoretisches Studium der Berechnung und des algorithmischen Denkens. Diese Programme umfassen unter anderem häufig die Theorie der Berechnung, die Analyse von Algorithmen, formale Methoden, Nebenläufigkeitstheorie, Datenbanken, Computergrafik und Systemanalyse. Sie unterrichten in der Regel auch Computerprogrammierung , aber behandeln Sie es eher als ein Gefäß zur Unterstützung anderer Bereiche der Informatik als als einen zentralen Schwerpunkt des Studiums auf hohem Niveau.

Andere Colleges und Universitäten sowie weiterführende Schulen und Berufsbildungsprogramme, die Informatik unterrichten, betonen die Praxis der Fortgeschrittenen Computerprogrammierung eher als die Theorie der Algorithmen und der Berechnung in ihren Informatik-Lehrplänen. Solche Lehrpläne konzentrieren sich in der Regel auf jene Fähigkeiten, die für Arbeitnehmer wichtig sind, die in die Softwarebranche eintreten. Die praktischen Aspekte der Computerprogrammierung werden oft als Softwareentwicklung bezeichnet. Allerdings gibt es viele Meinungsverschiedenheiten darüber, was der Begriff „Software Engineering“ eigentlich bedeutet und ob es das Gleiche ist wie Programmieren.

Siehe Peter J. Denning, Große Prinzipien in Computerlehrplänen , Technisches Symposium zur Informatikausbildung, 2004.