Einleitung
Das Ziel dieses Buches ist es, eine Grundbildung in Informatik zu
vermitteln, die den Einstieg in das Studium der Informatik und
benachbarter Fächer erleichtern soll. Es wendet sich vor allem an
Leserinnen und Leser, die keinen durchgängigen
Informatikunterricht an der Schule haben oder hatten. Aber auch
für diejenigen, die schon gute Kenntnisse der Informatik haben,
sind Kapitel enthalten, die fortgeschrittenere Themen aufgreifen.
Im Folgenden wird zunächst eine übersicht über die Inhalte und
Lernziele gegeben. Es folgen Hinweise zur Verwendung des Buches.
Diese gehen von zwei wesentlichen Einsatzmöglichkeiten aus: dem
begleitenden Lehrbuch für einen Vorkurs Informatik und der
Grundlage zum selbstständigen Studium.
Inhalt und Lernziele
Das Buch gliedert sich in fünf Teile:
- Was ist Informatik?
- Programmierung
- Erweiterte Programmierkonzepte
- Algorithmen und Datenstrukturen
- Vom Programm zum Rechner.
Die Teile sind so angelegt, dass Teil 4 und Teil 5 unabhängig voneinander sind, d. h. Teil 4 muss
nicht gelesen werden, um Teil 5 zu verstehen. Teil 3 setzt den Teil 2 voraus, er wird jedoch nicht
für Teil 4 und 5 benötigt.
Lernziele des Teils über
Programmierung sind
- Grundfähigkeiten zum Entwurf von Algorithmen als Lösung zu einem Problem
- Grundfähigkeiten zur Codierung von Algorithmen als Programme
- Grundfähigkeiten zum übersetzen, Korrigieren und Ausführen von
Programmen
- Grundkenntnisse der objektorientierten Programmierung.
Zur Codierung wird die weit verbreitete Programmiersprache Java eingesetzt. Dabei geschieht
eine Konzentration auf das Wesentliche dadurch, dass eine reduzierte und vereinfachte Darstellung
der elementaren Sprachkonstrukte von Java gegeben wird. Dies erlaubt, funktionsfähige
Programme zu schreiben, nutzt jedoch bei Weitem nicht alle Möglichkeiten aus, die für Anfänger
eher ablenkend als nutzbringend sind.
Der Teil über erweiterte Programmierkonzepte umfasst Stoff, der für die spätere Praxis der Programmierung
relevant ist. Er geht eigentlich über eine Einführung in die Informatik hinaus, kann
aber besonders interessierten Leserinnen und Lesern die nahtlose Möglichkeit zum weitergehenden
Wissenserwerb bieten. Die Lernziele umfassen
- Grundkenntnisse zur Strukturierung von Programmiersprachen und alternativen Programmierparadigmen
- Erweiterte Grundkenntnisse der objektorientierten Programmierung: Vererbung, Sichtbarkeit,
Polymorphismus
- Grundfähigkeiten zum Einsatz von Klassenbibliotheken und Grundkenntnisse von Java-Klassenbibliotheken
für Applets, Streams und Grafikprogrammierung (Swing)
- Grundkenntnisse der Programmiersprache C++ und Unterschiede zwischen Java und C++
- Grundkenntisse der programmiersprachenunabhängigen, modellgestützten Softwareentwicklung
unter Einsatz von „Unified Modeling Language“ (UML) mit Anwendungsfalldiagramm,
Klassendiagramm und Sequenzdiagramm als Hilfsmittel zur objektorientierten, grafischen Modellierung
eines Anwendungsszenarios.
Lernziele des Teils über Algorithmen und Datenstrukturen sind
- Grundkenntnisse zur Aufwandsanalyse von Algorithmen
- Grundfähigkeiten im Umgang mit vollständiger Induktion als wichtiges Beweisprinzip
- Verständnis der Arbeitsweise exemplarischer Datenstrukturen zur
Datenverwaltung.
Im Teil "
Vom Programm zum Rechner" sollen
- Grundkenntnisse des Aufbauprinzips von Rechnern und von Maschinensprachen
- Grundkenntnisse Boolescher Funktionen und Schaltungen als
Grundlage heutiger digitaler Informationsverarbeitung
vermittelt werden. Außerdem soll
- Verständnis für das Konzept formaler Sprachen als Grundlage
heutiger Programmiersprachen und
- Verständnis für das Konzept von Automaten als Mechanismus der
Spracherkennung
geweckt werden.
Dabei ist zu beachten, dass die Darstellung teilweise sehr
vereinfacht ist, aber die zugrundeliegenden Konzepte so
wiedergegeben sind, dass eine korrekte Vervollständigung ohne
Hürden zu leisten sein müsste.
Im Unterschied zu typischen Lehrbüchern der Informatik, die
Grundlage von Vorlesungen entsprechenden Inhalts sind, stellt
dieses Buch die Inhalte stark beispielorientiert vor. Auf
Grundlage der mit diesem Buch erworbenen Kenntnisse sollte es
möglich sein, mit dem notwendigerweise kompakteren Stil
universitärer Lehrbücher zurecht zu kommen. Das Buch ersetzt diese
Lehrbücher und entsprechende Vorlesungen nicht, da sie erheblich
weiter gehen, auch wenn möglicherweise der Eindruck entsteht, dass
sich manches wiederholt.
Verwendung zum selbstständigen Studium
Bei Verwendung des Buches zum selbstständigen Studium sollten die Abschnitte durchgängig
gelesen und die jeweils aufgeführten Übungsaufgaben bearbeitet werden. Die Übungsaufgaben
geben Anregungen zur aktiven Befassung mit dem Stoff. Sie sind meist eng an die Darstellung
des entsprechenden Abschnitts angelehnt, sodass, sofern nicht unmittelbar eine Lösung gefunden
wird, das nochmalige Lesen des Abschnitts mit Blick auf die gestellten Fragen helfen sollte.
Es gibt zwei Typen von Übungsaufgaben: konzeptionelle Aufgaben und Programmieraufgaben.
Die Übungsaufgaben sind durch Icons am Rand hervorgehoben, wobei beide Typen mit unterschiedlichen
Icons markiert sind. Die konzeptionellen Aufgaben sollten schriftlich auf Papier
gelöst werden. Gegenstand der Programmieraufgaben ist die Erstellung von Programmen mit
dem Ziel der Ausführung auf einem Computer, um so praktische Fertigkeit in der Programmierung
zu gewinnen. Voraussetzung zur praktischen Durchführung ist ein Personal Computer (PC)
mit Java-Programmierumgebung. Auf der Internet-Seite zum Vorkurs-Buch1 finden Sie Hinweise
zur jeweils aktuellen Java-Programmierumgebung. Hinweise zur Installation und Verwendung
werden in Kapitel 4 und den Anhängen gegeben.
Auf der vorliegenden Internet-Seite stehen zudem Lösungen für ausgewählte Aufgaben bereit zu stellen. Dabei
ist zu beachten, dass bei manchen Aufgaben, insbesondere bei Programmieraufgaben, auch andere
Lösungen möglich sind. Zusätzlich können von der Internet-Seite eventuelle Ergänzungen
und Korrekturen heruntergeladen werden.
Nach Durcharbeiten von Kapitel 3 bis 7 sollte es möglich sein, selbstständig Programme für einfache
algorithmische Problemstellungen entwerfen und schreiben zu können. Kapitel 8 bis 11
sowie 13 vermitteln weitergehende Kenntnisse zum objekt- und systemorientierten Programmieren,
die insbesondere die Verwendung von Programmbibliotheken einschließen. Kapitel 12 bietet
die Möglichkeit des Kennenlernens von C++ als eine weitere objektorientierte Programmiersprache
von praktischer Bedeutung. Durch Bearbeiten von Kapitel 14 bis 16 werden Kenntnisse
erworben, die Grundlage des Entwurfs und der Analyse von Algorithmen sind. Das Studium
von Kapitel 17 und 20 gibt Einblicke in den Aufbau von Computern und Mechanismen, die
stattfinden, wenn ein Programm in einer höheren Programmiersprache auf einem Computer zur
Ausführung kommt.
Verwendung als vorlesungsbegleitendes Lehrbuch
Das Buch kann als vorlesungsbegleitendes Lehrbuch eines etwa
dreiwöchigen Vorkurses eingesetzt werden, der täglich zwei
Vorlesungsstunden, also insgesamt 15 Doppelstunden, nach folgender
Aufteilung umfassen kann:
- 6 bis 7 Doppelstunden „Programmierung“, eventuell ergänzt durch Kapitel 9 über objektorientierte
Programmierung.
- 3 bis 4 Doppelstunden „Algorithmen und Datenstrukturen“
- 3 bis 4 Doppelstunden „Vom Programm zum Rechner“.
Parallel zur Vorlesung können Übungen angeboten werden, die
ausgewählte Aufgaben aus dem Buch zum Gegenstand haben.
Insbesondere durch Bearbeitung ausgewählter Programmieraufgaben in
einem Rechner-Pool mit Betreuung durch Tutoren können die
Teilnehmerinnen und Teilnehmer an die Nutzung von Rechnern zur
Programmierung herangeführt werden.
Alternativ zu dieser breiten Abdeckung von Konzepten der Informatik kann auch eine stärkere
Fokussierung auf die Programmierung gelegt werden, indem der Teil „Algorithmen und Datenstrukturen“,
der Teil „Vom Programm zum Rechner“ oder beide weggelassen werden. Das wird
dadurch möglich, dass die beiden letztgenannten Teile unabhängig voneinander sind. Bei einer
Schwerpunktsetzung auf „Programmierung“ könnte dann mit dem Teil „Erweiterte Programmierkonzepte“
im Umfang der verfügbaren Zeit fortgefahren werden.
Ihre Verbesserungsvorschläge, Fragen, Wünsche und kritischen
Hinweise, die wir gerne annehmen, können uns via folgender
E-Mail gesandt werden:
buch@vorkurs-informatik.de