funktionale programmierung - lva 185.a03, vu 2.0, ects ......john w. backus.can programming be...

47
A Moti- vation B Lern- ergeb- nisse C Ablauf D Ressource Funktionale Programmierung LVA 185.A03, VU 2.0, ECTS 3.0 WS 2019/2020 – Vorbesprechung – (Stand: 30.09.2019) Aktualisiert: 28.10.2019 Jens Knoop Technische Universit¨ at Wien Information Systems Engineering Compilers and Languages compilers lang uages 1/47

Upload: others

Post on 25-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Funktionale ProgrammierungLVA 185.A03, VU 2.0, ECTS 3.0

WS 2019/2020

– Vorbesprechung –

(Stand: 30.09.2019)

Aktualisiert: 28.10.2019

Jens Knoop

Technische Universitat WienInformation Systems Engineering

Compilers and Languages

compilerslanguages

1/47

Page 2: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Funktionale Programmierung im WS 2019/20

A Motivation

B L3: Lernergebnisse, Lernaktivitaten, Leistungsnachweise

C Organisation, Ablauf

D Ressourcen

2/47

Page 3: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcenA

Motivation

3/47

Page 4: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Funktionale Programmierung

...komplementiert und rundet die grundlegenden Lehrveran-staltungen zu wichtigen klassischen Programmierparadigmenund -stilen ab:

I Funktionale ProgrammierungLVA 185.A03 Funktionale ProgrammierungVU 2.0 ECTS 3.0

I Objektorientierte ProgrammierungLVA 185.A01 Objektorientierte ProgrammiertechnikenVU 2.0 ECTS 3.0

I Logikorientierte ProgrammierungLVA 185.A12 Logikprogrammierung und ConstraintsVU 4.0 ECTS 6.0

...die alle auch in zugehorigen fortgeschrittenen Lehrveranstal-tungen fortgefuhrt und vertieft werden.

4/47

Page 5: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Generalthema der Lehrveranstaltung

...der funktionale Programmierstil, insbesondere:

I Programme als Systeme (wechselweise) rekursiver Re-chenvorschriften.

I Lambda-Kalkul als rigorose semantische Fundierungfunktionaler Programmiersprachen und Programmierung.

I Auswertungsordnungen fur Ausdrucke und Programme,insbesondere sofortige und verzogerte Auswertung (engl.eager, lazy evaluation).

I Programmieren mit Funktionen als Argument und Resul-tat von Funktionen (sog. Funktionen hoherer Ordnung).

I Polymorphie auf Datentypen und Funktionen.

I ...

I Umsetzung, Anwendung der Konzepte in Haskell.

5/47

Page 6: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Leitfrage

Can programming be liberatedfrom the von Neumann style?

John W. Backus (1924-2007)Turing Award Preistrager 1977

John W. Backus. Can Programming be Liberated from the von

Neumann Style? A Functional Style and its Algebra of Programs.

Communications of the ACM 21(8):613-641, 1978. (Turing Award

Speech)6/47

Page 7: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Lehrveranstaltungsgliederung (1)

I Teil I: Einfuhrung

– Warum fkt. Programmierung? Warum mit Haskell?Beispiele und Werkzeuge.

I Teil II: Grundlagen

– Elementare Typen, Funktionen, Datentypdeklarationen.

I Teil III: Applikative Programmierung

– Funktionen uber elementaren Werten und Resultaten.

I Teil IV: Funktionale Programmierung

– Funktionen uber Funktionen, mit Funktionen als Argu-ment und Resultat; Polymorphie auf Funktionen undDatentypen.

7/47

Page 8: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Lehrveranstaltungsgliederung (2)

I Teil V: Fundierung funktionaler Programmierung

– λ-Kalkul, Auswertungsordnungen, Typprufung,Typinferenz.

I Teil VI: Weiterfuhrende Konzepte

