Lehrveranstaltungen

Programmiersprachen

Dozent:innen: Univ.-Prof. Dr. Sebastian Erdweg
Kurzname: Programmierspr.
Kurs-Nr.: 08.079.030
Kurstyp: Vorlesung/Übung

Voraussetzungen / Organisatorisches

Empfohlene Vorkenntnisse: Inhalte der Vorlesungeen "Einführung in die Programmierung" und "Einführung in die Softwareentwicklung"

Digitale Lehre

Wie Sie wissen wird das kommende Semester bis auf Weiteres ausschließlich digital stattfinden können. Für die Veranstaltung Programmiersprachen haben wir uns folgendes Vorgehen vorgenommen:

  1. Vorlesungen werden von mir auf Video aufgezeichnet und Ihnen online zur Verfügung gestellt.
  2. Es wird wöchentliche Übungsaufgaben geben, die von Ihnen in Gruppen von 2-3 Personen bearbeitet werden.
  3. Anstelle klassischer Tutorien bieten wir Onlinesprechstunden an. Es gibt keine feste Zuordnung zu den Tutoren. Stattdessen können Sie Fragen über eine Art Ticketing-System einreichen und erhalten daraufhin Unterstützung per Nachricht oder Videokonferenz.
  4. Die Abgabe der wöchentlichen Übungsabgaben sind verpflichtend (Zulassungsvoraussetzung), werden jedoch nicht bewertet. Stattdessen führen wir Testate durch. Jede Woche wählen wir zufällig eine Reihe von Abgaben aus, die einem Tutor per Videokonferenz vorgestellt werden. Alle Gruppenmitglieder müssen in der Lage sein alle Aspekte der Abgabe zu erklären. Das Bestehen der Testate ist Zulassungsvoraussetzung für die Klausur.
  5. Wie die Klausur durchgeführt werden kann ist zum aktuellen Zeitpunkt noch unklar. Ich bitte von Fragen diesbezüglich abzusehen. Wir informieren Sie sobald es Klarheit gibt.

Zur Kommunikation verwenden wir ausschließlich Microsoft Teams. Bitte installieren Sie sich die App und melden Sie sich mit Ihrer Uni-Mainz Emailadresse an. Dann verwenden Sie den Code "5klw9hs" um dem Team "ProgLang Course" beizutreten (https://support.microsoft.com/en-us/office/use-a-link-or-code-to-join-a-team-c957af50-df15-46e3-b5c4-067547b64548). Nutzen Sie die aktuelle Woche um sich mit Teams vertraut zu machen und testen Sie Ihr Videokonferenz-Setup mit Kommilitonen. Gerne können Sie sich mit Ihren Kommilitonen im Kanal "random" austauschen.
 

Empfohlene Literatur

"Programming Languages: Application and Interpretation" by Shriram Krishnamurthi. Online at http://cs.brown.edu/courses/cs173/2012/book/

Inhalt

Programmiersprachen sind das wohl wichtigste Werkzeug zur Entwicklung von Software, und das Erlangen von Programmierkompetenzen setzt immer zunächst die Beherrschung einer Programmiersprache voraus. In der Veranstaltung "Programmiersprachen" wollen wir untersuchen, was eine Programmiersprache eigentlich ausmacht, woraus sie besteht. Dazu untersuchen wir grundlegende Programmierkonzepte: wozu sie dienen und wie sie funtionieren. Wir behandeln die folgenden Konzepte:

  1. Syntax
  2. Intepreter Semantik
  3. Variablen als Platzhalter
  4. Funktionen erster und höherer Ordnung
  5. Algebraische Datentypen und Pattern Matching
  6. Rekursion
  7. Veränderliche Variablen und Speicherverwaltung
  8. Objektorientierung
  9. Operationale Semantik

Termine

Datum (Wochentag) Zeit Ort
23.04.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
30.04.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
07.05.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
14.05.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
28.05.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
04.06.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
18.06.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
25.06.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
02.07.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude
09.07.2020 (Donnerstag) 12:00 - 14:00 00 521 N 1
1342 - Naturwissenschaftliches Hörsaalgebäude