Studiefiche Vanaf academiejaar 2015-2016 Functionele en logische programmeertalen (C003034) Cursusomvang (nominale waarden; effectieve waarden kunnen verschillen per opleiding) Studiepunten 6.0 Studietijd 165 u Contacturen 45.0 u Aanbodsessies en werkvormen in academiejaar 2016-2017 A (semester 1) hoorcollege 30.0 u werkcollege: geleide oefeningen 15.0 u Lesgevers in academiejaar 2016-2017 Scholliers, Christophe WE02 Aangeboden in onderstaande opleidingen in 2016-2017 Master of Science in de informatica Master of Science in de wiskundige informatica Verantwoordelijk lesgever stptn 6 6 aanbodsessie A A Onderwijstalen Nederlands Trefwoorden programmeertalen, functioneel programmeren, logisch programmeren, hogere-orde functies, polymorpfisme, monads, type classes, luie uitvoering, unificatie, backtracking, metavertolkers, Prolog, Haskell Situering De student verdiept zich in de functionele en logische programmeerparadigma's. Het is de bedoeling dat zij/hij: • zich het praktisch gebruik van een functionele en een logische programmeertaal • eigen maakt; • zich meester maakt van de concepten, programmeertechnieken en datastructuren • die gangbaar zijn in deze paradigma's; • inzicht verwerft in de verbanden tussen functioneel programmeren en objectgericht • programmeren • inzicht verwerft in de onderliggende evaluatiemechanismen van deze talen. Inhoud 1 Functioneel porgrammeren 1 • taal: Haskell grondig, noties van andere functionele talen 1 • uitvoeringsmechanismes: luie uitvoering 1 • typesysteem: algebraische datatypes, polymorfisme, type classes 1 • hogere-orde functies, continuaties, functors, monads 1 • datastructuren: onwijzigbare, oneindige 2 Logisch programmeren 1 • taal: Prolog grondig, noties van andere logische talen 1 • uitvoeringsmechanismes: unificatie, backtracking, uitgestelde uitvoering 1 • datastructuren: met open einde, cyclische 1 • metavertolkers 1 • programmeren met constraints (sommige onderwerpen niet elk jaar) Begincompetenties Kunnen programmeren in een programmeertaal door bijvoorbeeld het vak Programmeren/Programmeren 1 gevolgd te hebben. Eindcompetenties 1 De student kan kleine en middelgrote programma's schrijven in een functionele en (Goedgekeurd) 1 1 logische programmeertaal. 2 Zij/hij kan de gangbare concepten en datastructuren uit deze talen praktisch 1 toepassen. Creditcontractvoorwaarde Toelating tot dit opleidingsonderdeel via creditcontract is mogelijk mits gunstige beoordeling van de competenties Examencontractvoorwaarde Dit opleidingsonderdeel kan niet via examencontract gevolgd worden Didactische werkvormen Hoorcollege, werkcollege: geleide oefeningen Toelichtingen bij de didactische werkvormen Hoorcolleges Werkcolleges Programmeerpractica Elektronische leeromgeving Leermateriaal Cursusnota's Website Geraamde totaalprijs: 0 EUR Referenties • Programming in Haskell, Graham Hutton, University of Nottingham, Cambridge • University Press, January 2007. • Simon Thompson: Haskell: The Craft of Functional Programming, Second Edition, • Addison-Wesley, 507 pages, paperback, 1999. • Bryan O'Sullivan, Don Stewart, and John Goerzen: Real World Haskell, Paperback: • 700 pages, O'Reilly, November 2008. • http://www.haskell.org/haskellwiki/Haskell_in_education • Prolog Programming for Artificial Intelligence, Ivan Bratko, Addison Wesley, third • edition 2001. • Constraint Logic Programming using Eclipse, Krzysztof R. Apt, Mark Wallace, • Cambridge University Press, 2006. • Prolog Programming, Roman Bartak, http://kti.ms.mff.cuni.cz/~bartak/prolog/index. • html Vakinhoudelijke studiebegeleiding Begeleide werkcolleges en practica Elektronische leeromgeving Evaluatiemomenten periodegebonden en niet-periodegebonden evaluatie Evaluatievormen bij periodegebonden evaluatie in de eerste examenperiode Schriftelijk examen met open vragen Evaluatievormen bij periodegebonden evaluatie in de tweede examenperiode Schriftelijk examen met open vragen Evaluatievormen bij niet-periodegebonden evaluatie Mondeling examen, werkstuk, vaardigheidstest Tweede examenkans in geval van niet-periodegebonden evaluatie Examen in de tweede examenperiode is mogelijk Toelichtingen bij de evaluatievormen Niet-periodegebonden evaluatie: werkstuk, vaardigheidstest, mondelinge verdediging. Tweede examenkans in geval van niet-periodegebonden evaluatie: kan hernomen worden mits nieuwe opgave Eindscoreberekening Niet-periodegebonden evaluatie (50%) + periodegebonden evaluatie (50%). De score voor de niet-periodegebonden evaluatie telt enkel mee indien men een voldoende haalt op de periodegebonden evaluatie. (Goedgekeurd) 2