– Ein-/Ausgabe, Fehlerbehandlung, Modulkonzept, Pro-grammierprinzipien, Programmieren mit Stromen undFunktionen hoherer Ordnung.

I Teil VII: Abschluss und Ausblick

– Abschluss, Ausblick.

I Literaturverzeichnis

I Anhange

– Formale Rechenmodelle– Andere funktionale Sprachen

8/47

Page 9: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Zum Einstieg...drei kurze und suffig zu lesende Artikel aus den Jahren:

1998: Philip Wadler. Why no one uses Functional Languages.ACM SIGPLAN Notices 33(8):23-27, 1998.

...there is a tension between building useful systems andextending the frontiers of research 〈note: overall, thearticle is a plea for functional programming〉.

2011: Yaron Minsky. OCaml for the Masses. Communicationsof the ACM 54(11):53-58, 2011.

...why the next language you learn should be functional!

2018: Neil Savage. Using Functions for Easier Programming.Communications of the ACM 61(5):29-30, 2018.

...when the limestone of imperative programming hasworn away, the granite of functional programming willbe revealed underneath 〈quote of Simon Peyton Jones〉.

9/47

Page 10: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Warum die nachste Sprache...funktional sein sollte:

I Konrad Hinsen. The Promises of Functional Program-ming. Computing in Science and Engineering 11(4):86-90, 2009.

...adopting a functional programming style could makeyour programs more robust, more compact, and moreeasily parallelizable.

I Konstantin Laufer, Geoge K. Thiruvathukal. The Promi-ses of Typed, Pure, and Lazy Functional Programming:Part II. Computing in Science and Engineering 11(5):68-75, 2009.

...this second installment picks up where Konrad Hinsen’sarticle “The Promises of Functional Programming” [...]left off, covering static type inference and lazy evaluationin functional programming languages.

10/47

Page 11: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Functional Programming is Fun!

...weil funktionale Programmierungetwas von der Eleganz der Mathematik

in die Programmierung bringt!

Peter Pepper. Funktionale Programmierungin OPAL, ML, Haskell und Gofer.

Springer-V., 2. Auflage, 2003.

11/47

Page 12: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wo fkt. Progr. heute angewendet wird (1)

...von Wissenschaft:

I Jerzy Karczmarczuk. Scientific Computation and Func-tional Programming. Computing in Science and Enginee-ring 1(3):64-72, 1999.

...modern functional programming languages and lazyfunctional techniques are useful for describing and imple-menting abstract mathematical objects in quantummechanics.

I Noah M. Daniels, Andrew Gallant, Norman Ramsey.Experience Report: Haskell in Computational Biology. InProc. 17th ACM SIGPLAN International Conference onFunctional Programming (ICFP 2012), 227-234, 2012.

...Haskell gives computational biologists the flexibility andrapid prototyping of a scripting language, plus the perfor-mance of native code.

12/47

Page 13: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wo fkt. Progr. heute angewendet wird (2)

...uber Wirtschaft:

I Curt J. Simpson. Experience Report: Haskell in the “RealWorld”: Writing a Commercial Application in a LazyFunctional Language. In Proceedings of the 14th ACMSIGPLAN International Conference on Functional Pro-gramming (ICFP 2009), 185-190, 2009.

...describe[s] the initial attempt of experienced businesssoftware developers with minimal functional programmingbackground to writ a non-trivial, business-critical applica-tion entirely in Haskell. ...discuss[es] the advantages anddifficulties of Haskell in these circumstances, with a par-ticular focus on issues that commercial developers findimportant but that may receive less attention from theacademic community.

13/47

Page 14: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wo fkt. Progr. heute angewendet wird (3)

...bis System- und Web-Programmierung:

I Iavor S. Dachki, Thomas Hallgren, Mark P. Jones, Rebe-kah Leslie, Andrew Tolmach. Writing System Software ina Functional Language: An Experience Report. In Pro-ceedings of the 4th International Workshop on Program-ming Languages and Operating Systems (PLOS 2007),Article No. 1, 5 Seiten, 2007.

