Special Topics:

Basic concepts in functional programming

339.347 1KV Bosnic Block Begin: 10.11.2014

Short abstract of the course:
Every computer scientist has to advance his skills from basic programming steps to a higher level of programming knowledge. The latter includes using algorithms as tools for problem solving tasks, using advanced programming constructs and becoming adaptive to heterogeneous programming environments.

In this course, we will become acquainted with functional approach to programming. We will use Standard ML to learn about different type systems, lexical and dynamic scoping, and function closures. Our goal will be to achieve a deeper understanding into different approaches to programming and therewith improve our programming skills.

Prerequisites for taking this course is being familiar with basic programming constructs and being proficient in arbitrary object-oriented programming language, such as C++, Java or Python.


Ass.-Prof. Dr. Zoran Bosnic
University of Ljubljana
Zoran Bosnic


Date Time Room
Mo 10.11.2014 15:30 - 18:00 MZ 412A
Tu 11.11.2014 15:30 - 18:00 BA 9908
We 12.11.2014 12:45 - 15:15 MT 132


- introduction into Standard ML
- using simple and building complex data types
- variable context
- pattern matching and nesting patterns
- higher order functions, map/reduce/filter
- function closures, partial function applications, currying

Course material


Recommended literature

- Riccardo Pucella: Notes on Programming SML/NJ, Cornell, 2001, http://www.cs.cornell.edu/riccardo/prog-smlnj/notes-011001.pdf

- Michael R. Hansen, Hans Rischel: Introduction to Programming using SML. Addison-Wesley, 1999.


Students will have to do a project and send it to the lecturer. The marks for this course will be based on the project.