Kursusbeskrivelse: Logik og Sprog, forår 2000
ved
Henning Christiansen
Hvorfor dette kursus?
For at kunne forstå og vurdere aktuelle og fremtidige teknologier er det
væesentligt med en forståelse, som rækker udover blot at kunne anvende
de værktøjer og computermodeller, som i øjeblikket tilfældigvis
er dominerende på markedet.
I forhold til programmeringskurserne breder vi overblikket over
informationsteknologien ud i flere dimensioner,
- fra at betragte computeren som noget, der udfører et enkelt
program, til være et komplekst system af mange samvirkende komponenter,
implementeret i kraft af hinanden,
- og tidsmæssigt, at betragte informationsteknologien i et historisk
perspektiv, baggrunden for dens opstående og de grundlæggende
teoretiske modeller og metoder, som danner baggrund for (forståelse af) dens
praktiske udformninger.
Kurset giver baggrund, som kan være værdifuld uanset om man tænker på
at dreje sin uddannelse mod udvikling, forskning eller formidling.
Kursets målsætning
At opnå en teoretisk og videnskabshistorisk forståelse af baggrunden
for den moderne informationsteknologi og praktiske færdigheder
indenfor følgende områder:
- hvilke egenskaber og begrænsninger definerer grundlæggende
»en computer«
(Turing-maskiner, afgørlighed og beregnelighed; universalitet)
(von Neuman-arkitekturen)
- hvordan komplekse systemer er sat sammen af samvirkende lag
af sprog og (abstrakte, virtuelle) processorer,
- et kendskab til, at der findes forkellige paradigmer for programmering
og programmeringssprog, og til programmeringssprogs anatomi,
- kendskab til praktiske metoder for implementation af
(programmerings-, grænseflade-, osv.) sprog
og til den verden af logik, som er væsentlig både i forhold til
informationsteknologiens opståen og i forhold til at forstå
nutidige programmelsystemer til data- og vidensbehandling og
for at kunne navigere i den datalogiske faglitteratur.
Detaljeret indhold og målsætning
I kurset lægges vægt på en sprogorienteret indfaldsvinkel, hvor det
videnskabshistoriske element optræder mere i passende udvalg.
Det logikbaserede programmeringssprog Prolog benyttes som gennemgående
eksempel, da det repræsenterer et paradigme, som er radikalt anderledes
end det objektorienterede Java, som benyttes i de forudgående kurser.
Prolog benyttes også som et metasprog til at modellere
aspekter af syntaks, semantik og pragmatik for andre sprog, processorer
og systemer. (Et kendskab til Prolog er også en god introduktion til
databaser og vidensbaserede systemer).
Der introduceres en teoretisk (og ikke specielt matematisk) model af
abstrakte maskiner som baggrund for at modellere komplekse systemer.
Principperne for virkemåde og opbygning af
den »fysiske« computer computer beskrives
gennem boolsk logik og mikro programmering.
Endelig gives en introduktion til klassiske metoder for sproganalyse og
fortolkning, som primært retter sig mod programmeringssprog, men
også har anvendelser for brugergrænseflader og naturligt sprog.
Forudsætninger
Objektorienteret programmering
Kursusform
Forelæsninger, øvelser og selvstændigt arbejde
Evalueringsform
Skriftlig eksamen
Kursusplan
Klik her!