DD1362 Programmeringsparadigm 6,0 hp

Programming Paradigms

Den här kursen ger en introduktion till funktionell programmering, webbprogrammering och syntaxanalys.

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

VT19 progp19 för programstuderande

VT20 progp20 för programstuderande

Lärandemål

Efter godkänd kurs ska studenten kunna:

  • tillämpa och förklara allmänna begrepp inom programmering: kontrollflöde, rekursion, interpretering, paradigm,
  • tillämpa och förklara grundläggande begrepp inom funktionell programmering: högre ordningens funktioner, currying, lat evaluering, mönsterpassning, typer och klasser,
  • tillämpa och förklara grundläggande koncept inom formella språk och syntaxanalys: automater, reguljära uttryck, grammatiker, lexikal analys, och rekursiv medåkning,
  • skriva egna klient-serverprogram samt använda protokoll och kunna förklara hur de tolkas och skrivs

i syfte att

  • få ett bredare perspektiv på programmering,
  • kunna bedöma vilket paradigm och vilket programspråk som är lämpligt för att lösa en viss uppgift,
  • kunna använda adekvat programmeringsstil i valt programmeringsparadigm,
  • aktivt kunna delta i diskussioner om programmeringsparadigm, programspråkshistorik , språkdefinition, egenskaper hos typsystem, principer vid språkdesign, språköversättning, programmeringsprinciper och programmeringsbegrepp

Kursens huvudsakliga innehåll

Funktionell programmering: funktionsbegreppet, högre ordningens funktioner, currying, evalueringsstrategier, strömmar, mönsterpassning, överladdning, polymorfi, interpretering, typer och klasser.

Formella språk och syntaxanalys: automater, reguljära uttryck, grammatiker, lexikal analys, rekursiv medåkning, språkklasser

Internetprogrammering.

Språköversättning: interpretering, kompilering och länkning.

Behörighet

DD1337 Programmering och DD1338 Algoritmer och datastrukturer,  eller motsvarande kurser.

Rekommenderade förkunskaper

DD1337 Programmering, DD1338 Algoritmer och datastrukturer, DD1396 Parallellprogrammering i introduktion till datalogi, DD1351 Logik för dataloger eller motsvarande kurser.

Litteratur

Meddelas senast 10 veckor före kursstart på kurswebben.

Examination

  • LAB1 - Laborationer, 3,5, betygsskala: A, B, C, D, E, FX, F
  • TEN1 - Tentamen, 2,5, betygsskala: P, F

I denna kurs tillämpas skolans hederskodex, se: http://www.kth.se/csc/utbildning/hederskodex.

Vid särskilda skäl för studenter med funktionsnedsättning och vid omexamination av enstaka studenter har examinatorn rätt att medge annan examinationsform.

Plussning är inte tillåtet.

Ges av

EECS/Datavetenskap

Kontaktperson

Marcus Dicander <dicander@kth.se>

Examinator

Per Austrin <austrin@kth.se>

Övrig information

Kursen kan inte kombineras med DD1361.

Påbyggnad

DD2481 Principer för programspråk, DD2372 Automater och språk, DD2457 Programsemantik och programanalys.

Versionsinformation

Kursplan gäller från och med VT2019.
Examinationsinformation gäller från och med VT2019.