DD1361 Programmeringsparadigm 7,5 hp

Programming Paradigms

Kursomgång och genomförande

Kursomgångar saknas för tidigare och kommande terminer, samt för innevarande termin.

Kursinformation

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.

Kursupplägg

Ingen information tillagd

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

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

Per Austrin

Ytterligare information

Kurswebb

Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.

Kurswebb DD1361

Ges av

EECS/Datavetenskap

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

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.