After following this course, you can:
- Solve problems in a functional way
- Choose and develop suitable data structures for given problems
- Use and deploy modern programming language concepts such as higher-order functions, polymorphism, overloading, recursive data structures
- Reason about functional programs.
|
|
Functional programming is a programming discipline that is based on the mathematical notion of a “function”. By using (higher order) “pure” functions, algebraic data types and a strong and flexible typing system results in a highly expressive programming language in which one can define computations in a concise and clear way. The underlying fundamental mathematical computation model is well known and investigated (lambda-calculus, term-rewriting) and enables one to reason about programs using relatively simple mathematical techniques such as substitution and induction.
Functional languages play a prominent role in computer science research when investigating new (programming language) concepts. They are also important in the domain of artificial intelligence. Because of their high level of expressive power, they are increasingly used to develop complex software systems.
|
|
|
Basic programming experience at the level of Programming for AI-1 and 2. Experience at Object Oriented Programming is advised.
|
|
Written final exam (100% of grade). Possible bonus (10%) for assignments during the course.
|
|
During the lectures the theory behind (functional) concepts is taught. During the practical sessions these concepts are put into practice using the programming language Scala.
|
|