NWI-IBC040
Functional Programming
Cursus informatieRooster
CursusNWI-IBC040
Studiepunten (ECTS)6
CategorieBA (Bachelor)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
VorigeVolgende 1
Docent
dr. T.M. van Laarhoven
Overige cursussen docent
Docent
M.R. Schoolderman, MSc
Overige cursussen docent
Docent
dr. J.E.W. Smetsers
Overige cursussen docent
Examinator
dr. J.E.W. Smetsers
Overige cursussen docent
Coördinator
dr. J.E.W. Smetsers
Overige cursussen docent
Collegejaar2022
Periode
KW1-KW2  (05-09-2022 t/m 29-01-2023)
Aanvangsblok
KW1
Onderwijsvorm
voltijd
Opmerking-
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedure-
Cursusdoelen
This course teaches you to how to solve (programming) problems in a functional way. This includes:
  1. Writing programs in a functional style;
  2. 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.
  3. Using and deploying FP concepts, like higher-order functions, polymorphism and classes.
  4. Applying predefined programming schemes instead of explicit recursion (map, fold, scan).
  5. Reasoning about functional programs (based on equational reasoning, structural induction, properties of programming schemes).
  6. Knowing and applying fundamental techniques for incorporating side-effects in FP (IO, Applicatives and Monads)
  7. Applying abstraction to obtain generic implementations of folds and traversables.
Inhoud
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 higher-order 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.

Instructional Modes
Niveau
Bachelor
Voorkennis

Toetsinformatie
The course is concluded with a written (digital) exam. To participate in the exam you must have seriously participated in the computer practical. This means that you must have completed all assignments or at least made a serious effort to do so. If you do not meet this requirement, you may take the written exam, but your final result for the course will be a maximum of 5.
Bijzonderheden

Aanbevolen materiaal
Boek
ISBN: 978-1316626221
Titel:Programming in Haskell (2nd Edition)
Auteur:Graham Hutton
Uitgever:Cambridge University Press

Werkvormen
Cursus
AanwezigheidsplichtJa

Toetsen
Digitaal tentamen
Weging1
ToetsvormDigitale toets met CIRRUS
GelegenhedenBlok KW2, Blok KW3

Practicum
Weging0
ToetsvormPracticum
GelegenhedenBlok KW2