Funktionell programmering: funktionsbegreppet, högre ordningens funktioner, currying, evalueringsstrategier, strömmar, mönsterpassning, överladdning, polymorfism, interpretering, lat evaluering, 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.
Efter godkänd kurs ska studenten kunna:
- tillämpa och förklara allmänna begrepp inom programmering, särskilt kontrollflöde, rekursion, interpretering, paradigm och beräkningsmodeller
- tillämpa och förklara grundläggande begrepp inom funktionell programmering, särskilt rena funktioner, referenstransparens, högre ordningens funktioner, oföränderlighet, datatyper
- tillämpa och förklara grundläggande koncept inom formella språk och syntaxanalys, särskilt 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.