# Staff

Lecture: Prof. Dr. Ralf LĂ¤mmel

Lab: Andrei Varanovich

# Exam

- Final: 06.02.2013, M 201, 10:15-11:15
- Resit: 29.05.2013, E 011, 18:15-19:15
- Student ids will be checked.
- You need to have a valid admission for the exam.
- You *must* register with KLIPS (watch out for "Programmierparadigmen").

# Links

- Timeless course portal (Wiki)
- KLIPS: lecture; lab
- Curriculum: Module 04IN1024
- Open-source repository with material
- Public web area with material
- Supporting resources
- Past exams: *.pdf (requires uniko login)
- Twitter: @yaplcourse and @reallynotabba
- News: infko.plt and infko.general

# Lectures

Lectures start "ct".

- 17.10.2012: Prolog crash course [.pdf]; [.pro]
- 24.10.2012: Introduction [.pdf]
- 31.10.2012: Big-step semantics [.pdf]
- 07.11.2012: Small-step semantics [.pdf]
- 14.11.2012: Semantics-based reasoning [.pdf]
- 21.11.2012: Type systems [.pdf]
- 28.11.2012: The untyped lambda calculus [.pdf]
- 05.12.2012: The simply-typed lambda calculus [.pdf]
- 12.12.2012: Lambda calculi with polymorphism [.pdf]
- 19.12.2012: Featherweight Java [.pdf]
- 09.01.2013: Concurrency calculi [.pdf]
- 16.01.2013: Denotational semantics [.pdf]
- 23.01.2013: Program analysis [.pdf]
- 30.01.2013: Program specialization [.pdf]
- 06.02.2013: Final

Extra material has to be covered for the extended (legacy) course "*Programming paradigms*". To this end, an "*Introduction to functional programming*" (aka "Haskell crash course") is taught in a block course in January.

# Labs

- 17.10.2012: Prolog crash course
- 24.10.2012: Prolog crash course
- 31.10.2012: Big-step semantics
- 07.11.2012: Small-step operational semantics
- 14.11.2012: Semantic-based reasoning
- 21.11.2012: Type systems
- 28.11.2012: No lab
- 05.12.2012: The simply-typed lambda calculus
- 12.12.2012: Lambda calculi with polymorphism
- 19.12.2012: Dry final run / Q&A
- 09.01.2013: The CCS calculus concurrency
- 16.01.2013: Haskell
- 23.01.2013: Denotational semantics
- 30.01.2013: Q&A [.pdf]

# Assignments

- Big-step operational semantics
- Small-step operational semantics
- Semantic-based reasoning
- Type systems
- The untyped lambda calculus
- An applied, typed lambda calculus
- Lambda calculi with polymorphism
- The CCS calculus concurrency
- Some Haskell exercises
- Denotational semantics

Solutions are to be submitted to svn:

https://svn.uni-koblenz.de/softlang/main/courses/plt1213/students append name of group

# Examination rules

- Admission rules for final:
- Assemble teams of 3 members.
- Register online by 27 October 2012.
- Each team submits 7 acceptable solutions of 10 assignments by the deadline.
- Each team presents 3 invited solutions.
- Exam admission is inherited from winter semesters 2011/12 and 2010/11.

**Rationale**: The assignments are designed to help understand all material covered in the lecture. Also, the assignments support effective preparation for the exam. Upcoming assignments are discussed briefly in the lab. Completed assignments are discussed in detail in the lab on the grounds of presentations by invited and additional teams. All submitted solutions are briefly reviewed by the lab assistant to determine whether the solutions are acceptable. The criteria for accepting a solution are discussed and calibrated in the lab, when the assignment is given out. (Essentially, simple assignments must be solved more or less correctly and completely whereas more complex assignments may already be acceptable if there is an insightful approach to the problem that is perhaps not carried through correctly.) The lab assistant also reviews submitted solutions to prepare the discussion in the lab by inviting teams for presentation. If time permits during the lab, solutions in addition to the invited ones can be presented, but such presentations do not count in the sense of the above-mentioned rule that each team presents 3 invited solutions. The use of invitations helps assembling a good set of presentations for the lab and distributing assignments of different complexity fairly over the different teams.