Navigation lernbegleiter.wien
Pascal Le Bail – Ihr persönlicher Lernbegleiter

Technische Informatik

Theorie und Praxis

Der oft sehr theoretisch gehaltene Unterricht auf diesem Gebiet kann einen schon gelegentlich vor unlösbare Rätsel stellen. Denn oft fehlt einfach der Bezug zur Praxis. Dank meiner umfangreichen Berufserfahrung kann ich diese Verbindung schnell herstellen, sodass die Bewältigung der gestellten Aufgaben gleich viel leichter fällt.

Technische Grundlagen – Digital-Elektronik

Zuerst beschäftigen wir uns damit, wie wir Zustände mit den Mitteln der Digitaltechnik darstellen und speichern können – und was sich durch Verknüpfung solcher Zustände alles „anstellen“ lässt.

Boolesche Algebra

Die Boolesche Algebra hilft uns dabei, die soeben besprochenen Verknüpfungen mehrerer Zustände mit dem geringstmöglichen technischen Aufwand zu realisieren.

Zahlensysteme

Nun widmen wir uns der Untersuchung stellenwertbasierter Zahlensysteme, sodass wir den Schritt vom Dezimalsystem zum Binärsystem in jeder Hinsicht nachvollziehen und verstehen können. Wir beschäftigen uns neben der Darstellung von Zahlen vor allem mit dem Zählen und Rechnen in Stellenwertsystemen – und gehen auch der Frage nach, warum wir noch weitere Zahlensysteme wie das Oktal- und das Hexadezimalsystem benutzen, obwohl elektronische Schaltungen doch nur im Binärsystem arbeiten.

Zählen und Rechnen mit elektronischen Schaltungen

In unseren bisherigen Betrachtungen zum Thema Elektronik ging es nur um „Zustände“. Nun vollziehen wir den Schritt vom Zustand zur Zahl – und untersuchen, wie wir Zahlen erfassen, speichern und anzeigen können, um damit dann zu zählen und zu rechnen. Auf Wunsch gibt es dazu auch praktische Übungen: Aus elementaren Grundbausteinen entwerfen und bauen wir beispielsweise eine einfache Additionsmaschine, eine Stoppuhr – oder auch ganz etwas anderes. Der Fantasie sind kaum Grenzen gesetzt …

Codierung

Wie wir aus der Erfahrung wissen, können wir auf elektronischem Wege nicht nur Zahlen speichern und verarbeiten, sondern auch beliebige andere Informationen, beispielsweise Texte. Wie das funktioniert, erforschen wir in diesem Kapitel.

Von den Grundbausteinen zum Mikroprozessor

Auch wenn es prinzipiell möglich wäre, alle Geräte der Digitalelektronik aus einfachen Grundbausteinen aufzubauen, würde dies an verschiedenen praktischen Dingen, vor allem der Größe, scheitern. Daher entstand bereits vor langer Zeit ein Bedarf nach einer Standardkomponente, die beliebige digitale Operationen gemäß einem Programm nacheinander ausführen kann. Auf diese Weise entwickelte sich der Mikroprozessor. Wir untersuchen, wie dieser aufgebaut ist und funktioniert.

Ein- und Ausgabe, Speichertechnologien

Ein Mikroprozessor benötigt einige zusätzliche Komponenten, um an Informationen zu kommen, diese zu verarbeiten und die Resultate loszuwerden. Die wichtigsten davon sehen wir uns hier an. Wir beschäftigen uns mit Ein- und Ausgabemöglichkeiten von digitalen und analogen Daten sowie den unterschiedlichen Speichertypen und deren Anwendungsgebieten.

Programmierung von Mikroprozessoren

Hier geht es darum, wie man Programme für Mikroprozessoren erstellt und welche Programmiersprachen sich dazu eignen. Wir gehen auf die Vor- und Nachteile der Benutzung von Assemblersprachen und von Hochsprachen (C, C++, Java) ein.

