TIES542 Principles of Programming Languages (5 cr)

Study level:
Advanced studies
Grading scale:
0-5
Language:
English, Finnish
Responsible organisation:
Faculty of Information Technology
Curriculum periods:
2024-2025, 2025-2026, 2026-2027, 2027-2028

Tweet text

More detailed and current information can be found in the information of the realisation.

Description

This course covers the most common concepts and methods in the theory and implementation of programming languages, including operational semantics: big-step (natural) and small-step (structural) semantics; type systems: typing, type inference and type checking; simple imperative programming language: syntax, evaluation and properties; reasoning about imperative programs: termination, determinism, program equivalence, preconditions, postconditions and loop invariants; simply-typed lambda calculus: syntax, reduction, properties and extensions; and reasoning about functional programs: confluence and progress of reduction, preservation of typing and soundness.

Learning outcomes

On this course, we will study programming language theory and ponder the essence of a good programming language. The goal of this course is to familiarize you with the most prominent methods in the study of programming languages and to build you a sufficient foundation for later exploring literature on programming language research without tears. On the side, this course also offers you an excellent excuse to try out new tools and ways of working.

Additional information

Independently Studying

Description of prerequisites

This course does not have absolute prerequisites in the form of other courses. However, participants are expected to have strong grasp of imperative and functional programming, familiarity with the basics of compilers, a notable level of mathematical maturity and a healthy attitude towards work. Mathematical maturity does not only make the course possible to complete, but also helps make connections with topics that are covered in greater depth on other courses.

Courses: Programming, Algorithms, Logics (MATA- course), Functional programming. 

Completion methods

Method 1

Description:
There are no teaching sessions on this course. The course is completed by independently working on exercises agreed upon with with the teacher.
Select all marked parts
Parts of the completion methods
x

Independent study (5 cr)

Type:
Independent study
Grading scale:
0-5
Language:
English, Finnish

Teaching