Avancerad funktionell programmering
Kursplan, Avancerad nivå, 1DL450
- Kod
- 1DL450
- Utbildningsnivå
- Avancerad nivå
- Huvudområde(n) med fördjupning
- Datavetenskap A1F
- Betygsskala
- Underkänd (U), godkänd (3), icke utan beröm godkänd (4), med beröm godkänd (5)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 18 mars 2010
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
120 hp, varav minst 40 hp i datavetenskap och 20 hp i matematik. Programmeringsteknik II och Funktionell Programmering I, alternativt Programkonstruktion, eller motsvarande.
Mål
För godkänt betyg ska studenten kunna
- skriva program i Haskell, Erlang och Lisp,
- använda högre ordningens funktioner, och fortsättningar (continuations),
- använda lat evaluering och oändliga datastrukturer i Haskell,
- använda Erlangs processbegrepp och lösa programmeringsuppgifter i Erlang genom att organisera dem som system av kommunicerande processer,
- skriva program som interpreterar, transformerar och analyserar Lisp-program i Lisp, samt förstå och använda Lisps macro-begrepp,
- genomföra och presentera ett större projekt i något av programspråken Haskell, Erlang eller Lisp.
Innehåll
Programspråken Haskell, Erlang och Lisp. Högre ordningens funktioner, fortsättningar, lat evaluering i Haskell, kommunicerande process i Erlang, program som data (metaprogrammering, aspektprogrammering) i Lisp.
Undervisning
Föreläsningar, mindre uppgifter, projektarbete.
I inledande föreläsningar presenteras de tre programspråken (eller paradigmna).
Studenterna genomför mindre uppgifter i alla programspråk, samt ett större projekt i ett av språken.
Läraren föreslår lämpliga projektuppgifter, men studenterna kan komma med egna förslag. Grupper om 1-4 studenter tillåts.
Examination
- Redovisning (3 hp) Varje projekt ska redovisas och demonstreras i slutet av kursen. Redovisningen sker inför andra studenter. Varje student håller en egen redovisning, som betygsätts. I detta moment ingår även opposition på en redovisning.
- Tentamen (2 hp) Tentamen tar upp den övergripande delen av kursen. I detta avsnitt ingår även mindre obligatoriska uppgifter om de olika programspråken som presenteras på kursen.