44
Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Embed Size (px)

Citation preview

Page 1: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Einführung in die

Algorithmik

Informatik am Gymnasium

aus objektorientierter Sicht

Page 2: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Probleme

- Ablauforientiertes Denken: Jeder kleine Bearbeitungsschritt muss zielgerichtet und zweckdienlich für die Gesamtlösung sein

- Die Reaktion des Systems auf einen Einzelschritt ist meist nicht direkt sichtbar und damit nicht nachvollziehbar

- Gleichzeitige Einführung der Algorithmik und des Variablenkonzepts

Page 3: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

- Unterschied zwischen Anweisungsfolge (Programmtext) und Systemreaktion beim Programmablauf verstehen

Probleme

- Programmiersprache erfordert schon bei einfachsten Aufgabenstellungen umfang-reiche syntaktische Grundkenntnisse

- Direkte Einführung der einzelnen Kontroll-strukturen mit einer imperativen Program-miersprache führt zu „Einschrittigen Algorithmen“

PROGRAM Beispiel_1;USES crt;VAR a, p, q, c, h : real;BEGIN read(p,q); c := p + q; h := sqrt(p*q); a := sqrt(c*p) write(c,h,a); REPEAT UNTIL keypressed;END.

(define zins (/ 3 100))(define kapital 763)(+ kapital (* zins kapital)) ==> 78589/100(exact->inexact (+ kapital (* zins kapital))) ==> 785.89

(do ((i 0 (+ i 1))) ((> i 10)) (display (* i i)) (newline) )

Page 4: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Didaktische Forderungen

- Einfache, klar aufgebaute, leicht bedienbare Entwicklungsumgebung

- Minilanguage <-> SublanguageAnlehnung der

Programmiersprache an die natürliche Sprache

- Eingabehilfen bei der Erfassung des Programms

Page 5: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Didaktische Forderungen

- Reaktion des Systems auf Einzelanweisung muss sichtbar und nachvollziehbar sein

- Ein Verständnis für den Begriff Algorithmus als die Beschreibung eines Lösungsverfahrens muss sich entwickeln

Page 6: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

HistorieMinilanguages

Richard E. Pattis

Karel the Robot

A Gentle Introduction to the Art of Programming

John Wiley & Sons 1981

Page 7: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Objektorientierte Sicht

ROBOTER

PositionXPositionYBlickrichtung

Karol

PositionX = 2PositionY = 1Blickrichtung = S

Karol

PositionX = 2PositionY = 1Blickrichtung = S

Schritt()LinksDrehen()RechtsDrehen()

Page 8: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 1Blickrichtung = S

Schritt()LinksDrehen()RechtsDrehen()

Mache einenSchritt vorwärts

Objektorientierte Sicht

Schritt()Schritt()

Page 9: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 2Blickrichtung = S

Schritt()LinksDrehen()RechtsDrehen()

Objektorientierte Sicht

AnweisungSenden einer Botschaft an ein Objekt, das mit der zugehörigen Methode reagiert(Methodenaufruf)

Page 10: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

„Robot Karol“

Page 11: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Anweisungen

„Karol soll sich in einer U-Form bewegen“

SchrittSchrittLinksDrehenSchrittSchrittLinksDrehenSchrittSchritt

2 mal vorwärtsLinksum2 mal vorwärtsLinksum2 mal vorwärts

Page 12: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Algorithmus

Ein Algorithmus ist eine eindeutige, endliche Beschreibung eines allgemeinen, schrittweisen und ausführbaren Lösungsverfahrens.

Ein Algorithmus ist eine endliche Folge aus eindeutigen und ausführbaren Anweisungen zur Lösung eines allgemeinen Problems.

Page 13: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Programm

Ein Programm ist ein Algorithmus, der in einer formalisierten Programmiersprache abgefasst ist und maschinell ausgeführt werden kann.

Ein Programm stellt die Realisierung eines Algorithmus dar.

Page 14: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Programmieren: Konzeption und Entwurf von Algorithmen, die als Programme realisiert und durch Computersysteme ausgeführt werden.

Programmieren

Problembeschreibung

