GymInf Intensivwoche 2020
Organization of Training Week for Swiss Highschool Informatics Teachers, Teaching of Course "Programmiersprachenkonzepte"
USI, Lugano, Switzerland
Mon, Aug 3, 2020 — Wed, Aug 5, 2020Matthias organizing the 2020 GymInf high school informatics teacher training week at USI in Lugano, and teaching one of the courses: programming language concepts.
Programmiersprachenkonzepte
Monday, August 3 to Saturday, August 8, we will host the Swiss German high school informatics teachers in the "Programming Language Concepts" module of the GymInf program at USI in Lugano.
This course is part of the GymInf program for future high school informatics teachers.
Description (German)
Es gibt eine unglaubliche Vielfalt von Programmiersprachen. Diese Sprachen bauen auf einigen fundamentalen Konzepte auf deren Verständnis für die Programmierung—und besonders für den Programmierunterricht—von grosser Bedeutung ist.
Nachdem die Module «Programmierung 1» und «Programmierung 2» die Imperative Programmierung—basierend auf der Idee der Turing-Maschinen—und die darauf aufbauende Objekt-Orientierte Programmierung behandeln, führt dieses Modul die komplementäre Funktionale Programmierung—basierend auf der Idee des Lambda-Kalküls—ein und behandelt Konzepte wie Reinheit, Funktionen als Werte, Lambdas, Komposition, Continuations, und Monade. Wir behandeln danach das sprachübergreifende Konzept der Typen (Statische und Dynamische Typensysteme; Algebraische Datentypen: Summen-, Produkt-, und Exponential-Typen; Vererbungs- und Parametrische Polymorphie) und generell die Idee einer Formalen Semantik für Programmiersprachen und die didaktische Idee der Notionalen Maschinen.
Learning Objectives (German)
Implementation einfacher Programme in funktionalem Stil; Refaktorisierung zwischen imperativen und funktionalen Programmen Unterscheidung zwischen statischen und dynamischen Typsystemen; Identifikation und Programmierung mit algebraischen Datentypen; Programmierung mit Parametrischer und Vererbungs-Polymorphie Interpretation fundamentaler Sprachkonzepte mit formellen Semantik-Regeln; Verwendung von Notionalen Maschinen zur Erklärung von Sprachkonzepten
Prerequisites / Dependencies (German)
Das Modul setzt grundsätzliche Programmierkenntnisse (z.B. aus dem Modul «Programmierung 1») voraus. Es baut im zweiten Teil auch auf Kenntnissen der objekt-orientierten Programmierung (z.B. aus dem Modul «Programmierung 2») auf.