Datavetenskap GR (C), Programmeringsparadigm, 7,5 hp

Observera att litteraturen i kursplanen kan ändras/revideras fram till: 
• 1 juni för en kurs som startar på höstterminen
• 15 november för en kurs som startar på vårterminen
• 1 april för en kurs som startar på sommaren 

Skriv ut eller spara kursplanen som PDF

Du kan enkelt skriva ut en kursplan direkt från webbsidan. Använd kortkommandot ctrl+p (Windows) eller command+p (Mac). I nästa steg väljer du om du vill skriva ut eller spara kursplanen som PDF.

 

För en nedlagd kurs kan eventuell information om avvecklingsperiod hittas under rubriken "Övergångsregel" i senaste versionen av kursplanen.


Versioner:

Kursplan för:
Datavetenskap GR (C), Programmeringsparadigm, 7,5 hp
Computer Science BA (C), Programming Paradigms, 7,5 credits

Allmänna data om kursen

  • Kurskod: DV032G
  • Ämne huvudområde: Datavetenskap
  • Nivå: Grundnivå
  • Progression: (C)
  • Högskolepoäng: 7,5
  • Fördjupning vs. Examen: G2F - Grundnivå, har minst 60 hp kurs/er på grundnivå som förkunskapskrav
  • Utbildningsområde: Tekniska området 100%
  • Ansvarig institution: Kommunikation, kvalitetsteknik och informationssystem
  • Fastställd: 2024-03-14
  • Giltig fr.o.m: 2024-09-02

Syfte

Kursen syftar till att ge en omfattande förståelse för de teoretiska grunderna och praktiska tillämpningarna av olika programmeringsparadigm, med betoning på betydelsen av språkdesign inom mjukvaruutveckling. Deltagarna kommer att utforska de konceptuella skillnaderna mellan imperativ och deklarativ programmering samt hur dessa paradigmer manifesteras i olika programmeringsspråk. Genom en detaljerad granskning av olika tillvägagångssätt kommer studenten träna sin förmåga att identifiera och tillämpa det mest lämpliga programmeringsparadigmet för specifika scenarier, vilket stärker färdigheter inom problemlösning och mjukvarudesign.

En betydande del av kursen kommer att tillägnas de tekniska aspekterna kring språkdesign, inklusive analys och konstruktion av grammatik, och det praktiska arbetet med lexare och parsers. Denna praktiska erfarenhet kommer att etablera en förståelse kring processen för hur källkod översätts till ett exekverbart format, vilket lägger grunden för att skapa anpassade programmeringsspråk.

Vid kursens slut kommer studenterna att ha utvecklat en djup förståelse för programmeringsparadigm och språkdesign, utrustade med färdigheter för att skapa, analysera och utvärdera programmeringsspråk, vilket gör dem till värdefulla tillgångar inom mjukvaruutvecklingsområdet.

Lärandemål

Efter avslutad kurs skall studenten kunna:

  • redogöra för konceptuella skillnader mellan imperativ och deklarativ programmering, samt hur dessa uttrycks i olika programmeringsspråk,
  • särskilja utmärkande egenskaper mellan vanliga programmeringsparadigm såsom objektorientering, funktionell och reaktiv, samt kunna finna lämpliga tillämpningar utifrån givna problem/scenarios,
  • redogöra för innebörden av strukturerade programflöden, dess förhållande till skalbarhet och underhåll, samt kunna beskriva implementationer i form av generisk pseudokod,
  • beskriva viktiga principer som styr semantiken kring programmeringsspråk och kunna redogöra för dess kommunikativa betydelser,
  • analysera och konstruera grammatik som definierar strukturen hos programmeringsspråk, och förstå hur grammatiken påverkar designen av lexare och parsers,
  • arbeta med lexare och parsers för ett enkelt programmeringsspråk, och förstå vilken roll dessa komponenter spelar i översättningen av källkod till ett format som kan exekveras eller vidarebearbetas,
  • förstå rollen som typsystem har i programmeringsspråk, inklusive mekanismer för typkontroll, och tillämpa denna kunskap för att säkerställa typsäkerhet till stöd för språkets semantik,
  • kritiskt utvärdera beslut i språkdesign, med hänsyn till faktorer som läsbarhet, underhållbarhet och språkets lämplighet för dess avsedda tillämpningsområde.

