SOW-BKI256
Functional Programming
Course infoSchedule
Course moduleSOW-BKI256
Credits (ECTS)3
CategoryB2 (Second year bachelor)
Language of instructionEnglish
Offered byRadboud University; Faculty of Social Sciences; Artificial Intelligence;
Lecturer(s)
Coordinator
dr. P.R. Griffioen
Other course modules lecturer
Lecturer
dr. P.R. Griffioen
Other course modules lecturer
Contactperson for the course
dr. P.R. Griffioen
Other course modules lecturer
Examiner
dr. F.A. Grootjen
Other course modules lecturer
Academic year2021
Period
PER1  (06/09/2021 to 05/11/2021)
Starting block
PER1
Course mode
full-time
Remarks-
Registration using OSIRISYes
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 modern programming language concepts such as higher-order functions, polymorphism, overloading, recursive data structures
  • Reason about functional programs.
Content
Functional programming is a programming discipline that is based on the mathematical notion of a “function”. By using (higher order) “pure” functions, algebraic data types and a strong and flexible typing system results in a highly expressive programming language in which one can define computations in a concise and clear way. The underlying fundamental mathematical computation model is well known and investigated (lambda-calculus, term-rewriting) and enables one to reason about programs using relatively simple mathematical techniques such as substitution and induction.
Functional languages play a prominent role in computer science research when investigating new (programming language) concepts. They are also important in the domain of artificial intelligence. Because of their high level of expressive power, they are increasingly used to develop complex software systems.
Level
B2
Presumed foreknowledge
Basic programming experience at the level of Programming 1 and 2 (BKI131 and BKI132). Experience at Object Oriented Programming is advised.
Test information
Written final exam (100% of grade). 
Specifics
During the lectures the theory behind (functional) concepts is taught. During the practical sessions these concepts are put into practice using the programming language Scala.
Instructional modes
Lecture
Attendance MandatoryYes

Practical computer training
Attendance MandatoryYes

Tests
Exam
Test weight1
Test typeExam
OpportunitiesBlock PER1, Block PER2