Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierparadigmen mit Scheme

Ähnliche Präsentationen


Präsentation zum Thema: "Programmierparadigmen mit Scheme"—  Präsentation transkript:

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

2 Vorgeschichte Didaktische und methodische Aspekte
Hochschule Zittau-Görlitz (FH) Fachbereich Informatik Vorlesung: Programmierparadigmen Didaktische und methodische Aspekte der gymnasialen Oberstufe Diplomarbeit Sächsischer Lehrplan Informatik Geschwister-Scholl-Gymnasium Löbau Wahlgrundkurs Informatik, Klasse 11 Dresden, den

3 Fachdidaktische Konzeption
Übersicht Einführung Fachdidaktische Konzeption Einführung in die funktionsorientierte Programmierung Ausgewählte Inhalte Erfahrungen und Ergebnisse Zusammenfassung / Ausblick Dresden, den

4 1. Einführung (I) Programmierparadigmen Programmierung imperativ
funktionsorientiert objektorientiert logisch Programmierung theoretisches Konzept Client-Server- Kommunikation Algorithmen und ihre Effizienz Datenbank- programmierung Dokument- beschreibung Dresden, den

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 im Wahlgrundkurs Informatik der Klassenstufe 11. Dresden, den

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 von Programmierkonzepte 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

7 2. Fachdidaktische Konzeption (II)
Stoffplanung im 1. Halbjahr LB Thema Schwerpunkte Inhalte Std. 1 Einführung in die funktionsorientierte Programmierung Read-Eval-Print-Loop (REPL) Datentypen - Zahlen - Zeichen / Zeichenketten - Wahrheitswerte - Datenstruktur Liste Bedingte Ausdrücke Prozeduren - benannt / unbenannt Rekursionen - echte Rekursionen - endständige Rekursionen - Mehrfachrekursionen Kommunikation im Direktmodus einstellige / mehrstellige Prozeduren: - Summe, Fakultät, - Fibonacci-Zahlen Prozeduren mit Listen -  Minimum / Maximum - Loeschen, Superloeschen - Element?, Superelement? 20 2 Prozeduren höherer Ordnung Prozedur höherer Ordnung Anwendung von Prozeduren auf Listen komplexe Anwendungen Numerische Ableitung beliebiger Funktionen Wertetabellen Nullstellensuche 10 Dresden, den

8 2. Fachdidaktische Konzeption (III)
Stoffplanung im 2. Halbjahr LB Thema Schwerpunkte Inhalte Std. 3 verzögerte Evaluation Evaluationstechniken Streams Projektarbeit: Zahlenfolgen - rekursive, explizite Bildungsvorschrift - Grenzwerte von Zahlenfolgen - Partialsummenfolgen 10 4  - Kalkül theoretische Grundlagen -Konvention, -Reduktion, -Vereinfachung Symbolverarbeitung einfache Anwendungen der Rechenregeln Projektarbeit: Symbolisches u. numerisches Differenzieren 5 Ausgewählte Algorithmen und ihre Effizienz Intuitiver Algorithmusbegriff - sequenzielle / binäre Suche - Minsort / Quicksort Aufwandsbetrachtungen: - Zeitkomplexität und O-Notation Grenzen der Berechenbarkeit komplexe Anwendungen aus-gewählter Algorithmen in einem Mini-Datenbanksystem Implementation ausgewählter Algorithmen empirische Effizienzuntersuchungen Projektarbeit: Mini-Datenbanksystem - Ein- / Ausgabe / Speichern von Datensätzen - Löschen von Datensätzen - Such- und Sortierfunktionen 15 Dresden, den

9 3. Einführung in die funktionsorientierte Programmierung
Präfixnotation in Scheme (/ (+ 3 5) (- 6 2)) ( ) 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 der gymnasialen Oberstufe den Einstieg in die funktionsorientierte Programmierung. Dresden, den

10 4. Ausgewählte Inhalte 4.1 Prozeduren höherer Ordnung - Streams
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. Projekt: Zahlenfolgen mit rekursiver bzw. expliziter Bildungsvorschrift Repräsentation von potenziell unendlichen Mengen mit streams Dresden, den

11 4. Ausgewählte Inhalte 4.2 Raten einer Zahl - Effizienzuntersuchungen
Implementation 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 Auswahl geeigneter Werkzeuge (GTR, Tabellenkalkulation bzw. geeignete Scheme-Prozeduren). Beispiel: (grafik ) Dresden, den

12 4. Ausgewählte Inhalte 4.3 Implementation eines Mini-Datenbanksystems
DrScheme erlaubt die Definition komplexer Datenstrukturen: (define-struct datensatz (nr nachname vorname)) Dabei können Daten unterschiedlicher Datentypen zusammengefasst werden (latentes Typkonzept). Mit weiteren Sprachelementen lassen sich prinzipielle Funktionen eines Datenbanksystems realisieren: 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) Dresden, den

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

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 Kommunikation in Netzwerken zu entwickeln und zu erproben. (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))))) (define web1 ) Im Beispiel wird die durch (wertetabelle fak) generierte Tabelle (in HTML-Syntax) integriert. Dresden, den

15 4. Ausgewählte Inhalte 4.6 Dynamische Web-Seiten – Client-Server-Architektur Zur Kommunikation in Netzwerken stellt DrScheme einen eigenen Webserver bereit. Damit wird es möglich, dynamische Webseiten serverseitig zu generieren, um bestimmte Dienstleistungen über ein Web-Interface anzubieten. Nutzerformular des Clients Antwortseite des Servers Dresden, den

16 4. Ausgewählte Inhalte 4.7 Web-Datenbanken
Bei einer Web-Datenbank wird der Client-Server-Kommunikation eine Datenbankkomponente hinzugefügt: Dresden, den

17 5. Erfahrungen und Ergebnisse
5.1 Notenpunkte Schuljahr 2003/04 Schuljahr 2004/05 Dresden, den

18 5. Erfahrungen und Ergebnisse
5.2 Schlussfolgerungen 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. Dresden, den

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! Dresden, den


Herunterladen ppt "Programmierparadigmen mit Scheme"

Ähnliche Präsentationen


Google-Anzeigen