DM509: Programmeringssprog (5 ECTS)
STADS: 15000901
Niveau
Bachelorkursus
Undervisningsperiode
Kurset er placeret i efterårssemesteret.
2. kvartal.
Ansvarlige undervisere
Email: kslarsen@imada.sdu.dk
Skemaoplysninger
Hold |
Type |
Dag |
Tidsrum |
Lokale |
Uger |
Kommentar |
Fælles |
I |
Mandag |
12-14 |
U131 |
45 |
|
Fælles |
I |
Mandag |
12-14 |
U48a |
46,50-51 |
|
Fælles |
I |
Mandag |
12-14 |
U17 |
47-48 |
|
Fælles |
I |
Mandag |
12-14 |
U133 |
49 |
|
Fælles |
I |
Torsdag |
14-16 |
U27a |
45, 47, 49, 51 |
|
S1 |
TE |
Tirsdag |
10-12 |
U17 |
45-51 |
|
S1 |
TE |
Fredag |
12-14 |
U10 |
46, 48, 50 |
|
S2 |
TE |
Onsdag |
15-17 |
U49d |
46 |
|
S2 |
TE |
Onsdag |
14-16 |
U49d |
48,50 |
|
S2 |
TE |
Fredag |
08-10 |
U49d |
45-51 |
|
Vis hele skemaet
Vis personligt skema for dette kursus.
Skemaændringer:
: Større lokaler til F. Ekstra hold oprettet (S2).
Kommentar:
Ubegrænset deltagerantal
Indgangskrav:
Ingen
Faglige forudsætninger:
Stoffet fra programmering A og B (DM502 og DM503) skal være kendt. Algoritmer og Datastrukturer (DM507) anbefales.
KursusintroduktionAt give deltagerne en forståelse for de generelle principper for
design af programmeringssprog, samt de specielle valg der kendetegner sprogklasserne imperative, objekt-orienterede, logik-baserede og funktionelle sprog. At give deltagerne erfaring med programmering i sprog af andre typer end de sædvanlige imperative og objektorienterede sprog.
Forventet læringsudbytteEfter kurset forventes den studerende at kunne:
Løse ikke-trivielle programmeringsopgaver i Haskell, herunder skrive klar og korrekt kode samt anvende sprogets standardbibliotek.
Løse ikke-trivielle programmeringsopgaver i Prolog, herunder skrive klar og korrekt kode samt anvende sprogets standardbibliotek.
Vurdere tid- og pladsforbruget af programmer i Haskell.
Bevise egenskaber ved simple programmer i Haskell.
Udregne den mest generelle type af et udtryk i Haskell.
Afgøre om en funktion i Haskell er strict.
Udregne en most general unifier af to udtryk i Prolog.
Udføre resolution af et Prolog-mål.
Konvertere et udtryk i 1. ordens prædikatlogik til klausal form.
Emneoversigt
- Generelle programmeringssprogsmekanismer: kontrolstrukturer, typesystemer, abstraktion, modulering
- Funktionelle sprog: funktioner, højere-ordens typer, polymorfi, lister, lazy-evaluering, referential transparency, monader, effektivitetsovervejelser, korrekthedsbeviser
- Logik-baserede sprog: prædikater og regler, unification, SLD-resolution, funktionssymboler, lister, implementering af negation, constraint-programmering
LitteraturMeddeles ved kursets start.
Kursets hjemmeside
Dette kursus benytter
e-learn (blackboard).
Forudsætningsprøver
Ingen
Eksamen- og censurform:
a) Obligatoriske projektopgaver som tilsammen tæller 1 ECTS af kursets omfang på 5 ECTS. Intern censur ved én underviser. Bestået/ikke bestået. Projektopgaverne skal være bestået for at man kan deltage i eksamen (15000912)
b) 4 timers skriftlig eksamen med alle hjælpemidler (lærebog, noter, lommeregner). Ekstern censur. Karakter efter 7-trinsskalaen (15000902)
Reeksamen efter 4. kvartal (første gang i juni 2009). Reeksamen er en mundtlig eksamen, der bedømmes med karakter efter 7-trinsskalaen og ekstern censur.
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Forelæsninger (22 timer), eksaminatorier (20 timer) og projektarbejde.
Aktiviteter i studiefasen
Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren. Dog altid på Engelsk ved deltagelse af internationale studerende.
Kursustilmelding
Se tilmeldingsfrister.
Pris for åben uddannelse
Se priser for enkeltkurser.
Denne kursusbeskrivelse var gyldig fra 1. september 2006 til 31. august 2011.