FUNCTIONAL PROGRAMMING
- Overview
- Assessment methods
- Learning objectives
- Contents
- Bibliography
- Delivery method
- Teaching methods
- Contacts/Info
Java Programming, Algorithms and Data Structures.
Written test and oral exam. The written test (2 hours) consists of
some questions related to the topics of the course and some
programming exercises using the Scala language. With a positive result
a student may access to the oral exam which consists of a discussion
of the written test and an in-depth analysis of some topics of the
course.
The aim of the course is to provide a good understanding of functional
programming, of its applications, its strengths and its weakness. The
functional programming paradigm is presented using Scala, a modern
functional programming language based on JVM, which is widely used in
industry. The course also aims to show how the functional programming
paradigm can be fruitfully applied in the context of software
engineering. The student will learn to model problems in the
functional programming setting and to develop Scala programs by
exploiting the characteristics of the language. We expect that after
this course the students will be able to choose the most suitable
paradigm for a given application context. The knowledge of the
caracteristics of functional languages let the student free to proceed
to an in-depth analysis of other programming languages as well as to
enrich the technical expertise autonomously.
- Introduction to functional programming.
- Classes, objects, basic types and operations.
- Built-in control structures
- Functions and closures
- Control abstraction, composition and inheritance
- Data structures implementation
- Actors and concurrency
Martin Odersky, Lex Spoon, Bill Venners. Programming in Scala: A
Comprehensive Step-by-Step Guide, Third Edition. Artima Press, 2016
40 hours of lectures, 12 hours of in-class exercises, 98 hours of study
Office hours: by appointment via e-mail.