...we describe our experience developing a prototype ope-rating system, House, in which the kernel, device drivers,and even a simple GUI, are all written in Haskell.

I Michael Snoyman. Developing Web Applications withHaskell and Yesod. O’Reilly, 2012.

...supports high-performing applications that are modular,type-safe, and concise.

14/47

Page 15: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wo fkt. Progr. heute angewendet wird (4)...ausgewahlte sechs weitere Vorzeigebeispiele:

I Philip Wadler. An angry half-dozen. ACM SIGPLAN No-tices 33(2):25-30, 1998.

...You’ve scrutinized functional languages. You’ve admiredthe elegance of lambda calculus, checked the benchmarksfrom the compilers, noted the security provided by strongtyping. Now you want to know if they have been used toserious purpose. Mathematical elegance is well and good,but will it run that mission-critical system?

Here are a half-dozen examplars of [serious] functionalprograms...

...insgesamt:

I Mihai Maruseac. Haskell: A Language for Modern Times.Crossroads, the ACM Magazine for Students 24(1):64-66,2017.

15/47

Page 16: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Also lautet der Beschluss,dass der Mensch was lernen muss.

Max und MoritzWilhelm Busch (1832-1908)

dt. Schriftsteller, satirischer Zeichner und Maler

B

L3: Lernergebnisse, Lernaktivitaten,Leistungsnachweise

16/47

Page 17: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Es war einmal...

...vor noch nicht sehr langer Zeit. Lehrinhalte wurden vermit-telt und gelernt; Lehrinhalte, Lehrziele, Lernziele waren eins...

17/47

Page 18: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Etwa so:...Ziel der LVA ist, Ihnen das Rustzeug fur Ihren Wissens- undFertigkeitserwerb in Theorie und Praxis zu vermitteln und andie Hand zu geben uber

I die grundlegenden Konzepte und Prinzipien funktionalerProgrammierung, ihrer theoretischen Fundierung, prak-tischen Umsetzung und Anwendung in funktionalen Pro-grammiersprachen und funktionaler Programmierung.

I den angemessenen und zweckmaßigen Einsatz funktiona-ler Programmierung und ihrer Konzepte und Prinzipienfur die Losung programmiertechnischer Aufgaben.

I die konkrete Umsetzung und Anwendung dieser Konzepteund Prinzipien in der ‘state-of-the-art’ Programmierspra-che Haskell, darunter auch Tipps, Tricks und mehr!

...die (positive) Beantwortung der Leitfrage: “Can programmingbe liberated from the von Neumann style?”

18/47

Page 19: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wandel: Vom vermitteln zum begleiten...

19/47

Page 20: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Vom Wissensvermittler in zum Lernbegleiter in

© VR Matyas, 10.04.201920/47

Page 21: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

...hochst veranlasst, unterstutzt:

3-Säulen der Umsetzung

10

Abb.: 3-Säulen-Modell zur Einführung von Lernergebnisorientierung (TUW)

© VR Matyas, 10.04.201921/47

Page 22: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Schone neue Welt......Lernen als industriell(ahnlich)er Prozess, als (Vorsicht: Eu-phemismus!) didaktischer Dreisprung aus

1. Qualitatsvorgabe: Lernergebnissen2. Produktion: Lernaktivitaten3. Qualitatssicherung: Lernergebnisprufungen

...die Universitat als Lernergebnisproduktionsbetrieb; mit Ihnenals hackelnden Lernergebnisarbeitern und Lernergebnisarbeite-rinnen, vornehm: Wissensarbeitern und Wissensarbeiterinnen.

Ich begleite Sie in/durch diesem/n durchgetakteten Prozess.

...und nun hinein: Willkommen in der Welt der Lernergebnisse,der (Produktions-) Methoden und Lernaktivitaten, Kompe-tenzbereiche und Leistungsnachweise.

