Hoppa till huvudinnehållet
Till KTH:s startsida

FIK3620 Typer, semantik och programmeringsspråk 7,5 hp

Information per kursomgång

Termin

Information för HT 2024 Start 2024-10-28 programstuderande

Studielokalisering

KTH Kista

Varaktighet
2024-10-28 - 2025-06-02
Perioder

HT 2024: P2 (3,0 hp)

VT 2025: P3 (2,0 hp), P4 (2,5 hp)

Studietakt

17%

Anmälningskod

51490

Undervisningsform

Normal Dagtid

Undervisningsspråk

Engelska

Kurs-PM
Kurs-PM är inte publicerat
Antal platser

Ingen platsbegränsning

Målgrupp
Ingen information tillagd
Planerade schemamoduler
[object Object]
Schema
Schema är inte publicerat
Del av program
Ingen information tillagd

Kontakt

Examinator

Profile picture Mads Dam

Kursansvarig
Ingen information tillagd
Lärare
Ingen information tillagd

Kursplan som PDF

Notera: all information från kursplanen visas i tillgängligt format på denna sida.

Kursplan FIK3620 (HT 2024–)
Rubriker med innehåll från kursplan FIK3620 (HT 2024–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursinnehåll

Kursen är uppdelad i tre separata moduler som täcker olika aspekter av typer, semantik och programspråksteori:

1. Operationell semantik och lambdakalkylen

  • Småstegs- och storstegs-operationell semantik
  • Otypad lambdakalkylen
  • Grundläggande typad funktionell programmering

2. Typad lambdakalkyl med utökningar

  • Typregler
  • Typsundhetsbevis
  • Semantik för let-bindning, par, tupler, records, sums, och listor
  • Referenser och undantag

3. Subtypning och polymorfism

  • Subtypspolymorfism
  • Parametrisk polymorfism
  • Ad-hoc polymorfism
  • Strukturella och nominella typsystem
  • Gradvis typning

Lärandemål

Efter kursen kommer studenten kunna:

  • Konstruera typsundhetsbevis
  • Analysera typregler
  • Analysera småstegs- och storstegs-operationell semantik
  • Implementera en programtolk och en typkontrollerare för ett typbaserat funktionellt språk
  • Tillämpa otypad och enkelt typad lambdakalkyl med utökningar
  • Diskutera utmaningar och möjligheter för jämställdhet och mångfald inom området programvaruutveckling

Kurslitteratur och förberedelser

Särskild behörighet

Ingen information tillagd

Rekommenderade förkunskaper

Goda kunskaper inom programmering. God grundläggande förståelse av diskret matematik och logik.
Kunskap inom funktionell programmering och kompilatorer är en fördel men inte ett krav.

Kurslitteratur

Du hittar information om kurslitteratur antingen i kursomgångens kurs-PM eller i kursomgångens kursrum i Canvas.

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

Betygsskala

P, F

Examination

  • EXA1 - Examination, 7,5 hp, betygsskala: P, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Se "Krav för slutbetyg" nedan.

Övriga krav för slutbetyg

Studenten erhåller betyg P på kursen om följande är uppfyllt:

  1. Aktivt deltagande i seminarier
  2. Godkända muntliga presentationer vid seminarier
  3. Godkända lösningar på teoretiska övningar
  4. Godkänd inlämning och presentation av programvaruimplementation

Om studenten inte kan medverka på någon av seminarierna kan detta kompletteras vid ett alternativt tillfälle.

Examinator

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Ytterligare information

Kursrum i Canvas

Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.

Ges av

Huvudområde

Denna kurs tillhör inget huvudområde.

Utbildningsnivå

Forskarnivå

Forskarkurs

Forskarkurser på EECS/Programvaruteknik och datorsystem