DD1361 Programmeringsparadigm 7,5 hp

Programming Paradigms

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

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

Det finns inget planerat kurstillfälle.

Lärandemål

Efter genomgången kurs ska studenten kunna

  • tillämpa och förklara allmänna begrepp inom programmering: kontrollflöde, rekursion, interpretering, paradigmer
  • 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 begrepp inom logikprogrammering: unifiering, backtracking, snitt, negering och olika programmeringstekniker som t.ex. generate-test
  • 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

för 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.

Logikprogrammering: unifiering, backtracking, negering, snitt och låddiagram.

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

För fristående kursstuderande: grundläggande högskolebehörighet samt 7,5 hp i matematik och 6 hp datalogi eller programmeringsteknik. Dessutom krävs svenska B eller motsvarande och engelska A eller motsvarande.

Rekommenderade förkunskaper

För KTH-studerande: DD1337, DD1338 och DD1350 Logik för dataloger (kan läsas parallellt) eller motsvarande.

Litteratur

Meddelas senast 4 veckor före kursstart på kursens hemsida. Föregående läsår användes material producerat vid institutionen.

Examination

  • LAB2 - Laborationer, 4,5, betygsskala: A, B, C, D, E, FX, F
  • TEN2 - Tentamen, 3,0, betygsskala: P, F

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

Ges av

EECS/Datavetenskap

Kontaktperson

Marcus Dicander, e-post: dicander@kth.se

Examinator

Per Austrin <austrin@kth.se>

Påbyggnad

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

Versionsinformation

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