Uni-Logo

Informatik I - Übungen

Übungsblätter

Übungsblatt Ausgeteilt Abgabe Material
Übungsblatt 1 Dienstag, 26. Oktober 2010 Donnerstag, 4. November 2010
Übungsblatt 2 Dienstag, 9. November 2010 Donnerstag, 18. November 2010
Übungsblatt 3 Dienstag, 23. November 2010 Donnerstag, 2. Dezember 2010 zlisten.rkt
Übungsblatt 4 Dienstag, 7. Dezember 2010 Donnerstag, 16. Dezember 2010
Übungsblatt 5 Dienstag, 21. Dezember 2010 Donnerstag, 13. Januar 2011
Übungsblatt 6 Dienstag, 18. Januar 2011 Donnerstag, 27. Januar 2011
Übungsblatt 7 Dienstag, 1. Februar 2011 Donnerstag, 10. Februar 2011
Übungsblatt 8 Montag, 14. Februar 2011 nie (freiwillige Zusatzübung)

Abgabe der Übungsblätter

Jeden zweiten Dienstag wird ein Blatt mit Übungsaufgaben ausgegeben, welches innerhalb von neun Tagen (bis zum Donnerstag der darauf folgenden Woche) bearbeitet werden muss. Lösungen zu Programmieraufgaben werden per Mail an den Tutor abgegeben, schriftliche Lösungen auf Papier zu Theorieaufgaben sollen bis 10:00 Uhr am Abgabetag (also vor Beginn der Vorlesungsstunde) im Briefkasten Ihrer Übungsgruppe im EG von Gebäude 051 eingeworfen werden.

Themen der betreuten Programmierübungen

Nr. Zeitraum Thema
1 21.10. bis 27.10.2010 Arithmetik
2 28.10. bis 03.11.2010 Fallunterscheidungen, Arithmetik, Fehler
3 04.11. bis 10.11.2010 Zusammengesetzte und gemischte Daten
4 11.11. bis 17.11.2010 Zusammengesetzte und gemischte Daten, Listen und Rekursion
5 18.11. bis 24.11.2010 Rekursion auf mehreren Argumenten, let und let*
6 25.11. bis 01.12.2010 Zusammengesetzte Daten, Endrekursion und Akkumulatoren
7 02.12. bis 08.12.2010 Eigenschaften von binären Relationen
8 09.12. bis 15.12.2010 Kartesisches Produkt und transitive Hülle
9 16.12. bis 22.12.2010 Turtle-Grafik und Fraktale
10 10.01. bis 14.01.2011 Einfache Funktionen in Python
11 17.01. bis 21.01.2011 Zusammengesetzte Daten in Python
12 24.01. bis 28.01.2011 Verkettete Listen in Python
13 31.01. bis 04.02.2011 Verkettete Listen in Python, Iteration
14 07.02. bis 11.02.2011 Eingebaute Sequenztypen in Python

Termine und Ort

Übungen: Acht Gruppen zu folgenden Terminen:

Nr. Tag Zeit Raum Tutor Email
1 Di 16:15-18:00 Uhr 051-03-026 Manuel Meyer meyerma@informatik.uni-freiburg.de
2 Di 16:15-18:00 Uhr 051-00-031 Malte Ahl info1@malteahl.de
3 Di 16:15-18:00 Uhr 051-00-034 Daniel Brand brandd@informatik.uni-freiburg.de
4 Mi 16:15-18:00 Uhr 051-00-031 Jonathan Nagel nagelj@informatik.uni-freiburg.de
5 Mi 16:15-18:00 Uhr 078-00-014 Franz Dietrich dietricf@informatik.uni-freiburg.de
6 Do 16:15-18:00 Uhr 051-00-034 Stephanie Embgen embgens@informatik.uni-freiburg.de
7 Do 16:15-18:00 Uhr 052-02-017 Nikolaus Mayer mayern@informatik.uni-freiburg.de
8 Do 16:15-18:00 Uhr 051-03-026 Fabian Wenzelmann wenzelmf@informatik.uni-freiburg.de

Betreutes Programmieren:

