IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Funktionelt design og programmering 
Kursusnavn (engelsk):Functional Design and Programming 
Semester:Efterår 2003 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:25 
Maks. antal deltagere:60 
Formelle forudsætninger:

Kendskab til programmering og kunne udvikle mindre programmer,
fx. svarende til det niveau der kan opnås på kurset Grundlæggende
Programmering

Læringsmål:

Gennemførelse af kurset vil give dig følgende kvalifikationer:


  • Du skal kunne forklare og udvikle programmer i
    programmeringssproget Standard ML.

  • Du skal kunne forstå og anvende rekursive datatyper og
    funktionsdefinitioner; højere-ordens funktioner; sammensatte data
    som for eksempel: tupler, lister, træer og vektorer.

  • Du skal kunne forklare parametrisering og polymorfi.

  • Du skal kunne forstå programmeringssprogsbegreberne binding,
    omgivelse, type samt typeinferens.

  • Du skal kunne opdele et større system i separate komponenter med
    funktionelt beskrevne grænseflader.
 
Fagligt indhold:

I traditionelle programmeringssprog foregår beregninger ved at man
destruktivt ændrer værdien af variable og af felter i objekter osv.
Dette kan være effektivt men gør det unødig vanskeligt at kombinere
generelle løsninger på delproblemer til løsninger på større problemer.

I funktionsprogrammering, som vi skal se på i dette kursus,
benytter man i stedet en værdi-orienteret programmeringsstil. Det vil
sige at beregninger foregår ved at værdier analyseres og ny værdier
skabes, frem for at individuelle bidder af hukommelsen modificeres.

Dette gør det nemmere at lave robuste programmer, og at
vedligeholde dem, for de kan opdeles i separate komponenter med klart
beskrevne funktionelle grænseflader.

Funktionelt design og programmering går således ud på udtrykke
programmers virkemåde ved sammensætning af passende funktioner. Hver
funktion har en veldefineret virkemåde: Den tager et argument, udfører
en beregning og giver et resultat. Vægten er således lagt på
hvad en funktion gør i modsætning til hvordan den
gør det.

Kurset er baseret på funktionsprogrammeringssproget Standard ML.
De to hovedemner i kurset er:


  1. Programming in the small. Hvordan kan et specifikt
    problem løses ved at sammensætte simple funktioner.
  2. Programming in the large. Hvordan kan et stort system
    opsplittes i programbiblioteker med funktionelt beskrevne grænseflader.


Kurset er naturlig efterfølger til Grundlæggende Programmering og
er en god opvarmning til kurset Programmeringssprog: Fortolkere og
oversættere
.


Der stilles ugentlige opgaver, som består af både
programmerings- og papir-og-blyant-opgaver. 

Læringsaktiviteter:

Ugentlige forelæsninger, øvelser med øvelsesvejleder. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

4-timers skriftlig eksamen  

Litteratur udover forskningsartikler:Introduction to Programming using SML. Michael R. Hansen & Hans
Rischel. Addison-Wesley. 1999. ISBN NR.: 0-201-39820-6