De studerende vil kunne forstå og anvende de robustheds og sikkerheds formalismer som introduceres i kurset, og anvende værktøjer og teknikker til at løse relaterede problemer.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
forklare og anvende .NET programmeringsmiljøet;
forklare kvalitative forskelle mellem nogle .NET programmeringssprog;
vælge et programmeringssprog baseret på en beskrivelse af krav til funktionalitet og robusthed;
fortolke resultaterne af de værktøjer som behandles i kurset;
sammenligne de behandlede metoder, og vurdere deres anvendelighed i en given kontekst;
anvende nogle af de behandlede teknikker;
gennemføre et softwareprojekt med de behandlede teknikker, og verificere robusthedsegenskaber som del af udviklingen;
opnå ovennævnte resultater som del af en gruppe, men på en sådan måde at de individuelle bidrag kan identificeres; og
kommunikere de opnåede resultater på en klar og præcis måde i en standard form for tekniske rapporter.
Kursusindhold:
Kurset behandler .NET programmeringsmiljøet, samt funktionalitet og robusthedsegenskaber af .NET programmingssprog. Derudover behandles nogle sproguafhængige tilgange til sikkert programmering. Kurset har 3 hoveddele: (1) .NET programmeringsmiljøet og .NET programmeringssprog: denne del introducerer nogle sprog som det imperativt sprog C# og det funktionalt sprog F#, og fokusserer på deres funktionalitet og robusthedsegenskaber. (2) Programmering i Spec#: I denne del introduceres en udvidelse af C#, som gør krav til robusthed eksplicitte så de kan checkes med særlige værktøjer. (3) Komplementære Tilgange: I denne del behandles tilgange som udvider dem som behandles i de andre dele, f.eks., statiske analyse og typesystemer.