Home/Vakken/Concepts of Programming Languages
CSE21205 ECTSQ3EngelsBachelor

Concepts of Programming Languages

FaculteitElektrotechniek, Wiskunde en Informatica
NiveauBachelor
Studiejaar2025-2026

Beschrijving

The design of a programming language is the result of a selection from a general collection of programming language concepts. With some frequency, new languages are introduced that combine concepts in a novel manner and sometimes introduce new concepts. During their careers, computer scientists will have to work with more than one generation of programming language. In order to learn new programming languages, a computer scientist should understand the basic principles in the design of programming languages. In this course we study these principles. The topics covered in the course include:

  • Syntax and interpretation: programs as data, abstract vs. concrete syntax, interpretation

  • Functional programming: higher-order functions, lexical scope, function closures, currying and partial application, functions over data (especially map, fold, and filter).

  • Mutation and memory: implementing loops and recursion, tail calls, heap memory allocation and reuse, concurrency and parallel execution.

  • Lazy evaluation and infinite streams: lazy vs. eager evaluation, thunks, streams, memoization.

  • Types: a type as a set of values together with a set of operations, primitive types, compound types, type safety and errors caused by inconsistent use of values, association of types to names, type checking, type inference.

  • Objects and encapsulation: privacy and visibility of class members, interfaces revealing only method signatures, inheritance, subtyping.

Toetsing

The final grade of the course consists of the following components:

  • Mandatory Lab (pass/fail)

  • Computer Exam (100%)

Final grade calculation:

  • Mandatory Lab failed -> 1

  • Mandatory Lab passed -> Exam Grade

Repair possibilities:

  • Mandatory Lab: all mandatory assignments may be resubmitted an unlimited amount of times (within reasonable limits), as long as these submissions are made before the lab deadline. (Automatic) feedback is provided for most mandatory assignments. There is a repair opportunity if all but one of the mandatory assignments are passed before the deadline. This needs to be requested via email to the course mail address, and requires extra work to be submitted.

  • Computer Exam: resit in next quarter


Disclaimer: information may change depending on unforeseen circumstances or measures (see: TER Art 29, sub 4)

Reviews0 reviews

Nog geen reviews voor dit vak. Wees de eerste!

Heb jij dit vak gevolgd?

Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.

Schrijf een review