Study-Unit Description

Study-Unit Description


CODE CSA5017

 
TITLE Functional Programming

 
UM LEVEL 05 - Postgraduate Modular Diploma or Degree Course

 
MQF LEVEL Not Applicable

 
ECTS CREDITS 3

 
DEPARTMENT Computer Science

 
DESCRIPTION This study-unit gives an introduction to the functional programming paradigm, using Haskell. The unit will start off with an introduction to Lambda Calculus. The unit will then cover notions such as currying, strong typing, pattern matching, higher-order functions and advanced functional data types using practical examples. Evaluation order is discussed to explain the difference between call-by-value and call-by-name strategies, concentrating on lazy evaluation, the strategy used in Haskell. The practical part of the study-unit finishes with an overview of type classes and examples of their use. The unit will be complemented by a number of practical sessions, in which you will discuss exercises that were handed out the week before.

Aims of the Study-unit:
To present Functional Programming as an alternative paradigm which fosters a mathematical reusable approach towards programming, as also to appreciate the benefits of a strongly type language.

Topics Covered:
• Introduction to Lambda Calculus;
• Introduction: Notation, Currying, Basic Types, Pattern Matching, Referential Transparency;
• Lists and Tuples;
• Higher-Order Functions;
• Advanced Types: Enumerated types, parametrised types, data VS type;
• Type Classes;
• Embedded Languages;
• Evaluation Order and Lazyness.

Textbooks:
• Simon Thompson, The Craft of Functional Programming, Addison-Wesley, ISBN: 0201342758.
• Richard Bird, Introduction to Functional Programming using Haskell, Prentice Hall Series in Computer Science, ISBN 0-13-484346-0, 1998.
• Paul Hudak, The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, ISBN 0-521-64408-9, 2000.

 
STUDY-UNIT TYPE Lecture

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Assignment Yes 100%

 
LECTURER/S Joseph Cordina

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit