    Course module   NWIIBC040  Category   BA (Bachelor)  Language of instruction   English  Offered by   Radboud University; Faculty of Science; Informatica en Informatiekunde;  Lecturer(s)     Academic year   2019   Period   KW1KW2  (02/09/2019 to 02/02/2020) 
 Starting block   KW1  
 Course mode   fulltime  
 Remarks     Registration using OSIRIS   Yes  Course open to students from other faculties   Yes  Preregistration   No  Waiting list   No  Placement procedure    
     
This course teaches you to how to solve (programming) problems in a functional way. This includes:
 Writing programs in a functional style;
 Choosing and developing suitable data structures (data types and operations) for given problems, such as primitive types (Integer, Bool, …), predefined (recursive) lists (including list comprehensions, and generic list operations), trees, etc.
 Using and deploying FP concepts, like higherorder functions, polymorphism and classes.
 Applying predefined programming schemes instead of explicit recursion (map, fold, scan).
 Reasoning about functional programs (based on equational reasoning, structural induction, properties of programming schemes).
 Knowing and applying fundamental techniques for incorporating sideeffects in FP (IO, Applicatives and Monads)
 Applying abstraction to obtain generic implementations of programming schemes for arbitrary data types (generalized folds and unfolds).


This course introduces you to the functional programming paradigm. It makes use of the programming language Haskell, in which programs can be viewed as mathematical functions. Haskell offers powerful concepts like higherorder functions, polymorphic datatypes and type classes. These concepts make it possible to easily write programs that would be significantly more complex or extensive when written in other languages. The mathematical foundations enable you to reason about functional programs using relatively simple mathematical techniques such as equational reasoning and induction. 
    


   Recommended materialsBookISBN  :   9781316626221 
Title  :   Programming in Haskell (2nd Edition) 
Author  :   Graham Hutton 
Publisher  :   Cambridge University Press 


Instructional modesCursusgebeurtenissenAttendance Mandatory   Yes 

 TestsExamTest weight   1 
Test type   Exam 
Opportunities   Block KW2, Block KW3 
 LabTest weight   0 
Test type   Lab course 
Opportunities   Block KW2 


  
 
 