DM509: Programmeringssprog (5 ECTS)

STADS: 15011001

Niveau
Bachelorkursus

Undervisningsperiode
Kurset er placeret i efterårssemesteret.

Ansvarlige undervisere
Email: hargreaves@imada.sdu.dk

Skemaoplysninger
Hold Type Dag Tidsrum Lokale Uger Kommentar
Fælles I Mandag 14-16 U24 36-41
Fælles I Tirsdag 08-10 U24 36-40
S1 TE Tirsdag 08-10 U24 41
S1 TE Onsdag 14-16 IMADA Terminalrum 40
S1 Torsdag 12-14 IMADA Terminalrum 36
S1 TE Torsdag 12-14 U24 37,39-40
S1 TE Torsdag 12-14 IMADA Terminalrum 38
S1 TE Fredag 12-14 U24 38
S1 TE Fredag 12-14 U91 39,41
Vis hele skemaet
Vis personligt skema for dette kursus.

Kommentar:
Ubegrænset deltagerantal.

Indgangskrav:
Ingen

Faglige forudsætninger:
Stoffet fra DM536 Introduktion til programmering  og DM537 Object-orienteret programmering skal være kendt ELLER Stoffet fra programmering A og B (DM502 og DM503) skal være kendt. DM507 Algoritmer og Datastrukturer anbefales. Kurset kan ikke følges hvis DM552 er bestået, eller hvis DM552 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 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 tid- og pladsforbruget af funktionelle programmer.
  • Bevise egenskaber ved simple funktionelle programmer.
  • Udregne den mest generelle type af et funktionelt udtryk.
  • 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, 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
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. (15011002)

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: 22 timer
Træningsfase: 20 timer

Aktiviteter i studiefasen Studiefase: 10 timer

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.

Dette er den nyeste version af en kursusbeskrivelse, som trådte i kraft den 1. sep 2013.