Computational Science has become the 3rd pillar of scientific discovery
and scientist from many disciplines are now able to program to conduct
their scientific work. But programming is difficult, especially for high
performance scientific computing and more so if such programming is to be
done in traditional programming languages.

Functional programming languages have facilities supporting that programs
can be expressed succinctly in a manner that is close to the problem domain and
in recent years tremendous progress have been made in making scientific
programming easier and more reliable. The functional programming language F# has now
proven its worth in many scientific areas from computational finance to protein analysis.

This course will introduce functional programming and F#. In particular, the following
topics will be covered: recursive functions, functions as “first-class citizens”, lists,
trees, sets, maps, efficiency (tail-recursive functions), types, program construction
using a strong type system.

The course will comprise of lectures, programming exercises and mini-projects.
There will, in particuar, be a strong emphasize on program construction so that
the participants apply functional programming in broad variety of examples inspired
by practical as well as in more research-oriented problems.

A tentative lecture plan for the three days is below. Each lecture will be
followed by a programming exercise session.

1. Getting started

2. Curried functions and lists

3. Lists with applications

4. Collections: Lists, sets and maps

5. Finite tree (two lectures)

6. Memory management and tail-recursive functions

7. Program construction: From types to programs

8. Construction of simple reactive programs

9. A short talk on: imperative programming, parallel computations and monadic programming in F#

Organizer: Bent Thomsen

Lecturers: Bent Thomsen

ECTS: 2 (subject for change)

Time: 20-22 April, 2015, 8:15-16:15

Place: Aalborg University, Fredrik Bajers Vej 7E/3 Room 209

Zip code: 9220

City: Aalborg

Number of seats:

Deadline: 1 April, 2015