Algorithmen und Datenstrukturen

Beim Entwickeln von Programmen trifft man immer wieder auf ähnliche Aufgabenstellungen, wie beispielsweise das Durchführen mathematischer Operationen oder das Abspeichern und Sortieren von Listen. Damit wir das Rad nicht jedes Mal neu erfinden müssen, beschäftigen wir uns hier mit bewährten Vorgangsweisen für diese Problemstellungen.

Mikrocontroller

Wie wir bereits wissen, benötigen Mikroprozessoren einige zusätzliche Komponenten, um sinnvolle Aufgaben durchführen zu können. Im Zuge der Miniaturisierung konnten immer mehr dieser Komponenten gemeinsam mit dem Mikroprozessor auf einem Chip integriert werden, sodass man heute prinzipiell einen gesamten Computer auf einem einzigen Chip unterbringen kann. Derartige Einchip-Computer werden vor allem im Steuerungsbereich eingesetzt, weshalb man sie Mikrocontroller nennt. Wir untersuchen die Eigenschaften solcher Bausteine und deren Handhabung.

programmierbare Logikbausteine

Für Aufgabenstellungen, die zwar sehr einfach sind, die aber in extrem hoher Geschwindigkeit durchgeführt werden sollen, sind Mikroprozessoren ungeeignet, denn sie sind dafür zu komplex aufgebaut und – verglichen mit diskret aufgebauter Logik – zu langsam. Für diesen Anwendungsbereich haben sich aus den ursprünglichen Grundkomponenten der Digitaltechnik verschiedene Arten programmierbarer Logikbausteine (z.B. CPLD, FPGA) entwickelt, mit denen wir uns hier beschäftigen.

Computersysteme und Hardware

Hier untersuchen wir den Aufbau jener Computersysteme, welche man für umfangreichere Aufgabenstellungen der Informationstechnik benutzt. Neben Arbeitsplatzrechnern und Servern sind dies auch Rechner für komplexere Steuerungsaufgaben, für die ein Mikrocontroller nicht ausreicht.

Datenübertragung, Netzwerke und das Internet

In fast allen Anwendungsbereichen werden Computer vernetzt. Wir untersuchen, welche Möglichkeiten es zur Datenübertragung zwischen Computern gibt. Neben einfachen Punkt-zu-Punkt-Verbindungen geht es vor allem um die im weltweiten Datenverkehr benutzten Kommunikationstechnologien. Von hier ausgehend beschäftigen wir uns mit dem Aufbau, der Funktionsweise und der Organisation des Internet und der darin angebotenen Dienste.

Betriebssysteme

Ab einer bestimmten Komplexität des Rechners oder der Aufgabenstellung ist es sinnvoll, eine Basissoftware zu nutzen, welche grundlegende Funktionen der Bedienung sowie der Ein- und Ausgabe erledigt. Eine solche Software nennt man Betriebssystem. Wir beschäftigen uns mit verbreiteten Desktop- und Server-Betriebssystemen (Linux, Windows und andere) sowie auch mit Systemen, welche für Steuerungsrechner konzipiert sind.

Server, Datenbanken und Virtualisierung

Im Serverbereich bestehen ganz besondere Anforderungen an Hard- und Software sowie an die Umgebungsbedingungen. Wir besprechen viele Aspekte dieses Bereiches und gehen dabei auch auf die Möglichkeiten der Virtualisierung von Hardware ein.

Software-Entwicklung

Hier untersuchen wir die Möglichkeiten zur Software-Entwicklung für Computersysteme. Wir unterscheiden zwischen lokal arbeitender Software und netzwerkbasierten Anwendungen und beschäftigen uns mit unterschiedlichen dafür in Frage kommenden Programmiersprachen (C, C++, Java, PHP, Perl, Javascript u.v.m.) sowie im Internet gebräuchlichen Auszeichnungssprachen (XML, XHTML, XSL, CSS).