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

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

Programmieren I

Plot Notenverteilung Klausur

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 15.04.2024 13:15 Uhr
Zeit und Ort Montag, 13:15 - 14:45, INF 328/SR25
Montag, 15:15 - 16:45, INF 328/SR25
Tutorien Dana-Cristina Simedrea
Tutorium + Übung
Zeit:
Donnerstag, 13:15-16:45
Ort:
SR 27, INF 326 (2.OG) ab 02.05.2024
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.

Kursübersicht

Datum Sitzung Materialien
15.04.2024 Organisatorisches, Warum Python, Erstes Herantasten;
Datentypen, Variablen; Operatoren; Hilfe
Folien 01,
Folien 02
22.04.2024 Sequentielle Datentypen (Strings, Listen, Tupel);
Weitere Datentypen (Dict, Set, Frozenset)
Folien 03,
Folien 04
29.04.2024 Pair-Programming, Methoden, Weitere built-in Funktionen;
Unicode vs. Byestring, Weitere Funktionen, F-Strings
Folien 05,
Folien 06
06.05.2024 Kontrollstrukturen;
Funktionen
Folien 07,
Folien 08
13.05.2024 Algorithmus, Module;
Zen of Python, Referenzen, shallow/deep copies
Folien 09,
Folien 10
20.05.2024 Feiertag (Pfingstmontag) -
27.05.2024 Keine Präsenzvorlesung -> Videos im Moodle
Mutable Default Arguments, Rekursion;
Dateien

Folien 11,
Folien 12
03.06.2024 Exceptions, PEP-8;
Unpacking, (Advanced) String-Formatting
Folien 13,
Folien 14
10.06.2024 Logging, reguläre Ausdrücke;
Anonyme Funktionen (lambda), map/filter/reduce
Folien 15,
Folien 16
17.06.2024 list/set/dict comprehensions, Generatoren/Iteratoren;
Dekoratoren
Folien 17,
Folien 18
24.06.2024 Kursevaluation, Tests (Pytest);
Objektorientierte Programmierung (OOP) I
Folien 19,
Folien 20
01.07.2024 Objektorientierte Programmierung (OOP) II, Vererbung;
Mehrfachvererbung
Folien 21,
Folien 22
08.07.2024 Mob-Programming (Hangman) Code auf Moodle
15.07.2024 Versionsverwaltung (git);
Mob-Programming (Hangman)
keine Folien;
github
22.07.2024
29.07.2024 Klausur (ab 13:00 s.t.) INF 306, SR 20 (1. OG)

Literatur

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