193
Compulsory

When a course instance has been created from a template, the course instance will be in this state

  • Data is usually still incomplete and everything can still be edited.
  • Lecturers or secretaries can move the state forward to Edited.

Inhalte

Studentinnen und Studenten erlernen die Grundlagen des Programmierens im Kleinen.

Es werden die Grundlagen der Berechenbarkeit (Lambda-Kalkül, primitive Rekursion, Fixpunkte), eine Einführung in die Theorie der Programmiersprachen (Syntax (Backus-Naur-Form), operationale Semantik, Daten und Programm) gegeben.

Es werden Konzepte funktionaler Programmierung (z. B. elementare Datentypen, Ausdrücke, Funktionsdefinition, Rekursion, Funktionsabstraktion, Closure, Funktionen höherer Ordnung, universelle Polymorphie) und deren Ausführung (Auswertungsstrategien) eingeführt. Es werden Techniken zum Beweisen von Programmeigenschaften (Termersetzung, strukturelle Induktion, Terminierung, Church-Rosser-Theorem) und deren Anwendungen (Typsysteme, Typherleitung und Typüberprüfung) eingeführt.

Grundlegende Abstraktionen wie algebraische und abstrakte Datentypen und modularer Programmentwurf, sowie Nebenwirkungen (z. B. durch Monaden) anhand von Ein- und Ausgabe werden behandelt.

Contents: 

Introduction to Functional Programming (Haskell): 

  • Syntax (Backus-Naur Form) 
  • primitive data types, lists, tuples, strings 
  • expressions, function definitions, recursion and iteration 
    • evaluation strategies of functional programs
    • higher-order functions
    • polymorphism 
    • type system and verification 
  • Algebraic and abstract data types 
  • input, output and Monads
  • searching and sorting algorithms 

Introduction of computability: 

  • Lambda calculus 
  • Primitive Recursion 
  • μ-Recursion 

Proofs of program properties: 

  • Term Rewriting 
  • Structural induction 
  • Termination 

Implementation and programming technique: 

  • Modular program design

Cross-language

193 076
Compulsory

Expectant Mother

Not dangerous
Partly dangerous
Alternative Course
Dangerous

Nursing Mother

Not dangerous
Partly dangerous
Alternative Course
Dangerous

AncillaryCourses

Übung zu ProInformatik II: Funktionale Programmierung

Expectant Mother

Not dangerous
Partly dangerous
Alternative Course
Dangerous

Nursing Mother

Not dangerous
Partly dangerous
Alternative Course
Dangerous