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 25.04.2022
Zeit und Ort Montag, 10:15–14:45
INF 328, SR 25 (inkl. Mittagspause)
Tutorien Dana-Cristina Simedrea
Zeit: Dienstag, 10:15–11:45 (ab 26.04.2022)
Ort: INF 327, SR 3

Maximilian Hartmann
Zeit: Freitag, 13:15–14:45
Ort: INF 329, SR 26 sowie per Stream in HeiConf (weitere Informationen im Moodle)
Commitment-Frist 07.07.2022 - 13.07.2022

Teilnehmerkreis

  • Für Studierende der Computerlinguistik (ab 25 %).
  • Bachelor-Studierende anderer Fächer können den Kurs im Rahmen einer ÜK-Veranstaltung für 3 ECTS besuchen.
  • Der Besuch als ÜK-Veranstaltung umfasst nicht den Abschluss durch eine Klausur oder entsprechenden Leistungsnachweis.

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

  • Bearbeiten der wöchentlichen Übungsaufgaben
  • Prüfungszulassung erreichen
  • Bestehen der Abschlussprüfung (nur bei 6 ECTS)

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
25.04.2022 Organisatorisches; Warum Python; Erstes Herantasten Folien
25.04.2022 Variablen; Zuweisung/Referenzen; Erste Datentypen; Operatoren Folien
02.05.2022 Sequenzielle Datentypen: Strings, Listen, Tupel Folien
02.05.2022 Dictionaries, Sets, Frozensets Folien
09.05.2022 Pair Programming, Methoden, Mehr Funktionen/Operatoren Folien
16.05.2022 Tipps & Tricks, Präzedenztabelle, Unicode- vs. Bytestring, weitere Funktionen Folien
16.05.2022 Kontrollstrukturen Folien
23.05.2022 Funktionen Folien
23.05.2022 Algorithmen & Module Folien
30.05.2022 Module, Zen of Python, Referenzen/Kopien, mutable default arguments Folien
30.05.2022 Rekursion Folien
06.06.2022 Pfingstmontag (Feiertag) -
13.06.2022 Dateien (In-/Output) Folien
13.06.2022 Exceptions, PEP-8 Folien
20.06.2022 String-Formatting, Logging Folien
20.06.2022 Reguläre Ausdrücke Folien
27.06.2022 Funktionale Programmierung (lambda, map, filter, reduce) Folien
27.06.2022 list/dict/set comprehensions, Generatoren Folien
04.07.2022 Dekoratoren (krankheitsbedingt kein Präsenztermin, Videos im Moodle) Folien
04.07.2022 Unit-Testing mit Pytest (krankheitsbedingt kein Präsenztermin, Videos im Moodle) Folien
11.07.2022 Objektorientierte Programmierung (OOP) I Folien
11.07.2022 OOP II (inkl. Vererbung) Folien
18.07.2022 OOP III (Mehrfachvererbung) Folien
18.07.2022 Offene Fragestunde
25.07.2022 Klausur, INF 306 SR 20 (1. OG)
25.07.2022 Retroperspektive, Besprechung Klausur

Literatur

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