Vorlesungsfolien Die alten Vorlesungsfolien (s.u.) werden laufend zur Vorlesung aktualisiert und mit ein paar Tagen Verzug hochgeladen und in der unten stehenden Tabelle verlinkt.
* Durch eine Änderung in der Struktur der Vorlesung, wurde aus Kapitel 3.3.1 "Polymorphie und Funktionen höherer Ordnung" Kapitel 3.2.1. Wenn Sie sich schon die alte PDF, SE-1_3.3.1.4auf1.pdf, vom 29.11.10 ausgedruckt haben, brauchen Sie aus der neuen PDF, SE-1_3.2.4auf1.pdf, noch das Kapitel 3.2.2 "Funktionen höherer Ordnung". ** Aus Konsistenzgründen wurde die Nummerierung der Abschnitte 4.0 bis 4.0.4 aktualisiert. Die Inhalte von SE-1_4.0.pdf und SE-1_4.0.4.pdf finden Sie jetzt zusammengefasst in SE-1_4.1.pdf (Prozedurales Programmieren I - 4.0 Prozedurale Programmierung und 4.1. Programmablauf). Weiterhin finden Sie in SE-1_4.1.pdf neun 'neue' Folien, die Kapitel 4.1. (alt 4.0.4.) mit den Themen Seiteneffekte und Determinismus abschließen. Wenn Sie sich schon die Datei SE-1_4.0.4.pdf heruntergeladen und ausgedruckt haben, brauchen Sie also aus SE-1_4.1.pdf nur noch die letzten neun Folien.
|
Link | Beschreibung | Vorlesung |
"Taschenrechner" | mit lexikographischer Analyse und Parsing | 23.11.10 |
Rule 110 | 23.11.10 | |
Map-Reduce | Funktionen höherer Ordnung | 25.11.10 |
PQ-Sort | Priority Queue Sort (auch Heapsort) | 02.12.10 |
Natural Binary Tree | Natürliche Bäume und deren Validierung | 02.12.10 |
Haskell Quick Reference
Java Beispiele aus den Vorlesungen NEU
Link |
Beschreibung |
Java Beispiele. | Java-Äquivalente der Haskell Beispiele |
Storage Management with Pools | Beispiel für den Gebrauch manueller Speicherverwaltung in Java |
Storage Management in Memory | Abbildung manueller Speicherverwaltung auf den Hauptspeicher einer CPU; Implementierung von Listen in Sprache, wie C |
Lists as Arrays | Darstellung von Listen durch Felder; Algorithmus am Beispiel von Quicksort. |
Garbage Collection Example | Illustriert die Grundideen zu Gargage Collection (automatische Speicherverwaltung). |
JButtonDemo | Illustriert den Gebrauch von inneren Klassen. |
MyComponent | Illustriert den Gebrauch von Vererbung und dynamischer Bindung in der Erstellung neuer Funktionalität. |
Beispiele für Datentypen NEU | Quellcode des MiniCollection Beispiels |
IntSet NEU | Verschiedene IntSet Implementierungen |
Weitere Java Beispiele NEU | Convert.java, Cov.java, Test.java, Throw.java, Override.java |
Weitere Assertion Beispiele NEU
Weitere Beispiele zu den Annotationsbeweisen der Vorlesung finden Sie in folgender PDF: assertion_beispiele.pdf
(Update: 20.01.11, Die Nachbedingung im Fließtext des Quad Beispiels stimmte nicht mit der in den Annotationen überein.)
Übungsblätter und Lösungshinweise/-vorschläge
Sie erhalten die Übungsblätter in Ihrer eigenen Übung vom Tutor. Nach dem jeweiligen Ausgabezeitraum werden die Blätter dann online gestellt.Übrig gebliebene Blätter der jeweils vergangenen Woche werden in der AG Breuel nahe der Fachschaft ausgelegt.
Nr. | Blatt | LHV | Materialien | Kommentar |
---|---|---|---|---|
1 | Dieses Blatt ist komplett vor der ersten Übung zu bearbeiten. |
|||
2 | Dieses Blatt erhalten Sie in Ihrer ersten Übung. |
|||
3 | RoboLib.hs | Beachten Sie die Hinweise unten, zur Installation auf eigenen Rechnern und der Benutzung von außerhalb. |
||
4 |
||||
5 |
mensaplan.hs Exp.hs |
Update: Plan jetzt für diese und nächste Woche, einfach in das eigene Programm kopieren. |
||
6 | Exp.hs | Erweiterte Variante für die Folgeaufgabe auf diesem Blatt. | ||
7 | Dictionary.hs mapreduce.hs RoboLib.hs |
Signatur des Dictionary zur einfachen Erweiterung (Aufgabe 2). Definition von mapreduce, zur Benutzung zusammen mit shakespeare-romeo-48.txt. Modifizierte und erweiterte RoboLib (Aufgabe 4). |
||
8 | IO.java HSTurtle.zip HSTurtle.tgz |
Beim prozeduralen Java verwenden wir diese Programmstruktur. Beachten Sie die Hinweise zur Turtle-Bibliothek unten. |
||
9 |
||||
10 | PC.java | Material zu Aufgabe 4. Extrablatt. | ||
11 | Routenplanung.zip | Material zu Aufgabe 4. | ||
12 | Secret.zip SEGraphics.java |
Materialien zu den Aufgaben 3 und 5. In Aufgabe 3 sind correctPlace und correctDigit wie bei Mastermind üblich zu verstehen. |
||
13 | Environment.java | Material zu Aufgabe 5. | ||
14 | ||||
Grammars.hs |
Ein kleines Programm zur Definition von Grammatiken und Darstellung von Worten und deren Ableitungen. |
- Hinweis: Wenn Sie zu Hause oder auf einem Laptop Haskell - und vor allem den Roboter - verwenden wollen, empfehlen wir die Haskell Plattform zu installieren (Link). Damit erhalten Sie auch das Tool cabal, mit dem Sie zusätzliche Pakete installieren können. Für den Roboter brauchen Sie zusätzlich zu denen aus der Plattform noch vty, vty-ui, data-accessor und data-accessor-template. All diese können Sie, mit allen Abhängigkeiten, durch den Befehl cabal install vty-ui data-accessor-template installieren. Vor dem ersten Aufruf von cabal müssen Sie einmalig ein cabal update ausführen. Beachten Sie außerdem, dass auf Ihrem System die beiden Bibliotheken pcre-light und terminfo installiert sein müssen. (Unter Ubuntu geht dies z.B. einfach über den Paketmanager; Pakete libghc6-pcre-light-dev und libghc6-terminfo-dev.)
- Hinweis: Wenn Sie an der Uni mit dem Roboter gearbeitet haben, können Sie von außerhalb einfach mit SSH auf dem SCI weiter arbeiten. Dies geht insbesondere auch von Windows aus, wo sich der Roboter auch nur sehr schwer installieren lässt. Sie benötigen dafür ein Programm wie PuTTY. Informationen dazu finden Sie unter anderem auch auf der Webseite des SCI: SCI Rechnerzugang FAQ
- Hinweis: Für die Weihnachtsaufgabe benötigen Sie entweder das Paket hpdf (für PDFTurtle) oder glfw (für GLTurtle). Beide sind mit cabal, wie oben beschrieben, leicht zu installieren. Die Archive enthalten jeweils Turtle.hs, sierpinski.hs, sowie die beiden Implementierungen PDFTurtle.hs und GLTurtle.hs, wobei letztere noch SOE.hs mitbringt. Auf dem SCI wird vermutlich nur hpdf installiert sein, weshalb Sie dort auf PDFTurtle zurückgreifen sollten.