Rubriker markerade med en asterisk ( * ) kommer från kursplan version VT 2023
Innehåll och lärandemål
Kursinnehåll
Funktionell programmering: funktionsbegreppet, högre ordningens funktioner, currying, evalueringsstrategier, strömmar, mönsterpassning, överlagring, polymorfism, interpretering, lat evaluering, typer och typklasser.
Formella språk och syntaxanalys: automater, reguljära uttryck, grammatiker, lexikal analys, rekursiv medåkning, språkklasser.
Språköversättning: interpretering, kompilering och länkning.
Programmeringsparadigm: kontrollflöde, subprogram, rekursion, klasser, typer, beräkningsmodeller och minnesmodeller.
Lärandemål
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, typer
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
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.
Förberedelser inför kursstart
Kurslitteratur
Kursen har 3 olika kursböcker, en per del: Funktionell programmering har kursboken "Programming in Haskell" av Graham Hutton. Paradigm har kursboken "Concepts of programming languages" av Robert W. Sebesta. Syntax har kursboken "Introduction to Automata Theory, Languages, and Computation" av Ullman/Hopcroft.
Programvara
Vi använder mycket terminaler (till exempel Bash/ZShell). För Haskell använder vi Glasgow Haskell Compiler (ghc). Den version som du får med apt på Ubuntu eller brew på Mac fungerar utmärkt.
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
LAB1 - Laborationer, 2,0 hp, Betygsskala: A, B, C, D, E, FX, F
MAS1 - Mästarprov, 2,5 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.
Mästarprov är individuella uppgifter som redovisas både skriftligt och muntligt.
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
Ändringar inför denna kursomgång
Labben INET från kurs DD1362 utgår och kan numera endast redovisas under labbveckan i juni. Sista tillfället är labbveckan i juni 2024. Det är starkt rekommenderat att göra labb F2, men den är inte längre ett krav för betyg E utan betygshöjande.