Declarative Languages (B-KUL-H0N03A)

4 ECTSEnglish46 First termCannot be taken as part of an examination contract
POC Computerwetenschappen

The students get a thorough understanding of declarative programming languages.
We focus on the knowledge and the use in practice of two representative declarative languages, namely a logic programming language and a functional programming language.
The most important aims of this course are:
• The student knows the underlying principles of the logic and functional programming languages.
• The student knows the programming techniques typically used in these programming paradigms.
• The student knows the basics of the execution mechanisms of the logic and functional programming languages.
• The student can write programs in a logic and a functional programming language, consult the reference manuals and debug his programs.
• The student can apply the appropriate programming techniques when developing a larger application.
• The student can compare the languages teached in this course with other languages of the declarative paradigm.
• With his acquired knowledge and skills the student can study new advances in the field of declarative languages.

The student knows a programming languages and can progam.
The student can write recursive programs.

This course is identical to the following courses:
H04H5B : Studie van declaratieve talen

Activities

2 ects. Declarative Languages: Lecture (B-KUL-H0N03a)

2 ECTSEnglishFormat: Lecture30 First term
POC Computerwetenschappen

The follwing topics are studied:

  • a logic programming language, e.g., Prolog
  • basic concepts: predicates, unification, backtracking, selection strategy, specification of problems using Horn clauses, declarative and procedural meaning of a logic program, multidirectionality
  • Prolog: pure Prolog, negation, (recursive) data structures, built-in predicates, meta predicates
  • programming techniques: data (facts, terms), accumulators, memoization, failure driven loops, state space search problems, meta interpreters, non-ground data structures with variables
  • a functional programming language, e.g., Haskell
  • basic concepts: functions, reduction strategies, call-by-need, lazy/strict
  • Haskell: algebraic datatypes, higher-order functions, monomorphic and polymorphic types, type classes, currying
  • programming techniques: structural recursion, infinite processes, list comprehension, pure functions and monadic input/output
  • type inference
  • insight in the history of, research on and the landscape surrounding declarative languages
  • execution mechanisms for declarative languages and developments

Study cost: 76-100 euros (The information about the study costs as stated here gives an indication and only represents the costs for purchasing new materials. There might be some electronic or second-hand copies available as well. You can use LIMO to check whether the textbook is available in the library. Any potential printing costs and optional course material are not included in this price.)

Book: Soar with Haskell, T. Schrijvers, Packt Publishing, 978-1805128458.
Own course material.

Flipped classroom.

2 ects. Declarative Languages: Exercises (B-KUL-H0N04a)

2 ECTSEnglishFormat: Practical16 First term
POC Computerwetenschappen

There are 10 exercise sessions.  Students apply the acquired material by writing programs on PCs under supervision of a teaching assistant.

Evaluation

Evaluation: Declarative Languages (B-KUL-H2N03a)

Type : Partial or continuous assessment with (final) exam during the examination period
Description of evaluation : Written
Type of questions : Closed questions, Open questions
Learning material : Course material


The exam is open book and is made on computer. The exam has a weight of 16/20 in the overall score.

The permanent evaluation contributes a maximum of 4/20 to to the overall score. During the lectures students indvidually formulate a written answer to one short question about a previously announced part of the course notes. Those course notes can be used to answer the question. The weight of each question is 0.5/20.

The permanent evaluation cannot be repeated during the second exam period; instead, the earlier grades will be transferred.

The permanent evaluation cannot be repeated during the second exam period; instead, the earlier grades will be transferred.