Tag Zeit Räume Tutoren Email
Mo 18:15-20:00 Uhr 082-00-028
082-00-029
Malte Ahl,
Manuel Meyer,
Fabian Wenzelmann
info1@malteahl.de,
meyerma@informatik.uni-freiburg.de,
wenzelmf@informatik.uni-freiburg.de
Di 18:15-20:00 Uhr 082-00-028
082-00-029
Thomas Liebetraut,
Nikolaus Mayer,
Leonore Winterer
liebetrt@informatik.uni-freiburg.de,
mayern@informatik.uni-freiburg.de,
winterel@informatik.uni-freiburg.de
Mi 18:15-20:00 Uhr 082-00-028
082-00-029
Stephanie Embgen,
Thorsten Engesser,
Felix Neubauer
embgens@informatik.uni-freiburg.de,
engesset@informatik.uni-freiburg.de,
neubauef@informatik.uni-freiburg.de
Do 18:15-20:00 Uhr 082-00-028
082-00-029
Franz Dietrich,
Sebastian Dufner,
Thorsten Engesser
dietricf@informatik.uni-freiburg.de,
dufners@informatik.uni-freiburg.de,
engesset@informatik.uni-freiburg.de
Fr 18:15-20:00 Uhr 082-00-028
082-00-029
Daniel Brand,
Markus Grützner,
Jonathan Nagel
brandd@informatik.uni-freiburg.de,
gruetzne@informatik.uni-freiburg.de,
nagelj@informatik.uni-freiburg.de

Die Anmeldung sowohl zu den Übungen als auch zum betreuten Programmieren erfolgt über das Online-Vorlesungsverzeichnis. Beachten Sie, dass zu der Online-Anmeldung auch die Anmeldung zu je einem der konkreten oben genannten Termine gehört.

Die Übungsgruppen sind auf je 20 Teilnehmer begrenzt, die Gruppen im betreuten Programmieren auf je 15 Teilnehmer. Es entscheidet die Reihenfolge der Anmeldung.

Aufgaben zum Selbststudium

Eine Reihe sehr guter Programmieraufgaben zum Selbststudium finden Sie in Herbert Klaeren und Michael Sperber. Die Macht der Abstraktion. Einführung in die Programmierung. Teubner Verlag, 2007.

Auf vielfache Nachfrage stellen wir als Ergänzung zu den theoretischen Übungen und zum betreuten Programmieren aber auch an dieser Stelle einige weitere Scheme-Programmieraufgaben zum Selbststudium bereit. Das Niveau der Aufgaben ist so gewählt, dass vor allem grundlegende Techniken wiederholt werden.

Die Bearbeitung der Aufgaben ist freiwillig und die Lösungen werden weder abgegeben noch korrigiert. Mit Fragen zu den Aufgaben können Sie sich an die Tutoren des betreuten Programmierens wenden. Einer der Tutoren wird täglich zwischen 17:30 Uhr und Beginn der betreuten Programmiersitzung im Pool anwesend sein und Ihre Fragen beantworten.

Blätter 1 bis 4 enthalten Scheme-Programmieraufgaben, Blatt 5 enthält Aufgaben, wie sie auch in einer Klausur vorkommen könnten.

Die Aufgaben im Einzelnen:

Thema Blatt
1. Ausdrücke und Prozeduren add-ex-1.pdf
2. Datentypen und Records add-ex-2.pdf
3. Rekursion add-ex-3.pdf
4. Zusammengesetzte Datentypen: Polynome add-ex-4.pdf
5. Klausurvorbereitung add-ex-5.pdf

DrRacket-Update

Einige Wochen nach Beginn der Vorlesungszeit wurde eine neue Version von DrRacket veröffentlicht (Aktualisierung von Version 5.0.1 auf 5.0.2). Da einige der Änderungen für Vorlesung und Übungen relevant sind, wurden die Pool-Rechner im Betreuten-Programmiermodus bereits aktualisiert. Sollten Sie auf Ihren Privatrechnern noch eine veraltete Version installiert haben und diese aktualisieren wollen, beachten Sie bitte auch den Hinweis auf http://www.deinprogramm.de/dmda/ zum Patch für DrRacket Version 5.0.2 (unter Neuigkeiten/10.11.2010).

Python-3-Installation

Wenn Sie auf Ihrem Privatrechner Python installieren wollen, sollten Sie beachten, dass wir in der Vorlesung mit Python 3 arbeiten, und dass Python 3 zu älteren Python-Versionen (2.x) inkompatibel ist. Sie sollten also die neueste Version der Python-3-Reihe verwenden (derzeit Python 3.1.3). Für die meisten Linux-Distributionen gibt es fertige Pakete. Unter Ubuntu reicht beispielsweise das Kommando sudo apt-get install python3, um Python 3 zu installieren. Alternativ können Sie auch den Quellcode herunterladen und kompilieren. Mac-Nutzer folgen der Anleitung für Python auf dem Mac. Für Windows-Nutzer steht auf der Download-Seite ein Installer (64 Bit) zur Verfügung.