Programspråk och programmeringsparadigmer

Att lära sig nya programmeringsspråk handlar mer om att lära sig nya tankesätt och problemlösningsstrategier än att lära sig en ny syntax. Åtminstone om det nya språket skiljer sig mycket från de språk du redan känner till.

Kursens mål är att ge dig förståelse för hur programmeringsspråk kan konstrueras och implementeras och erfarenhet av att använda olika språk, framförallt från andra grupper än den objektorienterade och imperativa.

Grundläggande: Historia, designprinciper, syntax, semantik, styrflöden, typsystem, namn, räckvidd, bindning och abstraktionsmekanismer. 

Objektorienterade språk: Klassbaserade språk, prototypbaserade språk, inkapsling, informationsgömning, arv, delegering, polymorfism och dynamisk bindning. 

Funktionella språk: Polymorfism, rekursion, funktioner som första klassens programkonstruktioner, högre ordningens funktioner, fördröjd kontra ivrig evaluering och currying. 

Logikbaserade språk: Fakta och regler, resolution and unifiering, sökning och backtracking, rekursion, funktioner och aritmetik, listor och andra strukturer.

Avslutande sammanfattning och utblick.


Undervisning

Undervisningen består av föreläsningar och seminarier.


Examination

Kursen examineras genom hemtentamen och inlämningsuppgifter.

Examinator


Schema finns tillgängligt senast en månad före kursstart. Vi rekommenderar inte utskrift av scheman då vissa ändringar kan ske. Vid kursstart meddelar utbildningsansvarig institution var du hittar ditt schema under utbildningen.
Observera att kurslitteraturen kan ändras fram till två månader före kursstart.


Kursrapporter visas för de tre senaste kurstillfällena.









Studievägledningen för kandidatprogram och kurser

Linnea Carles, Anna-Karin Ernö, Manal Gomaa och Alicja Lysikowska Lissenko

BesöksadressNodhuset, Borgarfjordsgatan 12, Kista

MottagningstiderTisdag 09:30–11.00, drop-in på plan 2, rum G5:1
Onsdag 12.30–14.00, drop-in på Zoom

TelefontiderOnsdag 09.00–11.00
Fredag 09:00–11:00