Ruprecht-Karls-Universität Heidelberg
Institut für Computerlinguistik

Bilder vom Neuenheimer Feld, Heidelberg und der Universität Heidelberg

Programmieren I

Ankündigungen

Kursbeschreibung

Studiengang Modulkürzel Leistungs-
bewertung
BA-2010 P I 6 LP
ÜK - 3 LP (nicht für CL)
Dozent Danny Rehl
Veranstaltungsart Vorlesung / Übung
Sprache Deutsch
Erster Termin 14.10.2024 10:15 Uhr
Zeit und Ort Montag, 10:15 - 11:45; INF 328, SR 25
Montag, 13:15 - 14:45; INF 328, SR 25
Tutorien Aaron Henning
Zeit und Ort: siehe Moodle
Louis Müller
Zeit und Ort: siehe Moodle
Commitment-Frist Wird per E-Mail institutsweit bekanntgegeben, vermutlich ein paar Tage/Wochen vor Vorlesungsende.

Teilnehmerkreis

  • Für Studierende der Computerlinguistik (ab 25 %) für 6 ECTS
  • Bachelor-Studierende anderer Fächer als ÜK-Veranstaltung für 3 ECTS
  • Andere Studierende sind nur für die hörende Teilnahme zugelassen

FAQ

Bitte schauen Sie auf die FAQ-Seite, bevor Sie uns kontaktieren. Für wichtige Fragen, die dort nicht beantwortet werden, schreiben Sie gerne eine E-Mail an prog1@cl.uni-hei... Wir nehmen die Frage dann auf oder beantworten Ihre E-Mail. Mit einer E-Mail an "prog1@cl.uni-hei..." erreichen Sie den Dozenten und die Tutor*innen.

Teilnahmevoraussetzungen

  • Grundkenntnisse in Unix (entsprechend der Pool-Einführung)
  • Es sind keine Programmierkenntnisse im Voraus nötig

Leistungsnachweis

3 ECTS

  • Bearbeiten der wöchentlichen Übungsaufgaben
  • Bestehen der Übungsaufgaben mit mind. Note 4,0

6 ECTS

  • Bearbeiten der wöchentlichen Übungsaufgaben
  • Prüfungszulassung erreichen (80 % der Übungsaufgaben)
  • Bestehen der Abschlussprüfung (Klausur)

Hinweis für Computerlinguist*innen (gilt nicht für ÜK/3 ECTS): Die erfolgreich bestandene Prüfung ist Teil der Orientierungsprüfung.

Inhalt

Ziel dieser Vorlesung ist, Studierenden einen ersten Überblick über die systematische Entwicklung von wartbaren und korrekten Programmen zu geben. Dies geschieht anhand der objektorientierten, interpretierten Sprache Python, die mit einem einfachen Objektmodell, guter Unterstützung der Modularisierung und einer reichhaltigen Bibliothek einen raschen Zugang zu modernen Programmiertechniken und zudem weitgehende Plattformunabhängigkeit bietet. Dabei wird versucht, den Stoff u.a. anhand konkreter (computerlinguistischer) Fragestellungen unter der Einhaltung von Standards und Konventionen zu entwickeln.

Voraussichtlicher Kursplan

Datum Sitzung Materialien
14.10.2024 Organisatorisches, Warum Python, Erstes Herantasten;
Datentypen, Variablen; Operatoren; Hilfe
Folien 01
Folien 02
21.10.2024 Sequentielle Datentypen (Strings, Listen, Tupel);
Weitere Datentypen (Dict, Set, Frozenset)
Folien 03
Folien 04
28.10.2024 Pair-Programming, Methoden, Weitere built-in Funktionen;
Weitere Funktionen, F-Strings, Kontrollstrukturen
Folien 05
Folien 06
04.11.2024 Kontrollstrukturen (Fortsetzung), Funktionen;
Algorithmus
Folien 07
Folien 08
11.11.2024 Module, Mutable Default Arguments;
Zen of Python, Referenzen, shallow/deep copies
Folien 09
Folien 10
18.11.2024 Rekursion, Dateien;
Exceptions, PEP-8
Folien 11
Folien 12
25.11.2024 Unpacking, (Advanced) String-Formatting, Logging;
Reguläre Ausdrücke
Folien 13
Folien 14
02.12.2024 Anonyme Funktionen (lambda), map/filter/reduce;
list/set/dict comprehensions, Generatoren/Iteratoren
Folien 15
Folien 16
09.12.2024 Dekoratoren;
Tests (Pytest)
Folien 17
Folien 18
16.12.2024 Weihnachtsquiz;
Objektorientierte Programmierung (OOP) I (Schnuppervorlesung)
Folien 19
Folien 20
13.01.2025 Objektorientierte Programmierung (OOP) II, Vererbung;
Mehrfachvererbung
20.01.2025 Kursevaluation;
Puffer/Weitere Themen (tba)
27.01.2025 Wiederholung/Fragestunde;
Klausur 13:00 Uhr c. t.
03.02.2025 Weitere Themen (tba)

Literatur

  • Offizielle Python-Dokumentation unter https://docs.python.org
  • Weitere Literatur wird in der Vorlesung bekannt gegeben.
zum Seitenanfang