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 10-12 U155 37,39,41,45,47,49,51
Fælles I Torsdag 10-12 U157 36
Fælles I Fredag 08-10 U156 36
H1 TE Mandag 10-12 U155 38,40,43,46,48,50
H1 TE Tirsdag 12-14 U157 49
H1 TE Onsdag 08-10 U157 37-41,43,45-47,49-51
H1 TL Fredag 10-12 U48 36 DM550 H1L
H1 TL Fredag 14-16 U155 37,39,41,45,47,49,51
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Stoffet fra DM550 Introduktion til programmering ELLER DM536 Introduktion til programmering  og DM537 Object-orienteret programmering skal være kendt. DM507 Algoritmer og Datastrukturer anbefales. Kurset kan ikke følges hvis DM509 er bestået, eller hvis DM509 indgår obligatorisk i din studieordning.

Kursusintroduktion
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-strukture.r At give deltagerne erfaring med programmering i sprog af andre typer end de sædvanlige imperative og objektorienterede sprog.

Forventet læringsudbytte
Efter kurset forventes den studerende at kunne:

  • 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.
Emneoversigt
  • 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
Litteratur
    Meddeles ved kursets start.


Kursets hjemmeside
Dette kursus benytter e-learn (blackboard).

Forudsætningsprøver
Ingen

Eksamen- og censurform:
Projektopgave i flere dele fordelt over kurset. Intern censur ved underviser. Bestået/ikke bestået. (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

Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren. Dog altid på Engelsk ved deltagelse af internationale studerende.

Bemærkninger
Udover det angivne timetal, forventes studerende løbende at gøre brug af studiegrupperne for øvrige kursusrelaterede aktiviteter.

Kursustilmelding
Se tilmeldingsfrister.

Pris for åben uddannelse
Se priser for enkeltkurser.

Denne kursusbeskrivelse var gyldig fra 1. september 2015 til 31. august 2016.