22/47

Page 23: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

LernergebnisseNach positiver Absolvierung der LVA konnen Sie (u.a.)

1. die grundlegenden Prinzipien und Konzepte des fkt. Pro-grammierstils und seiner theoretischen Fundierung1.1 erlautern und von anderen Programmierstilen wie proze-

duraler, objektorientierter, logischer Prog. abgrenzen,1.2 am Bsp. von Haskell aufzeigen und illustrieren.

2. programmiertechnische Aufgabenstellungen im Kleinen2.1 in aufgabenangemessene Haskell-Programme umsetzen,2.2 aussagekraftige Testfalle fur ihre Validierung erstellen,2.3 die Programme mit dem Interpretierer Hugs ausfuhren.

3. die Bedeutung u. Auswertungsw. v. Haskell-Programmenerklaren und schrittweise mit Papier und Bleistift fur ver-schiedene Auswertungsordnungen ausfuhren.

4. das gewahlte Vorgehen sachlich und fachlich begrunden.5. Haskell-Prog. auf syn./sem. Korrektheit, Allgemeinheit,

Wiederverw., Eff.-/Perf.-eigensch., angemessene Verw.fkt. progr.-sprachl. Konzepte untersuchen und beurteilen.

23/47

Page 24: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Lernprozess: Methoden, Lernaktivitaten...zum Erreichen der Lernergebnisse:

1. Angeleitetes eigenstandiges Erlernen und Einuben: DurchVortrage und umgekehrtes Klassenzimmer angeleitetes ei-genstandiges Erlernen und Einuben der in den Lernergeb-nissen beschriebenen Fahigkeiten mithilfe zur Verfugunggestellter Lehr- und Lernunterlagen, programmier- undnichtprogrammiertechnischer Ubungsaufgaben und weite-rer nach Bedarf selbstgewahlter Materialien aus ergan-zend und vertiefend vorgeschlagenen Lehrbuchern, Tuto-rien und wissenschaftlichen Originalarbeiten.

2. Vorbild- und ruckmeldungsgeleitetes Lernen: Prasentie-ren, erlautern, begrunden, vergleichen, wertend gegen-uberstellen eigener und fremder Aufgabenlosungen aussachl. und fachl. Sicht in tutorgeleiteten Ubungsgruppen.

3. Selbsteinschatzungstests: Tests zur regelmaßigen Selbst-einschatzung und Selbstreflexion des eigenen bisherigenLernfortschritts und Lernerfolgs. 24/47

Page 25: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Kompetenzbereiche (adressiert; nicht ausdruckl. unterrichtet)

Fachliche und methodische Kompetenzen

I Fachliche K.: Wissen um Grundlagen, Fundierung, Umset-zung und Anwendung des funktionalen Programmierstils.

I Methodische K.: Sach- und fachgerechte Anwendung pro-grammiersprachlicher Konzepte des fkt. Programmierstils.

Kognitive und praktische Kompetenzen

I Kognitive K.: Abstraktes und mathematisch-logischesDenken, Analyse-, Verstandnis- und Problemlosefahigkeit.

I Praktische K.: Angemessene Anwendung von Haskell aufkonkrete programmiertechnische Aufgabenstellungen.

Soziale Kompetenzen und Selbstkompetenzen

I Soziale K.: Kommunikations-, Prasentations-, Argumen-tationsfahigkeit, Team- und Gruppenfahigkeit.

I Selbstk.: Selbstverantwortung, Selbstorganisation, Selbst-reflexion, Wissensdrang, Hartnackigkeit, Ausdauer,...

25/47

Page 26: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Leistungsnachweise

Die Freude flieht auf allen Wegen,der Arger kommt uns gern entgegen.

Balduin Bahlamm, der verhinderte DichterWilhelm Busch (1832-1908)

dt. Schriftsteller, satirischer Zeichner und Maler

