- •Vorwort
- •Inhaltsverzeichnis
- •Einleitung
- •Programmieren in LOGO
- •Warum unterrichten wir Programmieren?
- •Unser Programmiervorkurs in LOGO, oder Programmieren in 10 Minuten
- •Die Programmierumgebung in LOGO
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Vorwort und Zielsetzungen
- •Zusammenfassung
- •Kontrollfragen
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Zusammenfassung
- •Kontrollfragen
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zielsetzung
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Gerechtigkeit
- •Freiheitsgrade
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Zusammenfassung
- •Kontrollfragen
- •Kontrollaufgaben
- •Lösungen zu ausgesuchten Aufgaben
- •Sachverzeichnis
Juraj Hromkoviˇc
Lehrbuch Informatik
Juraj Hromkoviˇc
Lehrbuch
Informatik
Vorkurs Programmieren, Geschichte und Begriffsbildung, Automatenentwurf
STUDIUM
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der
Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.
Prof. Dr. Juraj Hromkoviˇc
Geboren 1958 in Bratislava, Slowakei. Studium der Mathematischen Informatik an der Komensk´y Universität, Bratislava. Promotion (1986) und Habilitation (1989) in Informatik an der Komensk´y Universität. 1990 – 1994 Gastprofessor an der Universität Paderborn, 1994 – 1997 Professor für Parallelität an der CAU Kiel. 1997 – 2003 Professor für Algorithmen und Komplexität an der RWTH Aachen. Seit 2001 Mitglied der Slowakischen Gesellschaft. Seit Januar 2004 Professor für Informatik an der ETH Zürich.
1. Auflage 2008
Alle Rechte vorbehalten
© Vieweg +Teubner | GWV Fachverlage GmbH, Wiesbaden 2008
Lektorat: Ulrich Sandten | Kerstin Hoffmann
Vieweg+Teubner ist Teil der Fachverlagsgruppe Springer Science+Business Media. www.viewegteubner.de
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichenund Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Umschlaggestaltung: KünkelLopka Medienentwicklung, Heidelberg
Druck und buchbinderische Verarbeitung: Strauss Offsetdruck, Mörlenbach Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier.
Printed in Germany
ISBN 978-3-8348-0620-8
Vorwort
Dieses Lehrbuch ist der erste Schritt in unseren Bemühungen die große Lücke in den Unterrichtsmaterialien für Informatik an Gymnasien und für das Lehramtsstudium zu schließen. Somit ist dieses Buch das erste in einer geplanten Serie von Lehrbüchern. Unser Ziel ist nicht der Versuch, den Inhalt des Informatikunterrichts festzulegen, sondern ein viel größeres Angebot an Themen zu unterbreiten, als man tatsächlich aus Zeitgründen im Unterricht umsetzen kann. Dies entspricht auch der dynamischen Entwicklung der Informatik. Mit Ausnahme von unbestreitbaren fundamentalen Konzepten hat es keinen Sinn heute darüber zu streiten, welche Fachgebiete in Zukunft tragbarer als andere sein werden. Deswegen bieten wir den Lehrpersonen die Wahl, sich geeignete Themen und die Stufe ihrer Vertiefung abhängig von eigenen Kenntnissen, Interessen und Schwerpunkten auszusuchen. Darum strukturieren wir unsere Unterrichtsunterlagen in Form von Modulen. Jedes Modul ist einem Thema gewidmet und entspricht im Umfang 16 bis 32 Unterrichtsstunden. Die Module bestehen jeweils aus mehreren Lektionen unterschiedlicher Schwierigkeitsgrade, die die Wahl eines angestrebten Vertiefungsgrads oder einen differenzierten Unterricht ermöglichen. Die Module selbst sind so weit wie möglich von der Kenntnis anderer Module unabhängig.
Dieses erste Lehrbuch beinhaltet die folgenden drei Module: „Vorkurs Programmieren in LOGO“, „Geschichte und Begriffsbildung“ und „Entwurf von endlichen Automaten“. Das erste Modul bietet eine Einführung in das Programmieren. Mit seinen ersten sechs Lektionen ermöglicht es sogar einen Einstieg ab dem vierten Schuljahr und mit seinen letzten Lektionen ist es mit dem Mathematikunterricht in den letzten Gymnasialklassen verzahnt. Dabei geht es nicht darum, eine höhere Programmiersprache zu erlernen, sondern vielmehr darum, die fundamentalen Konzepte des systematischen Programmierens und ein tieferes Verständnis zu erwerben. Die notwendige Programmierumgebung ist kostenlos verfügbar.
In der tiefen Wurzel jeder Wissenschaftsdiziplin befindet sich die Begriffsbildung, die maßgebend für die Entwicklung einer Disziplin ist. Das Modul „Geschichte und Begriffsbildung“ verfolgt diese Idee, indem es die Geschichte der Informatik anhand der Entwicklung der Grundbegriffe und Grundkonzepte erklärt. Neben einer Erklärung für die fundamentalsten Fachbegriffe wie Algorithmus, Programm und Berechnungskomplexität werden hier auch die Grundlagen des korrekten logischen Denkens und korrekten Argumentierens, sowie das Modell der Registermaschine anhand einer einfachen Assemblersprache vermittelt.
2
Im dritten Modul „Entwurf von endlichen Automaten“ geht es nicht nur darum, ein paar Methoden zum Entwurf von Steuerungsmechanismen zu unterrichten. Im Vordergrund stehen hier die modulare Technik zum systematischen Entwurf von komplexen Systemen sowie die Grundlagen der Modellierung von Rechnern und Berechnungen. Die beiden letzten Module werden durch E-Learning-Systeme zur Programmierung im Assembler und zum Automatenentwurf unterstützt.
Weitere Module, die wir als Fortsetzung planen, sind: „Programmieren in Pascal/Delphi/Oberon“, „Informationssysteme“, „Datenstrukturen und effiziente Implementierung von Algorithmen“, „Kryptologie“, „Wahrscheinlichkeit und zufallsgesteuerte Systeme“, „Schaltkreisentwurf und parallele Algorithmen“, „Geometrische Algorithmen“, „Logik und korrekte Argumentation“, „Methoden zum Algorithmenentwurf“, „Kommunikation und Suche im Internet“, und „Grenzen der Automatisierung“.
Das didaktische Konzept basiert auf dem Ausführlichkeitsgrad von Leitprogrammen. Alles wird sorgfältig erklärt und sofort durch Übungsaufgaben (teilweise mit vorgeschlagenen Lösungen) gefestigt und überprüft. Durch das detaillierte und anschauliche Vorgehen eignet sich das Lehrbuch auch zum Selbststudium im Gymnasialalter. Die Erklärungen sind mit Hinweisen für die Lehrperson begleitet. Diese Hinweise gehen zum einen auf mögliche Schwierigkeiten bei der Vermittlung des Stoffes ein, sprechen zum anderen Empfehlungen für die Verwendung von geeigneten didaktischen Methoden aus und vermitteln Unterrichtserfahrung. Damit ist dieses Lehrbuch auch für das Lehramtsstudium bestimmt, sowie für alle Informatikanfänger oder diejenigen, die Informatik im Nebenfach studieren.
Hilfreiche Unterstützung anderer hat zur Entstehung dieses Lehrbuches wesentlich beigetragen. Besonderer Dank gilt Karin Freiermuth, Roman Gächter, Stephan Gerhard, Lucia Keller, Jela Sherlak, Ute Sprock, Andreas Sprock und Björn Steffen für sorgfältiges Korrekturlesen, zahlreiche Verbesserungsvorschläge und umfangreiche Hilfe bei der Umsetzung des Skriptes in Latex. Für die Sprachkorrekturen bedanke ich mich herzlich bei Frau Regina Lauterschläger. Ich möchte mich sehr bei Karin Freiermuth, Barbara Keller und Björn Steffen dafür bedanken, dass sie mich mit viel Enthusiasmus beim Testen der Unterrichtsunterlagen in der schulischen Praxis begleitet haben oder einige Lektionen selbstständig unterrichtet haben.
Genauso herzlich danke ich den Lehrpersonen Pater Paul (Hermann-Josef-Kolleg, Steinfeld), Uwe Bettscheider (INDA Gymnasium Aachen), Hansruedi Müller (Schweizerische Alpine Mittelschule Davos), Yves Gärtner, Ueli Marty (Kantonsschule Reussbühl), Meike
3
Akveld, Stefan Meier und Pietro Gilardi (Mathematisch-naturwissenschaftliches Gymnasium Rämibühl, Zürich), Harald Pierhöfer (Kantonsschule Limattal, Urdorf) und Michael Weiss (Gymnasium Münchenstein), die es uns ermöglicht haben, in einigen Klassen kürzere oder längere Unterrichtssequenzen zu testen oder sie sogar selbst getestet haben und uns ihre Erfahrungen mitgeteilt haben. Ein besonderer Dank geht auch an die Schulleitungen der Schulen, die uns für das Testen unserer Module die Türen geöffnet haben. Für die hervorragende Zusammenarbeit und die Geduld mit einem immer eigensinniger werdenden Professor bedanke ich mich herzlich bei Frau Kerstin Hoffmann und Herr Ulrich Sandten vom Teubner Verlag.
Ich wünsche allen Leserinnen und Lesern beim Lernen mit diesem Buch so viel Vergnügen, wie wir selbst beim Unterrichten der vorliegenden Lektionen empfunden haben.
Zürich, im September2008
Juraj Hromkovicˇ
Inhaltsverzeichnis
I Vorkurs Programmieren in LOGO |
7 |
|
1 |
Programme als Folge von Befehlen |
19 |
2 |
Einfache Schleifen mit dem Befehl repeat |
39 |
3 |
Programme benennen und aufrufen |
59 |
4 |
Zeichnen von Kreisen und regelmäßigen Vielecken |
75 |
5 |
Programme mit Parametern |
89 |
6 |
Übergabe von Parameterwerten an Unterprogramme |
103 |
7 |
Optimierung der Programmlänge und der Berechnungskomplexität |
123 |
8 |
Das Konzept von Variablen und der Befehl make |
139 |
9 |
Lokale und globale Variablen |
159 |
10 |
Verzweigung von Programmen und while-Schleifen |
173 |
11 |
Integrierter LOGOund Mathematikunterricht: Geometrie und |
195 |
|
Gleichungen |
|
12 |
Rekursion |
209 |
13 |
Integrierter LOGOund Mathematikunterricht: Trigonometrie |
239 |
14 |
Integrierter LOGOund Mathematikunterricht: Vektorgeometrie |
251 |
6 Inhaltsverzeichnis
II |
Geschichte und Begriffsbildung |
263 |
1 |
Was ist Informatik? |
267 |
2 |
Korrekte Argumentation |
273 |
3 |
Geschichte der Informatik |
317 |
4 |
Algorithmisches Kuchenbacken |
329 |
5 |
Programmieren in der Sprache des Rechners |
337 |
6 |
Indirekte Adressierung |
371 |
III Entwurf von endlichen Automaten |
387 |
|
1 |
Alphabete, Wörter und Sprachen |
391 |
2 |
Das Modell der endlichen Automaten |
413 |
3 |
Entwurf von endlichen Automaten |
431 |
4 |
Projekt „Steuerungsautomaten“ |
455 |
5 |
Induktionsbeweise der Korrektheit |
465 |
6 |
Simulation und modularer Entwurf endlicher Automaten |
475 |
7 |
Größe endlicher Automaten und Nichtexistenzbeweise |
491 |
8 |
Zusammenfassung des Moduls |
505 |
Sachverzeichnis |
507 |
Modul I
Vorkurs Programmieren in LOGO