Grundlagen der funktionsorientierten Programmierung mit SCHEME
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<h2>Kommunikation mit Scheme</h2>
<ol>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Einführung in die Kommunikation mit Scheme|Einführung in die Kommunikation mit Scheme]]</h3>
* Syntax und Semantik
* Sonderform <tt>define</tt>
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Prozeduren|Prozeduren]]</h3>
* Prozedurabstraktionen
* Unbenannte Prozeduren
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Datentypen|Datentypen]]</h3>
* Zahlen, Zeichen, Zeichenketten, Wahrheitswerte
* Symbole
</li>
</ol>
<h2>Einfache Daten- und Programmstrukturen</h2>
<ol>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Listen|Listen]]</h3>
* Listen und Paare
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Bedingte Ausdrücke|Bedingte Ausdrücke]]</h3>
* Grundform
* Alternative
* Fallauswahl
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Rekursionen|Rekursionen]]</h3>
* Selbstähnlichkeiten
* Rekursionen als universelles Konzept zur Problemlösung
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Fraktale|Fraktale]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Echte und endständige Rekursionen|Echte und endständige Rekursionen]]</h3>
* Quadratzahlen
* Turm von Hanoi
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Komplexe Anwendungen: Numerische Listen|Komplexe Anwendungen: Numerische Listen]]</h3>
<ul>
<li>Zum Weiterarbeiten:
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Vergleichsoperatoren|Vergleichsoperatoren]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Minimum-Sortieren|Minimum-Sortieren]]
</li>
</ul>
</li>
</ol>
<h2>Höhere Daten- und Programmstrukturen</h2>
<ol>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Mehrfachrekursionen|Mehrfachrekursionen]]</h3>
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Superminimum|Superminimum]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Prozeduren höherer Ordnung (I)|Prozeduren höherer Ordnung (I)]]</h3>
* Prozeduren nehmen Prozeduren entgegen
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Primzahlfilter|Primzahlfilter]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Prozeduren höherer Ordnung (II)|Prozeduren höherer Ordnung (II)]]</h3>
* Prozeduren geben Prozeduren zurück
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Kurvendiskussion|Kurvendiskussion]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Streams|Streams]]</h3>
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Von Fröschen und Tischlampen|Von Fröschen und Tischlampen]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Projekt Zahlenfolgen|Projekt Zahlenfolgen]]</h3>
* Arithmetische, geometrische sowie weitere spezielle Zahlenfolgen und ihre Grenzwerte
* ausgewählte [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Projekt Zahlenfolgen/Schülerlösungen|Schülerlösungen]]
</li>
</ol>
<h2>Theoretische Grundlagen und Symbolverarbeitung</h2>
<ol>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Der Lambda-Kalkül|Der Lambda-Kalkül]]</h3>
* Definition von λ-Ausdrücken
* Rechenregeln für λ-Ausdrücke
* Zum Weiterarbeiten: Currying und Y-combinator
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Projekt CAS|Projekt CAS]]</h3>
* Symbolische Differenzieren und Vereinfachen von Termen
</li>
</ol>
<h2>Algorithmen und ihre Effizienz</h2>
<ol>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Der Algorithmusbegriff|Der Algorithmusbegriff]]</h3>
<ul>
<li>Der Euklidische Algorithmus</li>
<li>Das Sieb des Eratosthenes</li>
<li>Zum Weiterarbeiten:
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Lösen quadratischer Gleichungen|Lösen quadratischer Gleichungen]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Das Heron-Verfahren|Das Heron-Verfahren]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Das NIM-Spiel|Das NIM-Spiel]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Der Morsecode|Der Morsecode]] (zum Vergleich: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Der Morsecode (Java)|Der Morsecode als Java-Programm]])
</li>
</ul>
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Sequenzielle Suche|Sequenzielle Suche]]</h3>
* Zufallszahlen
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Würfeln mit mehreren Würfeln|Würfeln mit mehreren Würfeln]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Binäre Suche|Binäre Suche]]</h3>
* Raten einer Zahl
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Extremwertsuche nach dem Verfahren des Goldenen Schnitts|Extremwertsuche nach dem Verfahren des Goldenen Schnitts]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Zeitaufwand und asymptotische Ordnung|Zeitaufwand und asymptotische Ordnung]]</h3>
* <math>\mathcal{O}</math>-Notation
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/MinSort|MinSort]]</h3>
* Theoretische und empirische Aufwandsbetrachtungen
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/QuickSort|QuickSort]]</h3>
* Empirische Aufwandsbetrachtungen
* Teile-und-herrsche-Algorithmen
* Zum Weiterarbeiten: [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/MergeSort|MergeSort]]
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Grenzen beim Problemlösen|Grenzen beim Problemlösen]]</h3>
* Algorithmisch und praktisch unlösbare Probleme
* P-Probleme und NP-Probleme
</li>
<li>
<h3>[[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Ausgewählte Algorithmen der Kryptologie|Ausgewählte Algorithmen der Kryptologie]]</h3>
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Das Cäsar-Verfahren|Das Cäsar-Verfahren]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Das Vigenère-Verfahren|Das Vigenère-Verfahren]]
* [[Grundlagen der funktionsorientierten Programmierung mit SCHEME/Das RSA-Verfahren|Das RSA-Verfahren]]
</li>
</ol>
<h2>Literatur</h2>
* [1] H. Abelson, G. J. Sussman: Struktur und Interpretation von Computerprogrammen - Eine Informatik-Einführung, Springer-Verlag Berlin Heidelberg, 2001
* [2] L. Engelmann (Herausgeber): Duden - Informatik, Lehrbuch S II, Duden Paetec GmbH, Berlin 2006
* [3] R. H. Güting: Datenstrukturen und Algorithmen, B. G. Teubner Verlag, Stuttgart 1992
* [4] C. Landfried: Entwicklung und Erprobung lehrplangerechter Unterrichtsmaterialien für den Informatik-Unterricht in der Sekundarstufe II, Diplomarbeit, Görlitz 2004
* [5] R. Sedgewick: Algorithmen, Addison-Wesley (Deutschland) GmbH, 1998
* [6] Chr. Wagenknecht: Algorithmen und Komplexität, Fachbuchverlag Leipzig im Carl Hanser Verlag, München Wien 2003
* [7] Chr. Wagenknecht: Programmierparadigmen - Eine Einführung auf der Grundlage mit Scheme, B. G. Teubner Verlag, Wiesbaden 2004
* [8] Chr. Wagenknecht: Rekursionen - Ein didaktischer Zugang mit Funktionen, Dümmler Verlag, Bonn 1994
* [9] J. Ziegenbalg: Algorithmen - Von Hammurapi bis Gödel, Spektrum Akademischer Verlag GmbH, Heidelberg Berlin Oxford 1996