Leistungsnachweise

I Sieben beurteilte Angaben programmiertechn. Aufgaben(Punkte pro Angabe: 1

2∗∑2

i=1 Punkte aus Abgabei)

I Eine beurteilte 90-minutige schriftliche Prufung uberVorlesungs- und Ubungsstoff.

(Weitere Leistungsnachweise gibt es nicht.)

26/47

Page 27: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Schriftliche Prufung

I Dauer: 90 Minuten.

I Prufungsstoff: Vorlesungs- und Ubungsstoff incl. zweierzusammengehorender wissenschaftlicher Artikel, die Siesich im Lauf der Vorlesungszeit eigenstandig erschließen(zuganglich aus TUW-Netz in IEEE Digital Library):

1. Konrad Hinsen. The Promises of Functional Program-ming. Computing in Science and Engineering 11(4):86-90, 2009.

2. Konstantin Laufer, Geoge K. Thiruvathukal. The Promi-ses of Typed, Pure, and Lazy Functional Programming:Part II. Computing in Science and Engineering 11(5):68-75, 2009.

I Hilfsmittel: Keine.

I Anmeldung: Erforderlich (in TISS), Fristen beachten!

27/47

Page 28: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

(Teil-) Beurteilungsschema

...ident fur:

I Programmiertechnische Aufgabenlosungen

I Schriftliche Prufung

Erreichte Punktzahl (Teil-)in % der Maximalpunktzahl Note

≥ 87.5 1≥ 75.0 2≥ 62.5 3≥ 50.0 4< 50.0 5

28/47

Page 29: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Gesamtbeurteilung, Zeugnisausstellung

Gesamtbeurteilung, Gesamtnote

Gewichtet im Verhaltnis 1 zu 1 aus Beurteilungen der

I programmiersprachlichen Aufgabenlosungen

I schriftlichen Prufung

falls beide Teilbeurteilungen positiv sind, sonst nicht genu-gend.

Zeugnisausstellung

I Nach dem ersten und jedem weiteren Antritt zur schrift-lichen Prufung.

I Spatestens nach Ablauf des letzten Termins fur dieschriftliche Prufung.

29/47

Page 30: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

ECTS-Punkteaufschlusselung

Angeleitete Lernaktivitaten– Vortrag (7 Einheiten ∗ 1.0h) 7.0h– Umgek. Klassenzimmer (7 Einheiten ∗ 0.5h) 3.5h

– Ubungsgruppen (7 Einheiten ∗ 1.5h) 10.5hEigenstandige Lernaktivitaten

– Selbststandiges Erarbeiten von Lernergebnissen 28.0h(Vorschlag: I/3.0h, II/4.0h, III/4.0h, IV/6.0h,

V/6.0h, VI/4.0h, VII/1.0h)

– Speziell: Losen der Ubungsaufgaben 22.0h(Vorschlag: 4 Ang. ∗ 2.5h + 3 Ang. ∗ 4.0h)

– Vorbereitung auf die schriftliche Prufung 2.5hSchriftliche Prufung 1.5hSumme 75.0h

Anmerkung: Die Angaben I bis VII beziehen sich auf Teil I bis Teil VII derLehrveranstaltungsunterlagen.

30/47

Page 31: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Programmieren ist wie schwimmen.Man kann jahrelang zusehen,

ohne es zu lernen.

unbekannt

Der kurzeste Programmiererwitz:Jetzt kann ich’s.

unbekannt

31/47

Page 32: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcenC

Organisation, Ablauf

32/47

Page 33: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Anmeldung zur Lehrveranstaltung

Anmeldung

I in TISS bis spatestens Freitag, 04.10.2019 (12:00 Uhr).

Voraussetzung einer validen Anmeldung:

I Erfolgreich abgeschlossene STEOP(Ausnahme: Erasmus+-Studierende).

Studierende mit valider Anmeldung erhalten

