Course "Programming Language Theory" SS 2018

Staff

  • Lecturer: Prof. Dr. Ralf Lämmel <ed.znelbok-inu|lemmeal#ed.znelbok-inu|lemmeal>
  • Lab assistant: MSc Informatik Marcel Heinz <ed.znelbok-inu|znieh#ed.znelbok-inu|znieh>
  • Assignment assistant: Daniel Remagen

First point of contact: Marcel Heinz <ed.znelbok-inu|znieh#ed.znelbok-inu|znieh>

Links

Schedule

The lectures are exercised in "flipped class room" mode.

We meet Mondays and Tuesdays; see KLIPS. We announce skipped slots.

In the following table, the "Reading" column points to chapters or sections in the software languages book; see book access below. Also remember that you find short videos for some of the topics on the page for the software languages book. Some of the reading material will need to be studied ahead of the meeting (when "flipped mode" is "YES") or otherwise past the meeting (when "flipped mode" is "NO").

Date Topic Reading Flipped mode
16.04.2018 Tree-based abstract syntax 3.1, 4.1.3.1 NO
23.04.2018 Basics of interpretation 5.1 NO
30.04.2018 Big-step operational semantics 8.1 YES
07.05.2018 Small-step operational semantics + Lab 8.2 YES
14.05.2018 Type systems 9 YES
28.05.2018 The untyped lambda calculus 10.1 YES
04.06.2018 The simply typed lambda calculus 10.2 YES
11.06.2018 System F + type system extensions 10.3, 10.4 YES
18.06.2018 Denotational semantics 11.1, 11.2 YES
25.06.2018 Exam preparation - -
09.07.2018 Exam - -

Lab Schedule

Date Topic
17.4. ASTs
24.4. Interpreter
08.5. Big- and Small-step semantics
15.5. Type Systems
29.5. Untyped Lambda Calculus and Fix Point computation
05.6. Simply Typed Lambda Calculus

Assignments

Assignment specifications

Once the assignments are published, the numbers are linked to the repository location with the assignment specifications. Deadline is always end of day.

No. Date of issue Deadline Topic
1 17.04.2018 23.04.2018 Tree-based abstract syntax
2 24.04.2018 07.05.2018 Interpreter
3 08.05.2018 14.05.2018 Big-Step vs. Small-Step Semantics
4 15.05.2018 28.05.2018 Type Systems
5 29.05.2018 04.06.2018 Untyped Lambda Calculus
6 05.06.2018 11.06.2018 Simply-typed Lambda Calculus
7 12.06.2018 18.06.2018 Type System Extensions
8 19.06.2018 25.06.2018 Denotational Semantics
9 26.06.2018 02.07.2018 Big-Step vs Small-Step Semantics

Assignment logistics

  • There are 9 assignments in total. They are linked in the table above.
  • The svn repo will be communicated by lab assistant.
  • Student solutions are submitted to https://svn.uni-koblenz.de/softlang/pltcourse/plt18/students/username (replace username by your Uni username).
  • Student submissions are checked by assignment assistant.
  • Each assignment is graded with either of the following scores:
    • 0: "missing or largely incomplete and/or largely incorrect"
    • 1: "noticeably incomplete and/or noticeably incorrect"
    • 2: "nearly or completely complete and nearly or completely correct"
  • An assignment may offer options from which students must choose one, as they wish.
  • Reference solutions are published via svn: https://svn.uni-koblenz.de/softlang/pltcourse/plt18/public/solutions/

General rules for solutions

  • Use Unicode for text files include source-code files.
  • Submit Haskell source code as .hs files.
  • If other languages are permitted, then use appropriate extensions.
  • Submit "textual" solutions as .txt or .pdf (no .doc, .docx, etc.).
  • Use UTF-8 encodings for submitted text/code.
  • If there are options (1, 2, …), use the option number in the filename.
  • Make sure non-obvious source-code details are commented.
  • Make sure that your source code parses/compiles/runs "as is".

If you do not obey these rules, your solution may receive less points.

Exam

Exam dates

  • Exam: last lecture slot; same room; same time; register via KLIPS
  • Resit: end of next semester

Exam admission

  • Exam admission is inherited from previous editions ever since 2010/11.
  • Each student must submit at least 6 solutions with score 1 or above.
  • Out of these 6 solutions, 3 solutions must receive score 2.
  • Each student must present 1 solution, if asked to do so.

Rationale

  • Lectures, labs, and assignments are designed to prepare effectively for the exam.
  • The assignment topics directly correspond to the exam topics.
  • All submitted solutions are reviewed by the lab / assignment assistant.
  • Upcoming assignments are discussed briefly in the meetings.
  • Completed assignments are discussed in detail in the meetings while also leveraging student presentations.