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)
Examiner
dr. F.A. Grootjen
Other course modules lecturer
Contactperson for the course
W. van Staal, MSc
Other course modules lecturer
Coordinator
W. van Staal, MSc
Other course modules lecturer
Academic year2020
Period
PER1  (01/09/2020 to 01/11/2020)
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 for AI-1 and 2. Experience at Object Oriented Programming is advised.
Test information
Written final exam (100% of grade). Possible bonus (10%) for assignments during the course.
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