DM552: Programmeringssprog (10 ECTS)
STADS: 15014801
Niveau
Bachelorkursus
Undervisningsperiode
Kurset er placeret i efterårssemesteret.
Ansvarlige undervisere
Email: petersk@imada.sdu.dk
Yderligere undervisere
lcf@imada.sdu.dk
Skemaoplysninger
Hold |
Type |
Dag |
Tidsrum |
Lokale |
Uger |
Kommentar |
Fælles |
I |
Mandag |
12-14 |
U24 |
36,45-50 |
|
Fælles |
I |
Mandag |
12-14 |
U163 |
37 |
|
Fælles |
I |
Mandag |
12-14 |
U46 |
38 |
|
Fælles |
I |
Mandag |
12-14 |
U160A |
39-40 |
|
Fælles |
I |
Mandag |
12-14 |
U140 |
41 |
|
Fælles |
I |
Mandag |
14-16 |
U93 |
43 |
Søren Haagerup |
Fælles |
I |
Mandag |
14-16 |
U150 |
44 |
|
H1 |
TE |
Tirsdag |
08-10 |
U42 |
40 |
|
H1 |
TL |
Tirsdag |
08-10 |
IMADA ComputerLab |
41 |
|
H1 |
TE |
Onsdag |
10-12 |
U20 |
36-39,41,46 |
|
H1 |
TE |
Onsdag |
10-12 |
U24 |
43,45,48 |
|
H1 |
TE |
Onsdag |
10-12 |
U150 |
44,47 |
|
H1 |
TE |
Onsdag |
10-12 |
U55 |
49-50 |
|
H1 |
TL |
Fredag |
14-16 |
IMADA ComputerLab |
37,39,45,47,49 |
|
H1 |
TL |
Fredag |
10-12 |
IMADA ComputerLab |
44 |
|
Vis hele skemaet
Vis personligt skema for dette kursus.
Kommentar:
Ubegrænset deltagerantal.
Indgangskrav:
Ingen.
Faglige forudsætninger:
Stoffet fra DM550 Introduktion til programmering skal være kendt. DM507 Algoritmer og Datastrukturer anbefales.
FormålKurset giver en introduktion til logisk og funktionel programmering.
Kurset bygger på DM550 og DM507 fra datalogiuddannelsens første studieår og giver fagligt grundlag for at vælge kurser, individuelle studieprojekter eller bachelorprojekt inden for programmeringssprog senere på uddannelsen.
At 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 et sammenhængende billede af fordele og ulemper ved forskellige abstraktionsniveauer og programmeringssprogs-strukturer. At give deltagerne erfaring med programmering i sprog af andre typer end de sædvanlige imperative og objektorienterede sprog.
I forhold til uddannelsens læringsresultater har kurset eksplicit fokus på:
- udvikling af færdigheder i at programmere i flere typer programmeringssprog
- udvikling af færdigheder i at analysere fordele og ulemper ved forskellige algoritmer, specielt med hensyn til ressourceforbrug
- udvikling af færdigheder i at træffe og begrunde fagligt relaterede beslutninger
- udvikling af færdigheder i at beskrive, formulere og formidle problemstillinger og resultater til enten fagfæller og ikke-specialister eller samarbejdspartnere og brugere
- giver kompetence i at håndtere komplekse og udviklingsorienterede situationer i studie- og arbejdssammenhænge
- giver kompetence i at identificere egne læringsbehov og strukturere egen læring i forskellige læringsmiljøer
MålbeskrivelseFor at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
- Løse ikke-trivielle programmeringsopgaver i et funktionelt sprog, herunder skrive klar og korrekt kode samt anvende sprogets standardbibliotek.
- Løse ikke-trivielle programmeringsopgaver i et logikbaseret sprog, herunder skrive klar og korrekt kode samt anvende sprogets standardbibliotek.
- Vurdere tidsforbrug for funktionelle programmer.
- Forstå sidevirkningers indflydelse på conccurent programming.
- Anvende og implementere simple domænespecifikke sprog.
- Bevise egenskaber ved simple funktionelle programmer.
- Resonere omkring avancerede typesystemer.
- Udregne en most general unifier af to termer.
- Udføre resolution af et logisk mål.
- Konvertere et udtryk i 1. ordens prædikatlogik til klausal form.
IndholdKurset indeholder følgende faglige hovedområder:
- Generelle programmeringssprogsmekanismer: kontrolstrukturer, typesystemer, modulering, domænespecifikke sprog (DSL)
- Funktionelle sprog: højere-ordens typer, polymorfi, lister, lazy-evaluering, referential transparency, monader, effektivitetsovervejelser, korrekthedsbeviser
- Logik-baserede sprog: prædikater, fakta og regler, unification, SLD-resolution, sammensætte termer (compound terms), implementering af negation, constraint-programmering
LitteraturMeddeles ved kursets start.
Kursets hjemmeside
Dette kursus benytter
e-learn (blackboard).
Forudsætningsprøver
Ingen.
Eksamen- og censurform:
- Projekt. Intern bedømmelse ved underviser, bestået/ikke bestået. (10 ECTS).(15014802).
Reeksamen i samme eksamenstermin eller i umiddelbar forlængelse heraf.
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 28 timer
Træningsfase: 42 timer, heraf:
- Eksaminatorie: 28 timer
- Laboratorieøvelser: 14 timer
Aktiviteter i studiefasen
UndervisningsformAktiviteter i studiefasen:
- Løse opgaver
- Læse den tildelte literatur
- Øve at anvende den tilegnede viden
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 2016 til 31. august 2017.