I ein Benutzerkonto auf der Maschineg0.complang.tuwien.ac.at

I Benutzerkennung und erstes Losungswort per elektroni-scher Nachricht an ihre Standardadressee<Matr.Nr>@student.tuwien.ac.at

zur Bearbeitung und Abgabe von Ubungsaufgaben.

33/47

Page 34: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Aufbau der LVA nach LernaktivitatenFunf Hauptlernaktivitaten (als Basis weiterer eigenst. Lernakt.):

1. Angeleitete Lernaktivitaten1.1 Vortrag (7 Termine; wochentlich/14-taglich dienstags,

08:15 - 09:15 Uhr).1.2 Umgekehrtes Klassenzimmer (7 Termine;

wochentlich/14-taglich dienstags, 09:15 - 09:45 Uhr).1.3 (Klein-) Gruppenubungen (7 Termine zu 90min.; woch-

entlich, verschiedene Zeiten).

2. Programmiertechnische Aufgaben mit Einzelabgaben (7Angaben, wochentlich; beurteilt).

3. Nichtprogrammiertechnische Aufgaben (4 Angaben,wochentlich; ohne Beurteilung).

4. Selbsteinschatzungstests als Teil der U-Gruppenarbeit (7Tests, je 1 Test pro U-Gruppentermin; ohne Beurteilung).

5. Schriftliche Prufung (90min., Do, 16.01.2020, 16:00 -18:00 Uhr; beurteilt).

34/47

Page 35: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Ubungsgruppenarbeit

1. Ausgabe von Aufgaben: Wochentlich montags, abrufbarauf der Webseite der LVA; insgesamt 7 Angaben, davondie ersten 4 auch mit nichtprogrammiertechnischen Auf-gaben, beginnend am Montag, den 07.10.2019.

2. Abgabe von prog.-techn. Losungen (Erst-/Zweitabgabe):2.1 Erstabgabe: Eine Woche nach Ausgabe bis 12:00 Uhr;

automatische Absammlung aus Home-Verzeichnissen(top-level, nicht in Unterverz.; Uberprufung mit Hugs!).

2.2 Zweitabgabe: Nach Verbesserung der Erstabgabe (zurAbgabefrist siehe Dokument ‘Allgemeine Hinweise zumUbungsablauf’ auf LVA-Webseite).

2.3 Erreichte Punkte: Halfte der Summe beider Abgaben.

3. Nichtprogrammiertechnische Aufgaben: Keine Abgabe,keine Beurteilung; Vorstellung, Besprechung und Diskus-sion von Losungsvorschlagen durch Teilnehmer in denUbungsgruppen.

35/47

Page 36: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Ubungsgruppenarbeit (fgs.)

4. Selbsteinschatzungstests: Keine Abgabe, keine Beurtei-lung; je Ubungsgruppentermin ein 15-minutiger Test;Besprechung und Diskussion von Losungsvorschlagendurch Teilnehmer in den Ubungsgruppen.

5. Ubungsgruppenarbeit: Prasentieren, erlautern, begrunden,vergleichen, wertend gegenuberstellen eigener und frem-der programmier- und nichtprogrammiertechnischer Auf-gabenlosungen aus sachlicher und fachlicher Sicht.

36/47

Page 37: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Ruckmeldungen zu Lernfortschritt, Lernerfolg

Drei Hauptformen:

1. Programmier- und nichtprogrammiertechnische AufgabenI Vorstellung, Besprechung und Diskussion ausgewahlter

Losungsvorschlage in den Ubungsgruppen.I Direkte und indirekte Ruckmeldung zu aktiver Beteili-

gung und Prasentationen in den Ubungsgruppen.I Halbautomatische Testsystemruckmeldung zu Angaben.I Nach kapazitarer Moglichkeit: Tutorkommentierung

einzelner Abgaben und Aufgaben (keine Notenrelevanz).

