SluitenHelpPrint
Switch to English
Cursus: INFOFP
INFOFP
Functioneel programmeren
Cursus informatieRooster
CursuscodeINFOFP
Studiepunten (ECTS)7,5
Categorie / Niveau2 (Bachelor Verdiepend)
CursustypeCursorisch onderwijs
VoertaalNederlands
Aangeboden doorFaculteit Betawetenschappen; Onderwijsinstituut Informatica;
Contactpersoonprof. dr. S.D. Swierstra
Telefoon+31 30 2533962
E-mailS.D.Swierstra@uu.nl
Docenten
Docent
drs. S. Holdermans
Overige cursussen docent
Docent
dr. S.W.B. Prasetya
Overige cursussen docent
Docent
prof. dr. S.D. Swierstra
Feedback en bereikbaarheid
Overige cursussen docent
Blok
Onbekend
Aanvangsblok
3
TimeslotD: WO-middag, WO-namiddag, Vrijdag
Onderwijsvorm
Voltijd
Opmerkinghttp://www.cs.uu.nl/education/vak.php?vak=INFOFP
Aanmeldingsprocedureadministratie onderwijsinstituut
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedureadministratie onderwijsinstituut
Cursusdoelen
-
Inhoud

In het vak imperatief programmeren hebben jullie kennis gemaakt met de taal Java. In die taal bestaat een programma uit opdrachten: doe dit, doe dat. In een functionele taal bestaat een programma uit functies zoals je die kent uit de wiskunde. Programma's schrijven in zo'n taal vergt een andere manier van denken en dat is precies waar we het in dit vak over gaan hebben. In concreto gaan we problemen oplossen met behulp van de functionele taal Haskell. Deze taal kent uitgebreide abstractiemogelijkheden waardoor programma's vaak bijzonder compact zijn. Over veel details, zoals berekeningsvolgorde en geheugenallocatie, hoef je je geen zorgen te maken. De nadruk ligt op wat en niet op hoe. Verder kent Haskell een uitgbreid typesysteem waarvan steeds meer elementen ook in andere talen worden opgenomen.

Recursie in functionele talen is de evenknie van lusconstructies (for, while) in Java. Het is de manier om programma's te schrijven die over een datastructuur wandelen of herhaalde berekeningen doen. Omdat functionele programma's geen variabelen kennen die van waarde kunnen veranderen tijdens de verwerking van het programma is het gemakkelijk redeneren over zulke programma's. We zullen laten zien hoe we op een systematische wijze programma's kunnen afleiden en transformeren, en hoe we eigenschappen kunnen bewijzen. Die eigenschappen kunnen we gebruiken om uitspraken te doen over de correctheid of om programma's te herschrijven. Als het programma recursieve functies bevat dan is tijdens bewijzen het begrip inductie nodig.

http://www.cs.uu.nl/education/vak.php?vak=INFOFP&jaar=2008

 

 

 

 

Ingangseisen
Verplicht materiaal
-
Aanbevolen materiaal
Dictaat
Dictaat: Jeroen Fokker & Doaitse Swierstra, Functioneel programmeren (versie 2007-2008)
Internet pagina's
Haskell Report (toegangkelijk via web pagina) Haskell Library Definities (idem) Paper over Finger Trees (via digital library van de UU)
Werkvormen (aanwezigheidsplicht)
Hoorcollege

Practicum

Werkcollege

Toetsen
Tentamen
Weging100
Minimum cijfer6

Beoordeling
zie: http://www.cs.uu.nl/education/vak.php?vak=INFOFP

SluitenHelpPrint
Switch to English