02141 Datalogisk modellering

2023/2024

Kursusinformation
Computer Science Modelling
Engelsk
10
Bachelor
F3A (tirs 8-12) og F4B (fre 8-12)
Campus Lyngby
Forelæsninger, teoretiske øvelser, programmeringsøvelser og -opgaver.
13-uger
F4B
Skriftlig eksamen og bedømmelse af opgave(r)
Skriftlig eksamen (som normalt ændres til mundtlig ved reeksaminer). Et antal individualiserede programmeringsopgaver vil indgå i den samlede vurdering.
Skriftlig eksamen: 4 timer
Alle hjælpemidler er tilladt
7-trins skala , ekstern censur
02142
02157 , Diskret matematik, algoritmer og datastrukturer, funktionsprogrammering.
Alberto Lluch Lafuente , Lyngby Campus, Bygning 321, Tlf. (+45) 4525 3736 , albl@dtu.dk
Christoph Matheja , chmat@dtu.dk
01 Institut for Matematik og Computer Science
https://courses.compute.dtu.dk/02141
I studieplanlæggeren
Overordnede kursusmål
De studerende lærer at anvende centrale datalogiske modeller og formalismer, at udvikle værktøjer baseret på disse formalismer og at bruge disse værktøjer til at køre og analysere softwarekode.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • anføre forskelle i udtrykskraft af de præsenterede formelle modeller;
  • relatere udtryksevne til begrænsninger af beregningsmodeller (f.eks. afgørelighed/​uafgørlighed af grundlæggende problemer)
  • tolke betydningen af en formel model (f.eks. automater, grammatikker, semantikker):
  • udlede en formel model (f.eks. automater, grammatiker, semantikker) for en ønsket egenskab eller opførsel givet en tekstuel beskrivelse;
  • oversætte en model til en anden model (f.eks. regulære udtryk til NFA);
  • ændre en model svarende til et givet kriterie (f.eks. fjernelse af redundans, fjernelse af flertydighed i grammatik);
  • anvende udvalgte værktøjer og udvikle nye værktøjer relateret til de formelle modeller som er brugt for at analysere programmer (f.eks. programverifikatorer, analysatorer og modeltjekkere
  • afgøre om en beskrivelse i en formel model opfylder en givet egenskab;
  • udlede egenskaber ved at anvende bevisstrategier (f.eks. matematisk induktion, strukturel induktion);
  • vælge formelle modeller der kan være nødvendige eller nyttige ved løsning af et givent problem;
  • opnå kursets mål som del af en gruppe, mens det individuelle ansvar opretholdes;
Kursusindhold
Kurset omfatter to emner:

(1) Formelle sprog og deres brug til at beskrive syntaks. For regulære sprog behandles måder at beskrive dem med automata og regulære udtryk, deres sammehæng, praktiske anvendelser (fx søgning, leksikalsk analyse, formelle specifikationer) og nogle væsentlige teoretiske resultater (fx herunder afgørlighedsegenskaber af væsentlige problemer). For kontekstfri sprog behandles måder at beskrive dem med pushdown automata og kontekstfri grammatik, en række anvendelser (fx til parsing af programmer, dokumenter og formateret data) sammen med en kort indføring til stakautomater og deres sammenhæng med kontekstfri sprog.

(2) Formelle metoder og deres brug til både modellering og analyse af IT systemers egenskaber, især software kode. Herunder semantik af programmeringsprog, programfortolkning, programverifikation, programanalyse, sikkerhedsanalyser, og modeltjek. Systemerne på FormalMethods.dk bruges til at understøtte indlæringen.

Kurset involverer praktisk brug af forskellige værktøjer, og de studerende skal løse både teoretiske og praktiske opgaver, som integrerer kursets to emner.
Litteraturhenvisninger
(1) "Introduction to Automata Theory, Languages, and Computation", af John E. Hopcroft, Rajeev Motwani, Jefrey D. Ullman, Third Edition, Addison-Wesley, 2007.
Kursusbogen "02141: Automata Theory and Languages" udvalgt af Hanne Riis Nielson indeholder de nødvendige kapitler.
(2) "Formal Methods - An Appetizer" af Flemming Nielson og Hanne Riis Nielson, Springer, 2019. Videoer på YouTube kanalen FormalMethodsDK. Slides og on-line systemer på FormalMethods.dk
Bemærkninger
Kurset gives på engelsk.
Sidst opdateret
13. maj, 2023