2. SelbsteinschatzungstestsI Vorstellung, Besprechung und Diskussion der Losungen

in den Ubungsgruppen.I Selbstreflexion.

3. Schriftliche PrufungI Einsichtnahme nach abgeschlossener Verbesserung.

37/47

Page 38: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Voraussichtliche Termine...fur Vortrags-, umgek. Klassenz.-Einheiten, Angaben, U-Gruppen:

Vortrag, umgek. Klassenz. Thema Vortrag Thema umgek. Klassenz.Di, 01.10.2019, 08:15-09:45 Teil I n.a. / VorbesprechungDi, 08.10.2019, 08:15-09:45 Teil II Teil IMo, 21.10.2019, 08:15-09:45 Teil III Teil IIDi, 29.10.2019, 08:15-09:45 Teil IV Teil IIIDi, 12.11.2019, 08:15-09:45 Teil V Teil IVDi, 26.11.2019, 08:15-09:45 Teil VI Teil VDi, 10.12.2019, 08:15-09:45 Teil VII Teil VI

Angabe Ausgabe Erstabgabe Punkte zugeh. UG-Termine1 Mo, 07.10.19 Mo, 14.10.19 50 KW 43: 21.-25.10.192 Mo, 14.10.19 Mo, 21.10.19 50 KW 44: 28.-31.10.193 Mo, 21.10.19 Mo, 18.11.19 50 KW 45: 04.-08.11.194 Mo, 28.10.19 Mo, 04.11.19 50 KW 46: 11.-15.11.195 Mo, 11.11.19 Mo, 18.11.19 100 KW 48: 25.-29.11.196 Mo, 18.11.19 Mo, 25.11.19 100 KW 49: 02.-06.12.197 Mo, 25.11.19 Mo, 02.12.19 100 KW 50: 09.-13.12.19

38/47

Page 39: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Vorauss. Termine/Orte fur die schriftl. Prufung

Schriftl. Prufung Datum Uhrzeit OrtHaupttermin Do, 16.01.2020 16:00 - 18:00 Uhr EI7/EI31. Nebentermin Fr, 06.03.2020 15:00 - 17:00 Uhr EI72. Nebentermin Fr, 08.05.2020 15:00 - 17:00 Uhr HS113. Nebentermin Fr, 26.06.2020 15:00 - 17:00 Uhr HS11

I Eine Anmeldung in TISS ist fur Teilnahme an allen Ter-minen erforderlich (siehe TISS fur An- und Abmelde-fristen); merken Sie sich die Termine bitte vor und planenSie entsprechend!

I Uber die obigen Termine hinaus, keine weiteren Terminefur die schriftliche Prufung.

I Endgultige Termine, Zeiten, Orte, Fristen, Anderungenwerden in TISS bekanntgegeben (im Zweifel gelten dieAngaben in TISS).

39/47

Page 40: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcenD

Ressourcen

40/47

Page 41: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Lehrbucher, wiss. Arbeiten, Haskell im Netz

...gezielte Hinweise auf

I Lehrbucher, wissenschaftliche Arbeiten

– Siehe Vorlesungsunterlagen, detaillierteLeseempfehlungen am Ende jedes Kapitels.

I Haskell im Netz

– Haskell-Homepage: www.haskell.org/

– Haskell-Wiki: wiki.haskell.org/Haskell/

– Haskell-Tutorial: www.haskell.org/tutorial/

– Hugs-Interpretierer: www.haskell.org/hugs

I Haskell auf youtube

– Interview mit John Hughes uber ‘Funktionale Program-mierung und Haskell’.https://www.youtube.com/watch?v=LnX3B9oaKzw

41/47

Page 42: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Wichtige wiss. Zeitschriften und Konferenzen

...zur Publikation von Forschungsergebnissen im Umfeld funk-tionaler Programmierung und von Haskell sind besonders:

I Zeitschriftenreihe:

