Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz

Ähnliche Präsentationen


Präsentation zum Thema: "Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz"—  Präsentation transkript:

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

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

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

4 Dresden, den Einführung (I) Programmierparadigmen Programmierung imperativfunktionsorientiertlogischobjektorientiert theoretisches Konzept Algorithmen und ihre Effizienz Datenbank- programmierung Dokument- beschreibung Client-Server- Kommunikation

5 Dresden, den 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.

6 Dresden, den 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. LeistungsstarkeEntwicklung von ProgrammierkonzepteMentaltechniken - 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.

7 Dresden, den Fachdidaktische Konzeption (II) LBThema SchwerpunkteInhalte Std. 1Einfü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 2Prozeduren höherer Ordnung Prozedur höherer Ordnung Anwendung von Prozeduren auf Listen komplexe Anwendungen Numerische Ableitung beliebiger Funktionen Wertetabellen Nullstellensuche 10 Stoffplanung im 1. Halbjahr

8 Dresden, den Fachdidaktische Konzeption (III) Stoffplanung im 2. Halbjahr LBThema SchwerpunkteInhalte Std. 3verzögerte Evaluation Evaluationstechniken Streams Projektarbeit: Zahlenfolgen -rekursive, explizite Bildungsvorschrift -Grenzwerte von Zahlenfolgen -Partialsummenfolgen Kalkül theoretische Grundlagen -Konvention, -Reduktion, -Vereinfachung Symbolverarbeitung einfache Anwendungen der Rechenregeln Projektarbeit: Symbolisches u. numerisches Differenzieren 10 5Ausgewä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

9 Dresden, den 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.

10 Dresden, den 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 mit rekursiver bzw. expliziter Bildungsvorschrift

11 Dresden, den 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 )

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

13 Dresden, den 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)

14 Dresden, den 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 web1 ) Im Beispiel wird die durch (wertetabelle 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)))))

15 Dresden, den 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 ClientsAntwortseite des Servers

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

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

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

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


Herunterladen ppt "Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz"

Ähnliche Präsentationen


Google-Anzeigen