Programmierparadigmen mit Scheme

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

Prüfungspläne Bachelor-Thesis
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Vorlesung Programmieren II
Informatik II – Kapitel 11
Sortieren I - Bubblesort -
Einführung in die Programmierung Zusammenfassung
3. Kapitel: Komplexität und Komplexitätsklassen
Vorstellung der Diplomarbeit
Institut für Informatik Betriebliche Informationssysteme Sebastian Scholz Einführung in Hummingbird Enterprise Sebastian Scholz
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Projekt: Kamerasteuerung
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Motivation Richard Göbel.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Agenda Einführung Haskell QuickCheck Zusammenfassung
6 Folgen (Teil II - Datenstrukturen und Algorithmen)
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Lehrplan Informatik Informatik Klassenstufe 7/8
Aspekte des neuen Lehrplans Informatik
Datenbanken Wenn du weiter willst, dann klicke
February Konstruktion und Layout von flexiblen Schaltungen.
Informatik Oberstufe A. Gillmann, M. Reker, V. Reimchen.
Einführung Dateisystem <-> Datenbanksystem
Taschenrechner im Mathematikunterricht Stephan Damp
Die zwei Invarianzen der Mobilität
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Programmiersprachen II Integration verschiedener Datenstrukturen
Visualisierung funktionaler Programme
Grundlagen und Bildungsziele der Informatik in der Schule Wie auch andere Unterrichtsfächer muss sich die Informatik immer wieder legitimieren. Diese Aufgabe.
WP II Mathematik/Informatik.
EXCEL PROFESSIONAL KURS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Einführung in die Programmierung
Informatik - Unterricht
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
1 © Institut für Wissenschaftliches Rechnen, ETH Zürich NET'02: Neue Medien im Hochschulunterricht Der Anwendungsführer Eine computergestützte Trainingsumgebung.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Informatik in der Keimgasse
Algorithmen und Datenstrukturen Übungsmodul 8
Geogebra Workshop in Ahaus
MODULA-2.
1.
PHP: Operatoren und Kontrollstrukturen
Programmieren in C Sortieren, Suchen
KOMPETENZORIENTIERTE MATHEMATIKSCHULARBEITEN MIT TECHNOLOGIE Mag. Gerhard Egger.
Einführung Dateisystem <-> Datenbanksystem
KompetenzorientiertE mathematikSCHULARBEITEN mit technologie
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
 Präsentation transkript:

Programmierparadigmen mit Scheme Christian Wagenknecht Fachbereich Informatik Hochschule Zittau/Görlitz (FH) Brückenstr. 1 02826 Görlitz c.wagenknecht@hs-zigr.de Veit Berger Fachschaft Informatik Geschwister-Scholl-Gymnasium Löbau Pestalozzistr. 21 02708 Löbau v.berger@gmx.net

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 29.09.2005

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

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 29.09.2005

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 29.09.2005

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 29.09.2005

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 29.09.2005

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 29.09.2005

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

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 29.09.2005

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 200 10000 200 1000) Dresden, den 29.09.2005

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 29.09.2005

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

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 0 10 1 fak) generierte Tabelle (in HTML-Syntax) integriert. Dresden, den 29.09.2005

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 29.09.2005

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

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

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 29.09.2005

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 29.09.2005