Navigation
Home
Organisatorisches
News
News (Archiv)
Installationshinweise
Unterrichtsmaterialien
Notebooks
Übungsaufgaben
Weihnachtsprojekt: Sprichwortgenerierung
#Einführung in die CL-Programmierung mit Python (WS 18/19) ##Dozierende: Esther Seyffarth, Ben Burkhardt Dieser Kurs richtet sich an: * Erstsemester-Studierende im Bachelorstudiengang Computerlinguistik * Studierende mit linguistischem Interesse oder linguistischem Studiumsschwerpunkt, die programmieren lernen möchten * Informatikstudierende mit linguistischem Interesse (**ohne** Vorkenntnisse in Python) Ziel des Kurses ist es, einen ersten Einblick in die Programmiersprache Python zu geben und grundlegende Fähigkeiten zur Nutzung und zum Lernen von Programmiertechniken zu vermitteln. Der Schwerpunkt liegt auf der automatischen Verarbeitung sprachlicher Daten. ##
News (aktualisiert am 30.01.2019)
* Das [Quiz zum Semesterabschluss](https://goo.gl/forms/qcRaHxWmyXgIZDkG3) ist jetzt online. Hier können Sie die wichtigsten Themen des Kurses noch einmal wiederholen. Sie haben bis zum 10. Februar Zeit, das Quiz mit voller Punktzahl zu lösen, um einen zusätzlichen Übungspunkt für Ihren BN zu bekommen. * In der Übung am 30.01. können Sie das Quiz gemeinsam bearbeiten, offene Fragen zum Kurs oder zu Python stellen, oder ältere Übungsaufgaben nachreichen. * Wenn Sie Computerlinguistik studieren und dieses Semester angefangen haben, werden Sie einen online-BN bekommen. Dieser BN wird ca. Mitte März im Studierendenportal eingestellt. Falls Sie ein anderes Fach studieren oder in einer älteren Prüfungsordnung eingeschrieben sind, können Sie sich Ihren BN in Papierform in der Übung am 30.01. oder später im Sekretariat der allgemeinen Sprachwissenschaft abholen. * Den BN erhalten Sie, falls Sie bis zum 10. Februar 2019 mindestens 19 Übungsaufgaben eingereicht haben. Ab dem 31.01. werden nur noch Nachreichungen für die zweite Semesterhälfte (Woche 9 oder später) akzeptiert. Falls Sie eine Verlängerung der Frist brauchen, sprechen Sie uns bitte an. * Sie werden demnächst zur Evaluation dieser Lehrveranstaltung eingeladen. Das ist nicht nur Feedback für mich, sondern auch für die Abteilung Computerlinguistik - Ihre Rückmeldung hilft uns, den Kurs für die zukünftigen Jahrgänge zu verbessern. Besonders die Freitextantworten sind nützlich für uns. Bitte nehmen Sie sich die Zeit, dieses Formular auszufüllen! Wenn Sie Details zur Evaluation mit uns persönlich besprechen möchten, können Sie das gerne in den letzten Sitzungen tun. ##
News (Archiv)
* Das 2. Cheat Sheet ist jetzt unten bei den Unterrichtsmaterialien verfügbar. * Der Bot aus dem Weihnachtsprojekt ist unter [https://botsin.space/@python2018bot](https://botsin.space/@python2018bot) zu finden und postet dort regelmäßig mit Ihrem Code neu generierte Sprichwörter. * Frohes neues Jahr! Bis zum Ende des Semesters haben wir noch je drei Vorlesungen und drei Übungen. Ab jetzt werden nur noch weiterführende Themen behandelt - herzlichen Glückwunsch, Sie beherrschen jetzt sozusagen alle Grundlagen von Python. :-) * Wir werden die Übung am 19.12. für ein **gemeinsames Projekt** nutzen. Die Anwesenden in der Sitzung werden in Gruppen eingeteilt und bearbeiten Teile einer Aufgabe, die zum Schluss zu einem großen Programm zusammengefügt werden. **Anrechnung des Projekts:** Wer am 19.12. mitarbeitet, bekommt automatisch einen Punkt. Diese Übung wird aber nicht auf die Gesamtzahl der zu lösenden Übungen angerechnet. Sie können hier also einen Bonuspunkt erwerben! * In Aufgabe 08-01 sollten Stamm und Endung von lateinischen Wörtern identifiziert werden. In der Aufgabenstellung wird die Stringmethode `.endswith()` dafür empfohlen. Falls Sie sich entscheiden, die Trennung stattdessen mit einem **regulären Ausdruck** umzusetzen, können Sie einen **Bonuspunkt** für diese Aufgabe bekommen. Sie können auch eine bereits abgegebene Lösung noch einmal überarbeiten und so den Bonuspunkt erhalten. * Alle bisherigen Jupyter Notebooks sind unten jetzt auch als pdf- und html-Versionen verfügbar. In diesen Formaten können die Codebeispiele nicht ausgeführt werden, sie sind aber ggf. besser zum Drucken geeignet und lassen sich auch an Rechnern öffnen, an denen Jupyter nicht installiert ist. * In der Datei [cheat_sheet_python.py](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/cheat_sheet_python.py) ([Version mit Kommentaren und Erklärungen](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/cheat_sheet_python_kommentiert.py)) befindet sich eine Wiederholung der wichtigsten Konzepte, die wir bisher kennengelernt haben. Wir empfehlen Ihnen, diese Datei als Grundlage für Ihr persönliches "Cheat Sheet" zu verwenden und alles, was Sie sich über Python merken wollen, an einem zentralen Ort zu sammeln. * In der Datei [Zwischenstand.xlsx](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/Zwischenstand.xlsx) können Sie die Anzahl der eingegangenen richtigen Lösungen für jede Übungsaufgabe einsehen. * Vielen Dank für Ihr ausführliches Feedback im [Feedbackformular](https://goo.gl/forms/fxY1WRiNgyp9FQ1U2)! Wir werden Ihre Vorschläge und Kommentare bei der Gestaltung zukünftiger Vorlesungen und Übungsaufgaben bedenken. * Wenn Sie im Jupyter-Notebook ein Kästchen ausführen, das einen User-Input enthält, sehen Sie am linken Rand ein Sternchen: `[*]` Dieses Zeichen besagt, dass der Interpreter wartet. Wenn Sie versuchen, ein anderes Kästchen auszuführen, bevor der Interpreter die vorige Aufgabe beendet hat, sehen Sie überall nur noch `[*]` und kein anderes Feld wird ausgeführt. Um das Notebook zurückzusetzen, können Sie entweder den Kernel neustarten (in der Toolbar oben) oder einfach das Notebook schließen, Jupyter schließen und alles neu starten. * In VSCode ist standardmäßig die Tastenkombination `Shift + Enter` mit einer anderen Funktion belegt als der, die wir zum Ausführen von Pythondateien verwenden wollen. Sie können diese Einstellung ändern, indem Sie die Command Palette mit `Ctrl + Shift + P` öffnen, `preferences keyboard shortcuts` eingeben und die verfügbaren Aufgaben nach dem Stichwort "python" filtern. Wählen Sie jetzt den Befehl "Python-Datei im Terminal ausführen" aus, doppelklicken Sie in diese Zeile und drücken Sie `Shift + Enter`. Den neuen Shortcut können Sie mit einem weiteren Druck auf `Enter` bestätigen. Ab jetzt führt VSCode Ihre Pythondateien korrekt aus. * Bei einigen Studierenden wurde beim Ausführen der Pythondatei keine Ausgabe angezeigt, obwohl der Pythoncode korrekt geschrieben war. Falls Ihnen das passiert, prüfen Sie bitte, ob im Terminal der Befehl die Sequenz `pythonw.exe` enthält. Dieser Pythonmodus ist ein "stiller Modus", der Ausgaben und Fehlermeldungen unterdrückt. Wechseln Sie zum normalen Pythonmodus, indem Sie in der Command Palette `python select interpreter` eintippen und einen Interpreter auswählen, der eine Python-3-Version mit einer Datei namens `python.exe` (ohne w) ausführt. Nachdem Sie diese Auswahl getroffen haben, können Sie Ihr Programm erneut ausführen. * Sie können jederzeit Feedback zum Kurs oder Verständnisfragen im [anonymen Formular](https://docs.google.com/forms/d/e/1FAIpQLSdCBig5w41mdardPaqZqnKyEITqzjKcI9u1sAmrbcfbYj-8ww/viewform) an uns schicken. Ihr Input wird dann in der jeweils nächsten Vorlesungssitzung besprochen. * Wenn Sie die Vorlesungsskripte auf einem Mac-Computer herunterladen, wird eventuell die Dateiendung `.txt` angefügt. Dadurch ist das Notebook in Jupyter nicht ausführbar. Sie können im Finder in den Einstellungen zur Datei die Endung entfernen, sodass der ursprüngliche Dateiname (endet mit `.ipynb`) wiederhergestellt wird. * In VSCode kam es zu Verwirrung, weil es mehrere Befehle zum Ausführen von Python-Code gibt. Bitte wählen Sie stets "Python: Run File in Terminal" (deutsch: "Python-Datei im Terminal ausführen"), um Ihr Programm ordnungsgemäß zu starten. * Einige englischsprachige Skripte als Ergänzung zum Kurs finden Sie [hier](https://github.com/cltl/python-for-text-analysis). Unter _Chapters_ sind Notebooks zu finden, die Sie genau wie bei uns im Kurs öffnen und durcharbeiten können. Die Themenaufteilung ist dort anders als bei uns, aber als Ergänzung zum deutschsprachigen Material können Sie diese Seite nutzen. * Wenn Sie Informatik studieren, können Sie den Kurs **nicht** für die Module CL1 bis CL6 anrechnen. Falls Sie noch keine Python-Vorkenntnisse haben, können Sie einen Schein bekommen, der für den fächerübergreifenden Wahlbereich gültig ist. ##
Organisatorisches
Der Kurs wird mit einem Beteiligungsnachweis (BN) abgeschlossen. Um den BN zu erwerben, müssen Teilnehmende mindestens 50% der wöchentlichen Übungsaufgaben (jeweils ca. 6 bis 8 Aufgaben) sinnvoll bearbeitet haben. **Dienstags** findet von 16:30 bis 18:00 in Raum **24.21.03.62-64** die Vorlesung statt. **Mittwochs** findet von 16:30 bis 18:00 in Raum **24.21.03.62-64** die Übungssitzung statt, in der die Aufgaben gelöst und praktische Fragen geklärt werden können. Es gibt weder dienstags noch mittwochs eine Anwesenheitspflicht. Es wird dringend empfohlen, mindestens an den Übungssitzungen regelmäßig teilzunehmen. Die Lösung der Übungsaufgaben wird in den Sitzungen kontrolliert. ##
Installationshinweise
Um Python auf Ihrem eigenen System einzurichten, empfehlen wir die Installation von [anaconda](https://www.anaconda.com/download/) (Pythonversion 3.6 oder 3.7). Falls bei der Installation Probleme auftreten, sprechen Sie uns bitte an, damit wir Sie unterstützen können. Da die Vorlesungen und Übungen in einem PC-Pool stattfinden, können Sie in diesem Kurs durchgehend die Uni-Computer nutzen. Wenn es Ihnen mit geringem finanziellem, technischem und logistischem Aufwand möglich ist, empfehlen wir allerdings, einen eigenen Laptop mitzubringen. Als Editor für die Pythondateien im Kurs verwenden wir [VSCode](https://code.visualstudio.com/). ##
Unterrichtsmaterialien
Die Vorlesungsskripte haben die Form von interaktiven [Jupyter Notebooks](http://jupyter.org/). Sie können die einzelnen Skripte herunterladen (Rechtsklick, "Ziel speichern unter" bzw. "Save link as") und dann den Ordner, der die Dateien enthält, in der Kommandozeile öffnen (eine Anleitung dazu finden Sie z.B. [hier für Windows](https://www.tippscout.de/kommandozeile-ordner_tipp_3658.html), [hier für Linux](https://wiki.ubuntuusers.de/Shell/Einf%C3%BChrung/), [hier für Mac](https://www.tippscout.de/finder-terminal-ordner_tipp_6336.html)). Geben Sie dann in der Kommandozeile `jupyter notebook` ein und bestätigen Sie die Eingabe mit `Enter`. In Ihrem Browser öffnet sich eine Übersicht über alle Notebooks im Ordner. Wenn Sie ein Notebook auswählen, öffnet es sich in einem neuen Tab und Sie können damit arbeiten. Falls Sie nicht mit `anaconda` arbeiten, installieren Sie bitte Jupyter nach der Anleitung auf der offiziellen [Webseite](http://jupyter.org/install). ##
Notebooks
* [2018-10-09 Intro](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-09%20Intro.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-09%20Intro.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-09%20Intro.html)) * [2018-10-16 Schleifen, Bedingungen](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-16%20Schleifen%2C%20Bedingungen.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-16%20Schleifen%2C%20Bedingungen.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-16%20Schleifen%2C%20Bedingungen.html)) * [2018-10-23 Dictionarys, Input, Zufallszahlen](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-23%20Dictionarys%2C%20Input%2C%20Zufallszahlen.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-23%20Dictionarys%2C%20Input%2C%20Zufallszahlen.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-23%20Dictionarys%2C%20Input%2C%20Zufallszahlen.html)) * [2018-10-30 Wiederholung Dictionarys, Dateien, None](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-30%20Wiederholung%20Dictionarys%2C%20Dateien%2C%20None.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-30%20Wiederholung%20Dictionarys%2C%20Dateien%2C%20None.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-10-30%20Wiederholung%20Dictionarys%2C%20Dateien%2C%20None.html)) * [2018-11-06 Funktionen, Module, Namespaces, Kontrollfluss](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-06%20Funktionen%2C%20Module%2C%20Namespaces%2C%20Kontrollfluss.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-06%20Funktionen%2C%20Module%2C%20Namespaces%2C%20Kontrollfluss.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-06%20Funktionen%2C%20Module%2C%20Namespaces%2C%20Kontrollfluss.html)) * [2018-11-13 cheat_sheet_python.py](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/cheat_sheet_python.py) * [2018-11-13 cheat_sheet_python_kommentiert.py](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/cheat_sheet_python_kommentiert.py) * [2018-11-20 Mengen, REPL, Dokumentation, Recherche](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-20%20Mengen%2C%20REPL%2C%20Dokumentation%2C%20Recherche.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-20%20Mengen%2C%20REPL%2C%20Dokumentation%2C%20Recherche.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-20%20Mengen%2C%20REPL%2C%20Dokumentation%2C%20Recherche.html)) * [2018-11-27 String Formatting, Reguläre Ausdrücke](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-27%20String%20Formatting%2C%20Regulaere%20Ausdruecke.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-27%20String%20Formatting%2C%20Regulaere%20Ausdruecke.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-11-27%20String%20Formatting%2C%20Regulaere%20Ausdruecke.html)) * [2018-12-04 Fehlerbehandlung und Fehlervermeidung](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-04%20Fehlerbehandlung%20und%20Fehlervermeidung.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-04%20Fehlerbehandlung%20und%20Fehlervermeidung.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-04%20Fehlerbehandlung%20und%20Fehlervermeidung.html)) * [2018-12-11 Tupel, Comprehensions, Rekursion](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-11_Tupel_Comprehensions_Rekursion.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-11_Tupel_Comprehensions_Rekursion.pdf)) * [2018-12-18 Programmierstil, Linting, Debugger](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-18%20Programmierstil%2C%20Linting%2C%20Debugger.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-18%20Programmierstil%2C%20Linting%2C%20Debugger.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2018-12-18%20Programmierstil%2C%20Linting%2C%20Debugger.html)) * [2019-01-08 Wiederholung mit 2. Cheat Sheet](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-08_Wiederholung_Cheat_Sheet_II.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-08_Wiederholung_Cheat_Sheet_II.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-08_Wiederholung_Cheat_Sheet_II.html), [[.py]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/Cheat_Sheet_II.py)) * [2019-01-15 Strukturierte Formate](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-15%20Strukturierte%20Formate.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-15%20Strukturierte%20Formate.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-15%20Strukturierte%20Formate.html)) * [2019-01-22 Arbeiten mit Texten](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-22_Arbeiten_mit_Texten.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-22_Arbeiten_mit_Texten.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-22_Arbeiten_mit_Texten.html)) * [2019-01-29 Ausblick (Virtuelle Environments, Objektorientierung, Command-Line-Argumente, GUIs)](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-29%20Ausblick.ipynb) ([[pdf]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-29%20Ausblick.pdf), [[html]](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/2019-01-29%20Ausblick.html)) ##
Übungsaufgaben
* [Übungen für den 10.10.2018: Variablen, VSCode-Elemente, VSCode/Ordner, Datentypen, Pythondateien, Tooltips](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-01.zip) * [Übungen für den 17.10.2018: Schleifen, Bedingungen, String-Methoden, Vergleichsoperatoren](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-02.zip) * [Übungen für den 24.10.2018: Random, Dictionarys, Indexing, Slicing, Stringmethoden](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-03.zip) * [Übungen für den 31.10.2018: OS, Dateien, Dictionarys, Stringmethoden](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-04.zip) **Achtung:** Aufgabe 04-00 wird nicht bewertet. * [Übungen für den 07.11.2018: Funktionen, Module, Dictionarys, OS](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-05.zip) * Als Übung für die 6. Woche sollen Sie ein [Quiz](https://goo.gl/forms/D510tGAyGopNnANA2) ausfüllen. Geben Sie Ihre Uni-Mailadresse im Formular an. Beachten Sie, dass die Übung als bestanden gilt, wenn Sie die volle Punktzahl erreichen (Sie können Ihre Antworten aber beliebig oft editieren). * [Übungen für den 21.11.2018: Mutability, Recherche, Mengen](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-07.zip) * [Übungen für den 28.11.2018: String-Formatting, Reguläre Ausdrücke](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-08.zip) * [Übungen für den 05.12.2018: Fehler korrigieren, try und except](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-09.zip) * [Übungen für den 12.12.2018: Comprehensions, Rekursion](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-10.zip) * [Übungen für den 09.01.2019: Wiederholung - Bool-Operationen, String Formatting, reguläre Ausdrücke, User-Input, While-Schleifen](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-12.zip) * [Übungen für den 16.01.2019: JSON, Dateien lesen und schreiben, POS-Tagging verarbeiten](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-13.zip) * [Übungen für den 23.01.2019: N-Gramme erzeugen, N-Gramme verwenden](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/python-uebungen-14.zip) * [Übung für den 30.01.2019: Quiz](https://goo.gl/forms/qcRaHxWmyXgIZDkG3) ##
Weihnachtsprojekt: Sprichwortgenerierung
* Übung für den 19.12.2018: [Gruppenprojekt (Mastodon-Bot)](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/11_projekt.zip). Alle Teilnehmenden aus dieser Sitzung erhalten einen Bonuspunkt. * Die Ergebnisse der drei Gruppen sind [hier hinterlegt](http://user.phil.hhu.de/~seyffarth/classes/python/python2018/ergebnisse.zip). Der Bot ist unter [https://botsin.space/@python2018bot](https://botsin.space/@python2018bot) zu finden.
This space is intentionally left blank