06.01.2014 Aufrufe

Ziele und Inhalte des Informatik- unterrichts

Ziele und Inhalte des Informatik- unterrichts

Ziele und Inhalte des Informatik- unterrichts

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

ZDM~Ji<br />

EntScheiden<strong>des</strong> Kriterium für die Wahl einer<br />

Programmiersprache aus didaktischer Sicht ist die Frage,<br />

ob sie geeignet ist, die Gr<strong>und</strong>konzepte <strong>des</strong> Programmierens<br />

<strong>und</strong> der <strong>Informatik</strong> in umfassender <strong>und</strong> klarer<br />

Weise zu beleuchten.<br />

Ziegenbalg<br />

Die Grenzen meiner Sprache sind die Grenzen meiner Welt.<br />

Wittgenstein<br />

Erwerb, Speicherung, kognitive Organisation <strong>und</strong> Weitergabe<br />

von Wissen sind ohne Sprache nicht möglich. Informationen<br />

sind überwiegend sprachlich codiert, der kognitive<br />

Prozeß ihrer Wiederauffindung im Gedächtnis folgt<br />

zum Teil sprachstrukturellen Gegebenheiten,' <strong>und</strong> der<br />

kommunikative Prozeß der Weitergabe von Information<br />

ist so gut wie immer sprachlich organisiert. Aus diesem<br />

Gr<strong>und</strong> kommt dem Phänomen "Sprache" auch in der<br />

<strong>Informatik</strong> eine herausragende Bedeutung zu. Im <strong>Informatik</strong>unterricht<br />

wird eine Vielzahl von Sprachen in unterschiedlicher<br />

Funktion verwendet. Ganz ähnlich wie im<br />

Mutter- <strong>und</strong>/oder Fremdsprachenunterricht lernen die<br />

Schüler einerseits den Umgang mit Sprache(n) }lnd andererseits<br />

die Reflexion über Sprache. !<br />

Zur Problemanalyse dient die Umgangssprache, bei der<br />

Algorithmusentwicklung werden als Spezifikations- bzw.<br />

als EntWUrfssprachen geeignete Erweiterungen bzw. Formalisierungen<br />

der Umgangssprache (ggf. mit Einbau grafischer<br />

Elemente) verwendet, als Kommunikationsmedium<br />

zwischen Mensch <strong>und</strong> Computer dient einerseits die<br />

Programmiersprache, andererseits die vom Programmautor<br />

vorgesehene Sprache für den Benutzerdialog (z. B.<br />

Menüs oder Kommandosprache). Die verwendete Programmiersprache<br />

"steckt den ModelIierungsspielraum<br />

ab" (Schubert 1991) <strong>und</strong> ist damit nicht nur Darstellungsmedium,<br />

sondern Denkwerkzeug.<br />

" Wir verwenden zwar Basic in unserem <strong>Informatik</strong>unterricht,<br />

aber die spezielle Programmiersprache -deren es<br />

bekanntlich sehr viele gibt -ist nur ein Mittel, um den zur<br />

Lösung eines Problem entwickelten Algorithmus computergerecht<br />

darstellen <strong>und</strong> dann das Problem mit Hilfe <strong>des</strong><br />

Computers auch wirklich lösen zu können" (Walsch 1988,<br />

S. 86). Diese viel gehörte Ansicht wird der Rolle einer<br />

Programmiersprache nicht gerecht. Sie beachtet nicht, daß<br />

bereits die Formulierung eines Algorithmus nicht sprachunabhängig<br />

geschieht, <strong>und</strong> daß aIsEntWUrfssprache i. d.<br />

R. eine Sprache verwendet wird, die sich an die spätere<br />

Programmiersprache anlehnt. "Nicht selten findet man<br />

sogar formale Spezifikationen, die in einer Art Pseudo-<br />

Pascal formuliert sind. Zumin<strong>des</strong>t aber werden die Probleme<br />

so ausgewählt <strong>und</strong> aufbereitet, daß sie später leicht in<br />

die Programmiersprache übertragen werden können"<br />

(Gasper 1987, S. 78).<br />

4.2.1 Imperativische (anweisungsorientierte) Sprachen<br />

Eine anweisungsorientierte Programmiersprache bietet<br />

Mittel an, mit denen ein Programm als sequentieller Plan<br />

für Aktionsfolgen beschrieben werden kann. Sie stellt Ausdrucksmittel<br />

für die zyklische Abarbeitung von AnweisungsstÜcken<br />

(Iteration) zur Verfügung. Nun ist Iteration<br />

im Sinne von zeitlicher Wiederholung, ab~r auch von<br />

räumlicher Aneinanderreihung eine "universelle Idee",<br />

welche beträchtliches "heuristisches Potential" entfaltet<br />

(Winter 1989, S. 119). Unter dem Schlagwort "algorithmisches<br />

Denken" ist diese Idee vor allem von A. Engel<br />

413 "dynami3cher" Aspekt dem statisch-struktUrellen<br />

