Hoppa till huvudinnehållet

DD1361 Programmeringsparadigm 7,5 hp

Kursomgångar saknas för aktuella eller kommande terminer.
Rubriker med innehåll från kursplan DD1361 (HT 2014–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursinnehå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.

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.

Kurslitteratur och förberedelser

Särskild 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.

Utrustning

Ingen information tillagd

Kurslitteratur

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

Examination och slutförande

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

Betygsskala

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

Examination

  • LAB2 - Laborationer, 4,5 hp, betygsskala: A, B, C, D, E, FX, F
  • TEN2 - Tentamen, 3,0 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.

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

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

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

Teknik

Utbildningsnivå

Grundnivå

Påbyggnad

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

Kontaktperson

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