Kurset forudsætter, at man har fulgt Indledende Programmering (el. tilsvarende) og mindst samtidig følger kurset Begreber og redskaber i programmering (el. tilsvarende).
Studienævnet for Tværfaglig IT tager forbehold overfor senere ændringer i kursusbeskrivelsen. Se den seneste version på: http://www.dat.ruc.dk/undervisning2/ under kurser 2001.
Kursets formål er give:
Efter kurset forventes de studerende
Logikprogrammeringssproget Prolog benyttes som det centrale eksempel, der repræsenterer et paradigme væsensforskelligt fra objektorienterede sprog. Vi lærer at skrive mindre programmer i Prolog, og vi studerer dets syntaks, semantik og pragmatiske aspekter i nærmere detalje. Vi ser også på præcise beskrivelser af forskellige sprogkonstruktioners semantik formuleret ved overskuelige fortolkere skrevet i Prolog --- som metodik har det den fordel, at man umiddelbart kan afteste beskrivelserne og udvide dem og eksperimentere med nye sproglige konstruktioner.
Design, implementation og anvendelse af forskellige niveauer af sprog --- som er den måde man i virkeligheden bygger systemer --- sættes ind i en fælles ramme som blot er en generalisering af principper for struktureret programmering.
Vi kigger på forskellige praktiske metoder til syntaksgenkendelse og oversættelse af programmeringssprog og benytter også her Prolog i vidt omfang som beskrivelsessprog og henleder iøvrigt opmærksomheden på standardværker på området. På samme måde som de "semantik-definerende" fortolkere, kan disse metoder langt henad vejen kan benyttes til praktisk implementation og prototypeformål. Endelig ser vi på teoretiske modeller (Turing-maskiner) for hvad man kan og ikke kan udtrykke i et programmeringssprog, og vi benytter også anledningen (men uden at gå i for mange detaljer) til at pointere den matematiske logik, som dybest set ligger til grund for computere, (computer-)sprog og -systemer (f.eks. databaser) --- og på mange måder er grundlaget for, at datalogi og computere har kunnet opstået.
Kurset henvender sig til alle, som ønsker at styrke deres indsigt i, hvad computere og computersprog dybest set er for nogle størrelser, og kurset stræber mod at give en værdifuld baggrund uanset om man tænker på at dreje sin uddannelse mod udvikling, forskning eller formidling. Kurset kan også ses som forudsætning for eller supplement til databaser og vidensrepræsentation og give en interessant perspektivering i forhold til brugergrænseflader og systemudvikling. Endelig kan det måske inspirere til videre studier omkring programmeringssprog, logikbaserede systemer og datalingvistik.
forelæsning, opgaveløsning og heldagsworkshops
2 timers skriftlig eksamen