Staff
- Lecturer: Prof. Dr. Ralf Lämmel <ed.znelbok-inu|lemmeal#ed.znelbok-inu|lemmeal>
- Lab assistant: M.Sc. 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
- Timeless course portal (Wiki)
- Curriculum: Module 04IN1024
- Script: Shared "privately"
- Past exams: *.pdf (requires uniko login)
- Facebook: Private group for course
- Related slides and videos: the software languages book
- Related resources
Schedule Draft
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 |
---|---|---|---|
15.04.2019 | Notion of a Software Language | - | NO |
23.04.2019 | Tree-based abstract syntax | 3.1, 4.1.3.1 | YES |
29.04.2019 | Basics of interpretation | 5.1 | YES |
06.05.2019 | Big-step operational semantics | 8.1 | YES |
13.05.2019 | Small-step operational semantics | 8.2 | YES |
20.05.2019 | Type systems | 9 | YES |
27.05.2019 | The untyped lambda calculus | 10.1 | YES |
03.06.2019 | The simply typed lambda calculus | 10.2 | YES |
17.06.2019 | System F + type system extensions | 10.3, 10.4 | YES |
24.06.2019 | Denotational semantics | 11.1, 11.2 | YES |
01.07.2019 | Abstract Interpretation | 12.5 | YES |
08.07.2019 | Exam preparation | - | - |
15.07.2019 | Exam | - | - |
Lab Schedule
Date | Topic |
---|---|
16.04. | Haskell Crash-Course |
23.04. | Maybe Interpreter |
30.04. | Expression-oriented BIPL |
07.05. | |
14.05. | Small-Step BFPL |
21.05. | Type Systems |
28.05. | Fixpoint ULL |
04.06. | |
18.06. | |
25.06. | |
02.07. | |
09.07. |
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 (23:59 GMT+2).
No. | Date of issue | Deadline | Topic |
---|---|---|---|
1 | 19.04.2019 | 26.04.2019 | Tree-based abstract syntax |
2 | 26.04.2019 | 03.05.2019 | Basics of Interpretation |
3 | 03.05.2019 | 10.05.2019 | Big-Step Operational Semantics |
4 | 10.05.2019 | 17.05.2019 | Small-Step Operational Semantics |
5 | 17.05.2019 | 24.05.2019 | Type Systems |
6 | 24.05.2019 | 31.05.2019 | Untyped Lambda Calculus |
7 | 31.05.2019 | 07.06.2019 | Typed Lambda Calculus |
8 | 07.06.2019 | 21.06.2019 | System F + Type System Extensions |
9 | 21.06.2019 | 28.06.2019 | Denotational Semantics |
10 | 28.06.2019 | 05.07.2019 | Abstract Interpretation |
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/plt19/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/plt19/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.