Aspekt der Mathematik entgegengesetzt worden.<br />

Analyser<br />

Wegen seiner Anschaulichkeit <strong>und</strong> intuitiven vertrautheit<br />

ist das Denken in sequentiell gegliederten Abläufen<br />

(nicht nur in der Mathematik) in der Tat f<strong>und</strong>amental,<br />

daher werden imperativische Sprachen immer einen zentralen<br />

Platz im <strong>Informatik</strong>unterricht behalten. Nachteilig<br />

ist ihre komplizierte Syntax, welche dazu zwingt, in einer<br />

langen Einarbeitungsphase sich die Sprache Schritt für<br />

Schritt anzueignen, bevor die ersten nichttrivialen Anwendungsaufgaben<br />

gelöst werden können. Aus diesem Gr<strong>und</strong><br />

gerät der <strong>Informatik</strong>unterricht zeitWeise zum Programmier(sprachen)kurs.<br />

Ferner sind imperativische Sprachen<br />

maschinennah <strong>und</strong> damit vergleichsweise ausdrucksschwach.<br />

Korrektheitsbeweise sind schwierig, da von der<br />

sequentiellen Struktur abstrahiert werden muß ("Schleifeninvariante").<br />

Derzeit wird als Programmiersprache in der Schule fast<br />

ausschließlich Pascal verwendet -<strong>und</strong> dies, obwohl die<br />

Mittel dieser Sprache zur Prozedur- als auch zur Datenabstraktion<br />

unvollkommen <strong>und</strong> dem heutigen Standard<br />

(auch in der Schule) nicht mehr angemessen sind. Während<br />

in Universitäten (UCSD) <strong>und</strong> kommerziellen Unternehmen<br />

(z. B. Borland) an Pascal immer weiter herumgedoktert<br />

wurde, um die Sprache modernen Anforderungen<br />

(Prozedur- <strong>und</strong> Datenabstraktion, Modularität, Objektorientierung)<br />

anzupassen, ohne ihre konzeptionellen<br />

Schwächen je vollständig beheben zu können, hat N.<br />

Wirth gleich "Nägel mit Köpfen" gemacht, indem er jene<br />

Konzepte von Anfang an in neuen SprachentWÜrfen realisierte<br />

(Modula-2 <strong>und</strong> Oberon). Daher kann die Forderung<br />

heute nur heißen: " Wenn imperativisches Programmieren,<br />

dann (min<strong>des</strong>tens) Modula-2".<br />

4.2.2 Applikative (funktionale) Sprachen<br />

Alle ihre formalen Eigenschaften können -<br />

wie etwa die Regeln <strong>des</strong> Schachspiels -innen einer St<strong>und</strong>e<br />

vermittelt werden. Nach kurzer Zeit vergessen wir die<br />

syntaktischen Details der Sprache (weil es keine gibt) <strong>und</strong><br />

wenden uns den inhaltlichen Problemen zu.<br />

Sauerbrey<br />

Neben der operativen (imperativischen) Algorithmusauffassung<br />

gibt es eine SichtWeise von Algorithmen, die durch<br />

starke mathematische Abstraktion gewonnen wird: sie<br />

nimmt keinen expliziten Bezug auf eine "Abfolge von<br />

Aktionen", sondern beschreibt lediglich den funktionalen<br />

Zusammenhang von Ein- <strong>und</strong> Ausgabedaten. Das Ergebnis,<br />

das ein Algorithmus aus gegebenen Datenobjekten<br />

erzeugt, wird durch Anwendung ("Applikation") <strong>des</strong> Algorithmus<br />

auf diese Objekte dargestellt, man spricht daher<br />

von applikativen (oder: funktionalen) Sprachen.<br />

Prominentester Vertreter dieser Sprache ist Lisp. Ihr<br />

großer Vorteil (den sie übrigens mit Prolog teilt, siehe<br />

unten) besteht in der einfachen syntaktischen Struktur<br />

sowie in ihrer Fähigkeit, die traditionelle Unterscheidung<br />

zwischen "passiven" Daten <strong>und</strong> "aktiven" Programmen<br />

aufzuheben. Ferner unterstÜtzt sie mehr als jede andere<br />

Sprache Strategien, Programme weitgehend modular zu<br />

konstruieren. " Wir können mit prozeduralen <strong>und</strong> mit<br />

Datenabstraktionen arbeiten, wir können Funktionen höherer<br />

Ordnung verwenden, um allgemeine Verwendungsmuster<br />

in den Griff zu bekommen, wir können mit Hilfe<br />

von Zuweisungen <strong>und</strong> Datenmutation lokale Zustände<br />

modellieren (...) Ulld wir können auf einfache Weise eingebettete<br />

Sprachen implementieren (Abelson u. a. 1991, S.<br />

xix).<br />

Für die Schule wurde Anfang der achtziger Jahre der<br />

Lisp-Dialekt Logo von einigen Mathematikdidaktikern<br />

15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!