Skip to main content
Till KTH:s startsida

FIK3620 Types, Semantics, and Programming Languages 7.5 credits

Information per course offering

Course offerings are missing for current or upcoming semesters.

Course syllabus as PDF

Please note: all information from the Course syllabus is available on this page in an accessible format.

Course syllabus FIK3620 (Autumn 2024–)
Headings with content from the Course syllabus FIK3620 (Autumn 2024–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

The course is divided into three separate modules, each covering different aspects on types, semantics, and programming language theory:

1. Operational semantics and the lambda calculus

  • Small-step and big-step operational semantics
  • Untyped lambda calculus
  • Fundamental typed functional programming

2. Typed lambda calculus with extensions

  • Type rules
  • Type soundness proofs
  • Semantics for let bindings, pairs, tuples, records, sums, and lists
  • References and exceptions

3. Subtyping and Polymorphism

  • Subtype polymorphism
  • Parametric polymorphism
  • Ad-hoc polymorphism
  • Structural and nominal type systems
  • Gradual typing

Intended learning outcomes

After the course, the student will be able to

  • Construct type soundness proofs
  • Analyze type rules
  • Analyze small-step and big-step operational semantics
  • Implement an interpreter and a type checker for a typed functional language
  • Apply untyped and simply typed lambda calculus with extension
  • Discuss challenges and opportunities of gender balance and diversity within the field of software development

Literature and preparations

Specific prerequisites

No information inserted

Recommended prerequisites

Good knowledge in programming. Good basic knowledge in discrete mathematics and logic.
Knowledge in functional programming and compilers is beneficial, but is not a prerequisite.

Literature

You can find information about course literature either in the course memo for the course offering or in the course room in Canvas.

Examination and completion

Grading scale

P, F

Examination

  • EXA1 - Examination, 7.5 credits, grading scale: P, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

If the course is discontinued, students may request to be examined during the following two academic years.

See "Requirements for final grade" below.

Other requirements for final grade

The student receives grade P if the following is fulfilled:

  1. Active participation in seminars
  2. Approved oral presentations at the seminars
  3. Approved solutions to theoretical exercises
  4. Approved submission and presentation of a software implementation

If the student cannot participate in a seminar, the student can do complementary work at another occasion.

Examiner

Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Education cycle

Third cycle

Postgraduate course

Postgraduate courses at EECS/Software and Computer Systems