Kursplan fastställd 2019-02-07 av programansvarig (eller motsvarande).
Kursöversikt
- Engelskt namnTypes for programs and proofs
- KurskodDAT350
- Omfattning7,5 Högskolepoäng
- ÄgareMPALG
- UtbildningsnivåAvancerad nivå
- HuvudområdeDatateknik, Informationsteknik
- InstitutionDATA- OCH INFORMATIONSTEKNIK
- BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd
Kurstillfälle 1
- Undervisningsspråk Engelska
- Anmälningskod 02111
- Blockschema
- Sökbar för utbytesstudenterJa
Poängfördelning
Modul | LP1 | LP2 | LP3 | LP4 | Sommar | Ej LP | Tentamensdatum |
---|---|---|---|---|---|---|---|
0117 Muntlig tentamen 7,5 hp Betygsskala: TH | 7,5 hp |
I program
- MPALG - DATAVETENSKAP - ALGORITMER, PROGRAMSPRÅK OCH LOGIK, MASTERPROGRAM, Årskurs 1 (obligatoriskt valbar)
- MPALG - DATAVETENSKAP - ALGORITMER, PROGRAMSPRÅK OCH LOGIK, MASTERPROGRAM, Årskurs 2 (valbar)
Examinator
- Peter Dybjer
- Professor, Computing Science, Data- och informationsteknik
Behörighet
Grundläggande behörighet för avancerad nivåSökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.
Särskild behörighet
Engelska 6Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.
Kursspecifika förkunskaper
120 hp i datavetenskap eller matematik eller motsvarande samt grundläggande kunskaper i logik och funktionell programmering.Syfte
Kraftfulla och flexibla typsystem är en viktig aspekt för moderna programmeringsspråk. Denna kurs ger en introduktion till detta område. Bland annat introducerar vi begreppet "beroende typ", dvs. en typ som kan bero på värden av en annan typ. Beroende typer har många användningsområden. Genom att identifiera påståenden och typer (Curry-Howard identifieringen) kan man uttrycka i stort sett vilken egenskap som helst hos ett program. I kursen får studenten lära sig använda ett interaktivt programmeringssystem för beoende typer. Kursen ska ge breda och gedigna kunskaper om hur typsystem för programspråk är uppbyggda, och dessutom ge exempel på typbaserade tekniker inom datavetenskapen.Lärandemål (efter fullgjord kurs ska studenten kunna)
- hur man programmerar i ett funktionellt programmeringsspråk med beroende typer
- hur man bevisar teorem i ett funktionellt programmeringsspråk med beroende typer
- förstå hur man använder deduktionssystem för att presentera typsystem och beräkningsregler för programmeringsspråk
Innehåll
- Introduktion till operationell semantik och typsystem
- Beroende typer
- Curry-Howard identifieringen av påståenden och typer
- Programmering i Agda, en bevisassistent
- Presentation av forskningsartiklar om typsystem
Organisation
Undervisning ges i form av föreläsningar, övningar och handledning.Litteratur
- Types and Programming Languages by Benjamin Pierce, MIT Press
- Verified Functional Programming in Agda by Aaron Stump, Association for Computing Machinery and Morgan & Claypool
Examination inklusive obligatoriska moment
- Hemtentamen för betyg 3, utöver detta muntlig tentamen för betyg 4 eller 5
- Presentation av avancerat ämne eller forskningsresultat om typsystem eller av programmeringsprojekt i det beroende typade språket Agda