Algorithmus

Programm

Maschinenprogramm

Umgangssprache, mehrdeutig

eindeutig, semiformal, schrittweiser Ablauf

exakter Formalismus, genormt, vom Prozessor unabhängig

einfache Sprache, Prozessor abhängig

Page 15: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Programm in der Sprache Karol

SchrittSchrittLinksDrehenSchrittSchrittLinksDrehenSchrittSchritt

uform.kdp und uform.kdw

Page 16: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Bausteine von Algorithmen

Eine Sequenz ist die Zusammenfassung einer Folge von Anweisungen, die hintereinander ausgeführt werden.

Sequenz

Page 17: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 1PositionY = 1Blickrichtung = O

Schritt()LinksDrehen()RechtsDrehen()

Hinlegen()Aufheben()

MarkeSetzen()MarkeLöschen()

Objektorientierte Sicht

Page 18: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Methoden von Karol

Schritt()Schritt(Anzahl)LinksDrehen()RechtsDrehen()Hinlegen()Hinlegen(Anzahl)Aufheben()Aufheben(Anzahl)MarkeSetzen()MarkeLöschen()Warten()Warten(Anzahl)Ton()

Page 19: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 3Blickrichtung = O

Schritt()LinksDrehen()RechtsDrehen()Hinlegen()Aufheben()MarkeSetzen()MarkeLöschen()......

Objektorientierte Sicht

Für die Klasse ROBOTER können zusätzlich neue Methoden festgelegt werden.

Page 20: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Programm in der Sprache Karol

Anweisung Umdrehen LinksDrehen LinksDrehen*Anweisung

Programm Umdrehen Schritt Umdrehen*Programm

Page 21: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Die Anweisungen im Wiederholungsteil werden nacheinander mehrfach ausgeführt. (entsprechend der angegebenen Anzahl)

Wiederholung mit fester Anzahl

wiederhole n mal

Anweisungen

Bausteine von Algorithmen

wiederhole n mal Anweisungen*wiederhole

Page 22: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 3Blickrichtung = O

Schritt()LinksDrehen()RechtsDrehen()Hinlegen()Aufheben()MarkeSetzen()MarkeLöschen()

IstWand()NichtIstWand()IstZiegel()IstMarke()

Objektorientierte Sicht

Page 23: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Methoden von Karol

IstWand()NichtIstWand()IstZiegel()IstZiegel(Anzahl)NichtIstZiegel()NichtIstZiegel(Anzahl)IstMarke()NichtIstMarke()IstSüden()IstNorden()IstWesten()IstOsten()

Page 24: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Die Anweisungen im Wiederholungsteil werden so oft wiederholt, solange die Bedingung WAHR ergibt. Die Überprüfung der Bedingung erfolgt am Anfang jeder Wiederholung.

Wiederholung mit Anfangsbedingung

wdh. solange Bedingung

Anweisungen

Bausteine von Algorithmen

wiederhole solange Bedingung Anweisungen*wiederhole

Page 25: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Die Anweisungen im Wiederholungsteil werden so oft wiederholt, solange die Bedingung WAHR ergibt. Die Überprüfung der Bedingung erfolgt am Ende jeder Wiederholung.

Wiederholung mit Endbedingung

wdh. solange Bedingung

Anweisungen

Bausteine von Algorithmen

wiederholeAnweisungen

*wiederhole solange Bedingung

Page 26: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

In Abhängigkeit von der Bedingung werden die Anweisungen1 bzw. die Anweisungen2 ausgeführt.

Bedingte Anweisung (zweiseitig)

Bausteine von Algorithmen

wenn Bedingung dannAnweisungen1

sonstAnweisungen2

*wenn

Bedingung

Anweisungen1 Anweisungen2

wahr falsch

Page 27: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Wenn die Bedingung WAHR ergibt werden die Anweisungen ausgeführt.

Bedingte Anweisung (einseitig)

Bausteine von Algorithmen

wenn Bedingung dannAnweisungen

*wenn

Bedingung

Anweisungen

wahr falsch

Page 28: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Bausteine von Algorithmen

Anweisungen

