Department of Information and Computing Sciences

Departement Informatica Onderwijs
Bachelor Informatica Informatiekunde Kunstmatige intelligentie Master Computing Science Game&Media Technology Artifical Intelligence Business Informatics

Onderwijs Informatica en Informatiekunde

Vak-informatie Informatica en Informatiekunde

Functioneel programmeren

Website:website met extra informatie
Vakcode:INFOFP
Studiepunten:7.5 ECTS
Periode:periode 1 (week 36 t/m 45, d.w.z. 3-9-2018 t/m 9-11-2018; herkansing week 1)
Timeslot:B
Deelnemers:tot nu toe 223 inschrijvingen
Rooster:De officiële roosters staan ook in Osiris
Docenten:
vormgroeptijdweekzaaldocent
college   di 9.00-10.4537-39 KBG-COSMOS Alejandro Serrano Mena
 
41 RUPPERT-PAARS
RUPPERT-ROOD
42-44 KBG-COSMOS
do 13.15-15.0036 KBG-COSMOS
37-43 KBG-COSMOS
44 RUPPERT-BLAUW
practicum groep 1 do 15.15-17.0036 BBG-023 Arjan Adriaanse
 
37-44 BBG-001
groep 2 do 15.15-17.0036 BBG-001 Martin Boers
 
37-44 BBG-161
groep 3 do 15.15-17.0036 BBG-103 CLZ Amber Norder
 
KBG-228
37-44 UNNIK-106
KBG-228
groep 4 do 15.15-17.0036 UNNIK-106 Stefan Schouten
 
BBG-175 CLZ
37-44 BBG-103 CLZ
BBG-175 CLZ
groep 5        Hidde Veer
 
groep 6        Jip Wijnia
 
werkcollege groep 1 di 11.00-12.4537-39 DDW-1.30 Victor Cacciari Miraldo
 
41-44 DDW-1.30
groep 2 di 11.00-12.4537-39 BBG-169 Frank Staals
 
41-44 BBG-169
groep 3 di 11.00-12.4537 BBG-219
38-39 MIN-2.01
41-44 MIN-2.01
groep 4 di 11.00-12.4537-39 UNNIK-211
41-44 UNNIK-211
Tentamen:
week: 40di 2-10-20188.30-10.30 uurzaal: EDUC-GAMMA
week: 45do 8-11-201813.30-16.30 uurzaal: BEATRIX-7E ETAGE
week: 1do 3-1-201917.00-20.00 uurzaal: EDUC-GAMMAaanvullende toets
Nota bene:Er is geen recente vakbeschrijving beschikbaar.
Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2017/2018
Inhoud:

Note: this course is taught in English.

This course introduces functional programming through the programming language Haskell. In contrast with the language C# – introduced in Imperatief/Game/Mobiel programmeren – which is based on statements, organized in methods and classes, functional programming is based entirely on expressions and functions. This shifts the focus from how a program operates to what is does.

Concrete topics treated in this course include higher-order functions, parametric and ad-hoc polymorphism (also known as generics and overloading in other programming languages), algebraic data types and pattern matching. These ideas appear not only in Haskell, but in other modern languages such as Scala, Swift or Kotlin. An important part of the course is devoted to reasoning about programs, either by equations or by induction.

The language Haskell imposes a strong separation between pure computations and those with side-effects, such as input and output. Monads are introduced to model the idea of sequential computation in a functional language. Similar abstractions such as functors are also part of the contents of this course.

Literatuur:Kan veranderen!
  • Slides from the lectures
  • Recommended reading: Programming in Haskell by Graham Hutton
  • Additional material:
    • Lecture Notes from 2015/2016
    • Learn You a Haskell for Great Good by Miran Lipovača
    • Haskell Wikibook
Werkvorm:The load per week is:
  • 2 × 2 h. lectures, on Tuesdays and Thursdays
  • 1 × 2 h. practicals, on Tuesdays
  • 1 × 2 h. werkcollege, on Thursdays
Attendance is not strictly mandatory (albeit recommended).
Toetsvorm:The final grade depends on the two exams and the assignments.
  • The theory grade is T = 0.3 × grade of mid-term + 0.7 × grade of final exam. You need T >= 5 to pass the course.
  • The practical grade is P = 0.2 × average of the lab assignments + 0.8 × grade of final programming project. You need to pass at least two out of three lab assignments and obtain P >= 5 to pass the course.
  • The optional assignment grade is O.
The final grade is computed as F = min( 0.5 × T + 0.5 × P + 0.05 × O, 10 ). The final result of the course is:
  • Passed with grade F (rounded to half points) if F >= 5.5, T >= 5, P >= 5 and you passed at least two out of three lab assignments.
  • Not passed with AANV if F >= 4.0, but T < 5 or P < 5 or you passed fewer than two of the lab assignments.
    • In this case you are entitled to aanvullende toets, to be determined per student.
    • If you need to re-submit the final programming exercise, that grade is a 6 maximum.
  • Not passed with NVD otherwise.
Inspanningsverplichting voor aanvullende toets:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.
wijzigen?