DIP330 Functional Programming

Code DIP330
Name Functional Programming
Status Compulsory/Courses of Limited Choice
Level and type Undergraduate Studies, Academic
Field of study Computer Science
Academic staff Marina Uhanova
Credit points 2.0 (3.0 ECTS)
Parts 1
Annotation Functional programming is an alternative to imperative programming languages. Lisp - the most popular functional programming language. The language overview. Basic functions. Recursion. Declaration of new functions. List processing functions. Predicates. Conditional expressions. Recursive functions. Recursive list processing. Sublists and recursion. Recursive predicates. Logical operators. PROG-expressions. List creation. Predicates written using PROG. Recursion in PROG-expressions. Function joining. Evaluation rule. Evaluating function EVAL. Programs as data. Input-output of data. Practical usage of LISP language..
Goals and objectives
of the course in terms
of competences and skills
Objective of the course - to understand and learn a new programming paradigm based on problem-solving "from the end to the beginning". Tasks - to learn how to work with objects represented in the form of lists, learn the concept of recursion and be able to apply it to processing of non-determined structures, define new functions, realize interaction between objects with complex regulations. After completing the course students will have the competencies and skills in the use of non-imperative programming.
Learning outcomes
and assessment
Knows and understands the content of the course. The student can apply functional programming as an alternative to imperative programming language, including: - the obtained skills are tested at the exam
- Define new functions for list processing - laboratory work on recursive list processing
- Provide multidimensional recursive processing - laboratory work on modelling tables
- Provide multi-user interactive interface and simulate collaborative virtual member - laboratory work on interactive intellectual game
Course prerequisites Imperative programming language(s).

[Extended course information PDF]