# Praktische Informatik

Die Praktische Informatik (PI) ist eines der Hauptgebiete der Informatik. Sie ist zwischen der theoretischen und der angewandten Informatik angesiedelt und entwickelt grundlegende Konzepte und Methoden zur Lösung konkreter informatischer Probleme, beispielsweise der Entwicklung von Datenstrukturen oder von Programmiersprachen. Dabei greift sie auf Erkenntnisse und Methoden der theoretischen Informatik zurück. Ein wichtiges Teilgebiet der Praktischen Informatik ist die Softwaretechnik.

## Teildisziplinen der Praktischen Informatik

In den folgenden Beschreibungen werden einzelne Themenbereiche der PI kurz skizziert.

### Algorithmen

Der Algorithmus bezeichnet eine genau definierte Vorgehensweise zur Lösung eines Problems. Ein Beispiel ist der euklidische Algorithmus zur Ermittlung des größten gemeinsamen Teilers zweier natürlicher Zahlen. In der Informatik sind Algorithmen stets deterministisch, d. h., sie liefern auf gleiche Eingaben immer das gleiche Ergebnis.

### Datenstrukturen

Datenstrukturen bezeichnen eine bestimmte Art, Daten zu verwalten und miteinander zu verknüpfen, um in geeigneter Weise auf diese zugreifen und sie manipulieren zu können. Datenstrukturen sind immer mit bestimmten Operationen verknüpft, um ebendiesen Zugriff und diese Manipulation zu ermöglichen. Ein Beispiel für eine Datenstruktur ist der Stack (Stapelspeicher). Man kann in einen Stack Elemente mittels der push-Operation einfügen und mit pop wieder entfernen, wobei das Prinzip Last In – First Out gilt. Anschaulich kann man sich einen Stack wie einen Bücherstapel vorstellen, bei dem man immer nur ein Buch oben drauflegen oder das oberste Buch herunternehmen kann. Komplexere Datenstrukturen sind Bäume oder Graphen.

### Betriebssysteme

Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Arbeitsspeicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.

### Datenbanken

Eine Datenbank ist die elektronische Form eines Karteikastens. Es handelt sich um eine Sammlung von Daten, die aus der Sicht des Benutzers zusammengehören, z. B. eine Personaldatenbank oder eine Lagerinventardatenbank.
Datenbanken garantieren, dass schnell und zuverlässig auf große Datenmengen zugegriffen werden kann. Weitgehend einheitliche Schnittstellen vereinfachen es Anwendungsprogrammen diese Daten zu verarbeiten. Die Datenbank bietet zu dem einen hohen Schutz der Daten gegen Fremdzugriff und Datenverlust durch technisches Versagen.
Es gibt hierarchische, relationale, multidimensionale und objektorientierte Datenbanken. Die Datenbank wird üblicherweise von einem Datenbankverwaltungssystem (DBMS) verwaltet. Die relationalen Datenbanken haben momentan die größte Verbreitung, wobei viele von ihnen bereits objektrelationale Erweiterungen haben, z. B. die Produkte Oracle der gleichnamigen Firma oder die DB2 der Firma IBM.

### Programmiersprachen

Eine Programmiersprache ist eine formale Sprache zur Darstellung (Notation) von Computerprogrammen. Sie vermittelt dem Computersystem durch von einem Menschen geschriebenen Text genaue Angaben zu einer Kette von internen Verarbeitungsschritten, beteiligten Daten und deren Struktur in Abhängigkeit von internen oder externen Ereignissen.

### Softwaretechnik

Als Softwaretechnik bezeichnet man die Erstellung von Software von der ersten Idee über die fertige Software bis hin zu ihrer Auslieferung, und die Erweiterung und Wartung ggf. schon existierender Software.