– The Journal of Functional Programming. Matthias Fell-eisen, Jeremy Gibbons (Hrsg.), Cambridge, UK, seit1991.https://www.cambridge.org/jfp

I Konferenz- und Symposiumsreihen:

– ACM SIGPLAN International Conference Series onFunctional Programming (ICFP), jahrlich seit 1996.http://www.sigplan.org/Conferences/ICFP

– ACM SIGPLAN International Haskell Symposium Series,jahrlich seit 2008 (2002-2007 als ACM SIGPLAN HaskellWorkshop Series).https://wwww.haskell.org/haskell-symposium

42/47

Page 43: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Arbeit mit TUW- und eigenen Rechnern

I Server fur die praktischen Programmierubungen:g0.complang.tuwien.ac.at

I Arbeit mit TUW-Rechnern: Verfugbar im Labor Argen-tinierstraße 8, Erdgeschoss im Innenhof.

I Arbeit mit anderen, eigenen Rechnern: Z.B. zu Hause istmoglich.

I Abgaben von Ubungsaufgaben: Ausschließlich aufg0.complang.tuwien.ac.at.

I Notige Software: Hugs (frei verfugbar).

I Wichtig: Abgaben werden auf der g0 ausschließlich un-ter Hugs getestet. Uberzeugen Sie sich deshalb stets vonder gewunschten Funktionalitat Ihrer Programmierlosun-gen auf der g0 unter Hugs!

43/47

Page 44: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Anlaufstellen...bei Fragen und Problemen:

I Webseite der LVA:www.complang.tuwien.ac.at/knoop/fp185A03.html

I Umgekehrtes Klassenzimmer im Anschluss an den Vor-tragsteil

I Ubungsgruppe

Vorlesungsmaterialien, Aufgaben, Termine

Denn was man schwarz auf weiß besitzt,kann man getrost nach Hause tragen.

Faust. Eine Tragodie.Johann Wolfgang von Goethe (1749-1832)

dt. Dichter und Naturforscher

I Webseite der Lehrveranstaltung:

www.complang.tuwien.ac.at/knoop/fp185A03 ws1920.html44/47

Page 45: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Mitveranstalter, Tutoren

I Mitveranstalter:

– Ass.Prof. Dipl.-Ing. Dr. techn. Ulrich Neumerkel

I Tutoren:

– Lukas Grassauer, BSc– Niki Herl– Christoph Hochrainer, BSc– Samuel Pilz, BSc– Hannes Siebenhandl, BSc– Patrick Thier, BSc– Bruno Tiefengraber

45/47

Page 46: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Interesse an gefordertem Auslandsstudium?

Die Erasmus/LLP-Programmlinie der EU bietet eine Vielzahllohnender Moglichkeiten, z.B.

I Linkoping University, Schweden

I Aalto University, Finnland

I The University of Copenhagen, Danemark

I Universitat Halle-Wittenberg, Deutschland

I Universitat Paderborn, Deutschland

I Universidad Politecnica de Valencia, Spanien

I ...

Mehr dazu: www.complang.tuwien.ac.at/knoop/erasmus

46/47

Page 47: Funktionale Programmierung - LVA 185.A03, VU 2.0, ECTS ......John W. Backus.Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs

A Moti-vation

B Lern-ergeb-nisse

CAblauf

DRessourcen

Zum Vorbesprechungsabschluss

Dabei sein ist80 Prozent des Erfolges.

Woody Allen (∗ 1935)amerik. Schauspieler und Regisseur

...wir, die FP-Teammitglieder, wunschen Ihnen viel (Lern-)Erfolg fur diese Lehrveranstaltung und dass Sie von ihr pro-fitieren, auch langfristig!

Nicht zuletzt:Die Veranstaltung lebt mit Ihnen! Ihre Ruckmeldungen, Anre-gungen, Verbesserungsvorschlage sind willkommen! Naturlichauch, wenn Ihnen etwas gut gefallen hat!

47/47