NWI-IBC040
Functional Programming
Course infoSchedule
Course moduleNWI-IBC040
Credits (ECTS)6
CategoryBA (Bachelor)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
Coordinator
dr. J.E.W. Smetsers
Other course modules lecturer
Lecturer
dr. J.E.W. Smetsers
Other course modules lecturer
Contactperson for the course
dr. J.E.W. Smetsers
Other course modules lecturer
Examiner
dr. J.E.W. Smetsers
Other course modules lecturer
Academic year2018
Period
KW1-KW2  (03/09/2018 to 27/01/2019)
Starting block
KW1
Course mode
full-time
RemarksThis course is the replacement course for the 3 ec-courses NWI-IBC029 Func. Prog. 1 and NWI-IBC030 Func. Prog. 2.
Registration using OSIRISNo
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedure-
Aims
After following this course, you can:
  • solve problems in a functional way;
  • choose and develop suitable data structures for given problems;
  • use and deploy fundamental language concepts such as higher-order functions, polymorphism, type classes, recursive datatypes
  • integrate side-effects using applicative functors and monads.
Content
Functional programming is a style of programming that is based on the mathematical concept of "function". By using (pure, higher-order) functions, algebraic data types, and a flexible string typing system, an expressive programming language is available to you to express advanced programs concisely and clearly. The well-studied mathematical foundations (lambda-calculus and term-rewriting) allow you to reason about functional programs using relatively simple mathematical techniques such as equational reasoning and induction.
Levels
Bachelor

Recommended materials
Book
ISBN: 978-1316626221
Title:Programming in Haskell (2nd Edition)
Author:Graham Hutton
Publisher:Cambridge University Press

Instructional modes
Cursusgebeurtenissen
Attendance MandatoryYes

Tests
Exam
Test weight1
Test typeExam
OpportunitiesBlock KW2, Block KW3, Block KW4

Lab
Test weight0
Test typeLab course
OpportunitiesBlock KW2