Innehåll

  • Historisk bakgrund till varför det finns olika programmeringsspråk och paradigm, tillsammans med en introduktion till språkdesign.
  • Övergripande genomgång kring hur programmeringsspråk tolkas och kompileras till maskinkod.
  • Programmeringsspråkets ansvar som förmedlare av information och betydelsen av specifikationer, med betoning på semantik och konventioner.
  • Vanligt förekommande programmeringsparadigm, deras utmärkande egenskaper samt hur de relaterar till varandra.
  • Hur förutsättningar kring skalbarhet, underhåll, komplexitet och säkerhet skiljer sig mellan olika paradigm och programmeringsspråk.
  • Hur pseudokod kan användas för att beskriva generiska flöden som kan ge varierade konkret implementation beroende på vilket paradigm som tillämpas.
  • Programmeringsspråksteori (PLT) och dess fokus på formella egenskaper hos programmeringsspråk, såsom syntax, semantik och typsystem, och hur dessa kan användas för att uttrycka algoritmer och lösa problem med olika programmeringsspråk.
  • Hur syntax och semantik arbetar i symbios för att ge både struktur och betydelse till programmeringsspråk.
  • Hur lexare och parser utgör front-end delen av kompilatorn och ansvarar för att både bryta ner källkoden och göra den redo för vidare bearbetning.
  • Vikten av typkontroll för att säkerställa att ett program är korrekt och inte producerar 'runtime errors' på grund av typmismatchning.

Behörighet

Datavetenskap GR (AB), 60 hp, inkluderande 15 hp inom objektorienterad programmering (OOP).

Urvalsregler

Urval sker i enlighet med Högskoleförordningen och den lokala antagningsordningen.

Undervisning

Kursen kan genomföras som campuskurs eller som webbaserad distanskurs utan samlingar. Olika genomföranden ställer olika krav på lärare och student. Vid varje kurstillfälle framgår vilken undervisningsform som kommer att tillämpas. Vissa inslag av påbjudna grupparbeten kan förekomma.

Allt kursmaterial presenteras via en webbaserad undervisningsplattform. Handledning ges via den aktuella undervisningsplattformen. Information i kursen förmedlas i huvudsak på engelska, men inslag av svenska språket kan förekomma.

Examination

L101: Laborationer, 3 hp
Betygsskala: Tvågradig skala
Inlämningsuppgifter med tillhörande rapport.

P101: Projekt, 4 hp
Betygsskala: Sju-gradig skala, A-F o Fx
Slutligt projektarbete med tillhörande rapport.

R101: Reflektion och utvärdering, 0,5 hp
Betygsskala: Tvågradig skala
Egen utvärdering kring lärandet utifrån kursens innehåll samt initiala förväntningar.

Länk till ämnesspecifika betygskriterier: https://www.miun.se/betygskriterier.

Om student har ett besked från samordnaren vid Mittuniversitetet om pedagogiskt stöd vid funktionsnedsättning, har examinatorn rätt att ge anpassad examination för studenten.

Begränsning av examination

Studenter registrerade på denna version av kursplan har rätt att examineras 3 gånger inom loppet av 1 år enligt angivna examinationsformer. Därefter gäller examinationsform enligt senast gällande version av kursplan.

Betygsskala

Sju-gradig skala, A-F o Fx

Litteratur

Välj litteraturlista:

Obligatorisk litteratur

Författare/red: Terence Parr
**Titel: **Definitive ANTLR 4 Reference
Upplaga: Senaste
**Förlag: **The Pragmatic Programmers

Kolla om litteraturen finns på biblioteket

Sidan uppdaterades 2024-02-23