einfache Anweisungen Kontrollstrukturen

bed.Anweisungen WiederholungenMethodenaufruf

mit fester AnzahlAnfangsbedingungEndbedingung

einseitigezweiseitige

Page 29: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Programm in der Sprache Karol

Bedingung IstZiegelRechts falsch Rechtsdrehen wenn IstZiegel dann wahr *wenn Linksdrehen*Bedingung

Programm wiederhole solange IstZiegelRechts Schritt *wiederhole*Programm

Page 30: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

AlgorithmenBeispiele

- Ziegelrand

- Turmbauen

- Treppebauen

- Auf der Mauer laufen

- Spirale legen

- Buchstaben (Projekt)

Page 31: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht
Page 32: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Zustandsorientierte Sicht

Der Zustand des Karol-Systems wird beschrieben durch:- Breite, Länge und Höhe der Welt- Position und Blickrichtung von Karol- Position der Ziegel und Stapelhöhe- Position der Marken

Page 33: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 3Blickrichtung = OMaxSprunghöhe = 1

Schritt()...

Der Zustand eines Objekts ist durch seine Attributwerte und die Beziehungen zu anderen Objekten festgelegt.

Zustandsorientierte Sicht

Page 34: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Zustandsorientierte Sicht

PositionX = 2PositionY = 1Blickrichtung = SMaxSprunghöhe = 1

PositionX = 2PositionY = 3Blickrichtung = OMaxSprunghöhe = 1

Page 35: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Ein Algorithmus führt das Karol-System von einem Zustand in einen anderen Zustand über. Er vollzieht einen Zustandsübergang.

Zustandsorientierte Sicht

Page 36: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Variable / Konstante

Eine Variable ist ein Attribut, dem nacheinander verschiedene Werte zugewiesen werden können.D.h. auf eine Variable kann sowohl lesend als auch schreibend zugegriffen werden.

Eine Konstante ist ein Attribut, dem nur einmal ein Wert zugewiesen wird, der dann unveränderbar ist.D.h. auf eine Konstante kann nach der Initialisierung nur lesend zugegriffen werden.

Page 37: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Variable / Konstante

2

PositionX

- Bezeichner, Name- Typ, Wertebereich- Wert, Inhalt

DeklarationInstanzierungInitialisierung

Typen:GanzzahlGleitpunktzahlZeichenZeichenfolgenLogisch

Page 38: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Zustand

Ein Zustand ist durch den aktuellen Wert aller Variablen festgelegt (Variablenzustände).

Es werden nicht immer alle möglichen Variablen-zustände betrachtet, sondern nur ausgewählte, für die Modellierung wesentliche (Modellzustände).

Page 39: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Zuweisung

Bausteine von Algorithmen

Eine Zuweisung ist eine Anweisung, bei der einer Variablen ein errechneter oder fester Wert zugewiesen wird, d.h. dieser Wert wird in die Speicherzelle(n) der Variablen eingetragen und überschreibt einen bereits vorhandenen Wert.

Page 40: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Anweisungen

Bausteine von Algorithmen

einfache Anweisungen Kontrollstrukturen

bed.Anweisungen Wiederholungen

mit fester AnzahlAnfangsbedingungEndbedingung

einseitigezweiseitige

AufrufZuweisung

Page 41: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Karol

PositionX = 2PositionY = 3Blickrichtung = OMaxSprunghöhe = 1ImRucksack = 5MaxImRucksack = 20

Schritt()...IstVoll()IstLeer()NichtIstLeer()...

Variable / Konstante

Überwachung des Rucksacks

Page 42: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

AlgorithmenWiederholung und Vertiefung

Beispiel mit Robot Karol- auf einer Mauer laufen- eine Spirale legen- gesamte Fläche invertieren- Zimmer mit Ausgang- Summe von zwei Zahlen - in einer Reihe stapeln (mit Rucksack)- einfaches Labyrinth

Page 43: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

Heimat von Karol

www.schule.bayern.de/karol

Page 44: Einführung in die Algorithmik Informatik am Gymnasium aus objektorientierter Sicht

AlgorithmikEnde