Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule...
-
Upload
rannulf-welke -
Category
Documents
-
view
114 -
download
0
Transcript of Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule...
Programmierparadigmen mit Scheme
Christian WagenknechtFachbereich Informatik
Hochschule Zittau/Görlitz (FH)
Brückenstr. 102826 Görlitz
Veit BergerFachschaft Informatik
Geschwister-Scholl-Gymnasium
LöbauPestalozzistr. 21
02708 Löbau
Dresden, den 29.09.2005 2
Vorgeschichte
Hochschule Zittau-Görlitz (FH)Fachbereich Informatik
Vorlesung: Programmierparadigmen
Geschwister-Scholl-GymnasiumLöbau
Diplomarbeit
Sächsischer LehrplanInformatik
Didaktische und methodische Aspekteder gymnasialen Oberstufe
Wahlgrundkurs Informatik, Klasse 11
Dresden, den 29.09.2005 3
Übersicht
1. Einführung2. Fachdidaktische Konzeption3. Einführung in die funktionsorientierte
Programmierung4. Ausgewählte Inhalte5. Erfahrungen und Ergebnisse6. Zusammenfassung / Ausblick
Dresden, den 29.09.2005 4
1. Einführung (I)
Programmierparadigmen
Programmierung
imperativ funktionsorientiert logisch objektorientiert
theoretischesKonzept Algorithmen
und ihre Effizienz Datenbank-programmierung
Dokument-beschreibung
Client-Server-Kommunikation
Dresden, den 29.09.2005 5
1. Einführung (II)
These 1:Informatik ist Allgemeinbildung.Von den Schülern der gymnasialen Oberstufe wird u.a. dazu gefordert,
in der Fachsprache zu argumentieren, grundlegende Konzepte der Informatik zu erläutern, Gestaltungsaufgaben zu beschreiben, zu abstrahieren, im fachlichen Kontext zu interpretieren und zu begründen.
(vgl. Eckwerte zur informatischen Bildung an sächsischen Schulen, Comenius-Institut, 2002)
These 2:Funktionsorientierte Programmiersprachen bieten dafür mit ihrem deskriptiven Konzept geeignete didaktische Ansätze.
Die Erprobung erfolgt seit dem Schuljahr 2003/04 imWahlgrundkurs Informatik der Klassenstufe 11.
Dresden, den 29.09.2005 6
2. Fachdidaktische Konzeption (I)
Zur Repräsentation der funktionsorientierten Programmierung wird Scheme verwendet.
DrScheme ist mit seinem didaktischen Zuschnitt die geeignete Entwicklungsumgebung, die kostenlos ist und permanent gepflegt wird.
Leistungsstarke Entwicklung vonProgrammierkonzepte Mentaltechniken- Rekursion - Beschreiben- Funktionen höherer Ordnung - Abstrahieren- verzögerte Evaluation - Generalisieren
Es werden grundlegende Datenstrukturen, Algorithmen und Wirkprinzipien basierend auf dem Paradigma der funktionsorientierten Programmierung vermittelt.
Problemlösungen erfolgen in praxisrelevanten Sachkontexten. Offene Aufgaben- und Unterrichtsformen werden dabei angestrebt.
Dresden, den 29.09.2005 7
2. Fachdidaktische Konzeption (II)
LB Thema Schwerpunkte InhalteStd.
1 Einführung in die funktionsorientierte Programmierung
Read-Eval-Print-Loop (REPL)Datentypen- Zahlen- Zeichen / Zeichenketten- Wahrheitswerte- Datenstruktur ListeBedingte AusdrückeProzeduren- benannt / unbenanntRekursionen- echte Rekursionen- endständige Rekursionen- Mehrfachrekursionen
Kommunikation im Direktmodus einstellige / mehrstellige Prozeduren:- Summe, Fakultät,- Fibonacci-ZahlenProzeduren mit Listen- Minimum / Maximum- Loeschen, Superloeschen- Element?, Superelement?
20
2 Prozeduren höherer Ordnung
Prozedur höherer OrdnungAnwendung von Prozeduren auf Listenkomplexe Anwendungen
Numerische Ableitung beliebiger FunktionenWertetabellenNullstellensuche
10
Stoffplanung im 1. Halbjahr
Dresden, den 29.09.2005 8
2. Fachdidaktische Konzeption (III)
Stoffplanung im 2. Halbjahr
LB Thema Schwerpunkte InhalteStd.
3 verzögerte Evaluation
EvaluationstechnikenStreams
Projektarbeit: Zahlenfolgen- rekursive, explizite
Bildungsvorschrift- Grenzwerte von Zahlenfolgen- Partialsummenfolgen
10
4 - Kalkül theoretische Grundlagen-Konvention, -Reduktion,-VereinfachungSymbolverarbeitung
einfache Anwendungen der Rechenregeln Projektarbeit:Symbolisches u. numerisches Differenzieren
10
5 Ausgewählte Algorithmen und ihre Effizienz
Intuitiver Algorithmusbegriff- sequenzielle / binäre Suche- Minsort / QuicksortAufwandsbetrachtungen:- Zeitkomplexität und O-NotationGrenzen der Berechenbarkeitkomplexe Anwendungen aus-gewählter Algorithmen in einemMini-Datenbanksystem
Implementation ausgewählter Algorithmen
empirische EffizienzuntersuchungenProjektarbeit: Mini-Datenbanksystem- Ein- / Ausgabe / Speichern von
Datensätzen- Löschen von Datensätzen- Such- und Sortierfunktionen
15
Dresden, den 29.09.2005 9
3. Einführung in die funktionsorientierte
Programmierung
Präfixnotation in Scheme
(/ (+ 3 5) (- 6 2)) (+ 1 2 3 4 5 6 7 8 9
10)
2V r h
V
r h
Prozedurabstraktionen (define volumen
(lambda (radius hoehe) (* pi (sqr radius) hoehe)))
Rekursive Beschreibungen(define schnapszahl? (lambda (n) (cond [(< n 10) #f] [(= (quotient n 10) (modulo n 10)) #t] [else (and (= (modulo n 10) (modulo (quotient n 10) 10)) (schnapszahl? (quotient n 10)))])))
Mathematische Aufgabenstellungen unterstützen in dergymnasialen Oberstufe den Einstieg in die funktionsorientierteProgrammierung.
Dresden, den 29.09.2005 10
4. Ausgewählte Inhalte
Konzept:Funktionen höherer Ordnung Prozeduren können Argumente von
Prozeduren sein. Prozeduren können Prozeduren zurückgeben.
Konzept:Verzögerte Evaluation Evaluiere den Operator. Ersetze die formalen Parameter im
Prozedurkörper durch „aufgeschobene“ (delay) Operanden.
Evaluiere den so entstandenen Ausdruck, wobei die Evaluation aufgeschobener Operanden erzwungen (force) wird, wenn sie gebraucht werden.
4.1 Prozeduren höherer Ordnung - Streams
Repräsentation von potenziell unendlichen Mengen mit streams
Projekt:Zahlenfolgen mitrekursiver bzw. expliziter Bildungsvorschrift
Dresden, den 29.09.2005 11
4. Ausgewählte Inhalte
4.2 Raten einer Zahl - EffizienzuntersuchungenImplementation eines typischen Beispiels von Teile-und-Herrsche-Algorithmen
(define computerraten-anzahl (lambda (zahl max) (letrec ([suche (lambda (li z re) (let ([mi (quotient (+ li re) 2)]) (cond [(= z mi) 1] [(< z mi) (+ 1 (suche li z mi))] [else (+ 1 (suche mi z re))])))]) (suche 1 zahl (+ max 1)))))
Empirische Effizienzuntersuchungen erfolgen in offenen Aufgabenstellungen bzw. in freier Auswahlgeeigneter Werkzeuge (GTR, Tabellenkalkulation bzw. geeignete Scheme-Prozeduren).Beispiel:
(grafik 200 10000 200 1000)
Dresden, den 29.09.2005 12
4. Ausgewählte Inhalte
4.3 Implementation eines Mini-DatenbanksystemsDrScheme erlaubt die Definition komplexer Datenstrukturen:
(define-struct datensatz (nr nachname vorname))
Mit weiteren Sprachelementen lassen sich prinzipielle Funktionen eines Datenbanksystemsrealisieren:
Eingabe von Datensätzen (einfuegen!) Speicherung der Datensätzen (speichern! "namen.dat") Laden gespeicherter Datensätze (laden! "namen.dat") Löschen von Datensätzen (loesche-inhalt! "weber") Sortieren von Datensätzen (sortieren! 'nachname <) Suchen nach ausgewählten Inhalten (suche-feldinhalt 'vorname "heinz")
(suche-inhalt "heinz") Ausgabe aller Datensätzen (datenausgabe)
Dabei können Daten unterschiedlicher Datentypen zusammengefasst werden (latentes Typkonzept).
Dresden, den 29.09.2005 13
4. Ausgewählte Inhalte
4.4 Projekt: Symbolisches Differenzieren – Wie arbeitet ein CAS?
Aufgabe: In geeigneten Scheme-Prozeduren soll die n-te Ableitung beliebiger mathematischer
Funktionsterme symbolisch und numerisch berechnet werden.
Beispiele: > (vereinfache-vollstaendig (ableitung '(+ (^ x 2) (/ 1 x)) 'x))(+ (* 2 x) (/ -1 (^ x 2)))> (berechne (ableitung '(+ (^ x 2) (/ 1 x)) 'x) 'x 2)3 3/4
Schwerpunkte: Symbolisches Differenzieren vs. Numerisches Differenzieren Symbolverarbeitung mit Scheme Implementation der Differentiationsregeln in rekursiven Prozeduren Beschreiben von Vereinfachungsregeln Implementation der Vereinfachungsregeln Entwicklung einer einfachen Bedienoberfläche Programmtest – Leistungen und Grenzen der Implementation Vergleich mit einem kommerziellen CAS-System (MathCad, TI-InterActiv)
Dresden, den 29.09.2005 14
4. Ausgewählte Inhalte
4.5 Dokumentbeschreibungssprachen – Generierung statischer Web-Seiten
Zwischen HTML/XML-Sprachen und Scheme gibt es eine enge strukturelle Verwandtschaft.DrScheme hält Module bereit, die es ermöglichen, einfache Modelle für die Kommunikationin Netzwerken zu entwickeln und zu erproben.
(define web1
)
Im Beispiel wird die durch (wertetabelle 0 10 1 fak) generierte Tabelle(in HTML-Syntax) integriert.
(define wertetabelle (lambda (von bis step f) (letrec ([zeile (lambda (z) (if (> z bis) () (cons `(tr (td ,(number->string z)) (td ,(number->string (f z)))) (zeile (+ z step)))))]) (cons '(tr (th "x") (th "f(x)"))
(zeile von)))))
Dresden, den 29.09.2005 15
4. Ausgewählte Inhalte
4.6 Dynamische Web-Seiten – Client-Server-ArchitekturZur Kommunikation in Netzwerken stellt DrScheme einen eigenen Webserver bereit. Damit wird es möglich, dynamische Webseiten serverseitig zu generieren, um bestimmteDienstleistungen über ein Web-Interface anzubieten.
Nutzerformular des Clients Antwortseite des Servers
Dresden, den 29.09.2005 16
4. Ausgewählte Inhalte
4.7 Web-Datenbanken Bei einer Web-Datenbank wird der Client-Server-Kommunikation eine Datenbankkomponentehinzugefügt:
Client Server
Verarbeitung:
Generierung einerdynamischen Webseite
http-basierteKommunikation
CGI /Servlet
Server
SQL-Anfrage
Datenbank-
ODBC /JDBC
Verarbeitung:Datenbankabfrage
generieren
id plz ort str1 28337 Hauptstadt An der Ochsenkoppel 232 736222 Nebenstadt Im Wald 23a3 0815 Schlaraffendorf Unter Palmen 1236 110815 Schlaraffendorf Im Teich 427 02708 Loebau Weissenberger Str. 288 01277 Dresden Hepkeplatz 49 02708 Kittlitz Loebauer Str.17
adresse
id vorname name adrid1 Herta Kolli 32 Bodo Krause 33 Bob Mason 14 Muck Vogel 25 Matz Globus 66 Sandra Krause 27 Heinz Lehmann 7
8 Karl Lehmann 89 Anna Mueller 8
10 Beate Schulze 9
person
Dresden, den 29.09.2005 17
5. Erfahrungen und Ergebnisse
5.1 Notenpunkte
Schuljahr 2004/05
0
1
2
3
Anzahl
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Notenpunkte
1. Kurshalbjahr 2.Kurshalbjahr
Schuljahr 2003/04
0
1
2
3
4
5
Anzahl
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Notenpunkte
1. Kurshalbjahr 2.Kurshalbjahr
Dresden, den 29.09.2005 18
5. Erfahrungen und Ergebnisse
Abstrahierendes Beschreiben stellt hohe Anforderungen an die Schüler.
Übungen und weiterführende Aufgaben über den Informatik-unterricht hinaus sind unumgänglich.
Der Fokus liegt verstärkt auf Problemlösungen. Das (gezielte) „Probieren durch Interagieren“ kann in schwierigen Phasen der Problemlösung weiterhelfen.
Es kommt zur Polarisierung von Schülerleistungen; verstärkte Leistungs- und Niveauunterschiede drücken sich auch in der Benotung aus.
Die im Allg. zustandslosen Prozeduren gestatten nicht nur eine scharfe Modularisierung, sondern eröffnen auch verschiedene Möglichkeiten eines differenzierten Informatikunterrichts.
5.2 Schlussfolgerungen
Dresden, den 29.09.2005 19
6. Zusammenfassung / Ausblick
Die funktionsorientierte Programmierung mit Scheme ermöglicht ein didaktisch tragfähiges Konzept, um Zusammenhänge und Wirkprinzipien der Informatik erlebbar zu vermitteln.
Eine altersgerechte Einbindung in die systematische, wissenschaftsorientierte Grundlagenbildung der Sekundarstufe I könnte in der Sekundarstufe II die erforderlichen Freiräume für eine weitere multiparadigmatische Ausrichtung schaffen.
Ich danke für die Aufmerksamkeit!