Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule...

19
Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz [email protected] Veit Berger Fachschaft Informatik Geschwister-Scholl- Gymnasium Löbau Pestalozzistr. 21 02708 Löbau [email protected]

Transcript of Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule...

Page 1: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

Programmierparadigmen mit Scheme

Christian WagenknechtFachbereich Informatik

Hochschule Zittau/Görlitz (FH)

Brückenstr. 102826 Görlitz

[email protected]

Veit BergerFachschaft Informatik

Geschwister-Scholl-Gymnasium

LöbauPestalozzistr. 21

02708 Löbau

[email protected]

Page 2: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 3: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 4: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 5: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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.

Page 6: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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.

Page 7: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 8: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 9: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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.

Page 10: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 11: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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)

Page 12: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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).

Page 13: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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)

Page 14: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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)))))

Page 15: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 16: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 17: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 18: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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

Page 19: Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de.

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!