Avancerad Programmering
Advanced Programming
Om kursplanen
Betygsskala
Kursens moduler
Inplacering
Kursen är obligatorisk inom Software Engineering and Management, kandidatprogram (N1SOF).
Huvudområde med fördjupning
Behörighetskrav
För att vara behörig till kursen ska studenten ha avklarat: DIT009 Grundläggande programmering, 7,5 hp, DIT349 Grundläggande mjukvaruarkitektur, 7,5 hp, och DIT357 Distribuerade System 7.5 hp, eller motsvarande.
Följande kunskapsnivå i Engelska krävs; Engelska 6/Engelska B eller motsvarande från ett erkänt internationellt test, t.ex. TOELF, IELTS.
Innehåll
Kursen introducerar studenter till avancerade programmeringsparadigmer, med början i grunderna av funktionell programmering. Studenterna kommer att utforska kärnkoncept såsom strömmar, oföränderlighet och grunderna i parallellism och samtidighet. Den andra delen av kursen övergår till principerna för reaktiv programmering, inklusive en förståelse för Reactive Manifesto, reaktiva system och arkitektur. Studenterna kommer att lära sig hanteringen av reaktiva datastrukturer (t.ex. Observables och Singles), hantering av prenumerationsflöden och felhantering. Studenterna kommer att tillämpa den teori som lärts ut i klassrummet genom praktiska övningar och uppgifter som använder ReactiveX API:er för att bygga asynkrona programmeringslösningar. Dessa praktiska moment förstärker koncept som strömhantering, felhantering och backpressure genom att ge studenterna möjlighet att implementera responsiva, realtidsapplikationer i en kontrollerad miljö.
Mål
Efter godkänd kurs ska studenten kunna:
Kunskap och förståelse
- Beskriva grunderna i funktionell programmering, inklusive strömmar, oföränderlighet, viktiga operatorer (filter, map) och begreppen parallellism och samtidighet.
- Förstå och förklara den teoretiska bakgrunden till reaktiv programmering, inklusive koncept som asynkrona dataströmmar, observables och subscribers.
- Beskriva och tillämpa olika reaktiva tidsoperatorer för att effektivt testa komponenter, och säkerställa en korrekt simulering av tidsbaserade beteenden och fördröjningar.
Färdigheter och förmåga
- Förklara betydelsen av reaktiv programmering i kontexten av modern mjukvaruarkitektur och distribuerade system.
- Jämföra och kontrastera reaktiv programmering med andra vanliga programmeringsparadigmer (procedur- eller objektorienterad programmering) med hjälp av vilket som helst hög-nivå språk som stödjer reaktiv programmering.
- Designa, implementera och utvärdera program som integrerar flera dataströmmar med olika operatorer för att säkerställa korrekt programflöde och beteende.
- Utveckla grundläggande tjänster som tillämpar viktiga principer för reaktiv programmering, såsom asynkron händelsehantering, hantering av backpressure och icke-blockerande databehandling.
- Skapa och utvärdera teststrategier för att verifiera och validera reaktiva system för att säkerställa systemets tillförlitlighet och respons (t.ex. genom att simulera olika typer av klientinteraktioner).
Värderingsförmåga och förhållningssätt
- Identifiera och analysera om reaktiv kod exekveras synkront eller asynkront, och specificera vilken process, tråd eller trådpool som ansvarar för exekveringen.
- Analysera och utvärdera avvägningen vid användning av olika kanaler i reaktiva komponenter, inklusive deras potentiella flöden och de resulterande tillstånden i ett reaktivt system.
Hållbarhetsmärkning
Former för undervisning
Undervisningen består av föreläsningar, grupparbete, övningar samt handledning i anslutning till övningarna.
Undervisningsspråk: engelska
Examinationsformer
Kursen examineras genom en individuell skriftlig tentamen som genomförs i en skrivsal i slutet av kursen samt genom implementeringsuppgifter som normalt genomförs i grupp.
Uppgifterna examineras baserat på lösningar av obligatoriska problem som lämnas in under kursens gång och baserat på individuella bidrag till grupparbetet. Omtentamen av uppgiftsdelen består av individuella uppgifter.
Om en student som har underkänts två gånger på samma examinerande moment önskar byta examinator inför nästa examinationstillfälle ska en sådan begäran bifallas om det inte finns särskilda skäl däremot (6 kap. 22 § HF).
Om en student har fått besked om pedagogiskt stöd från Göteborgs universitet med rekommendation om anpassad examination och/eller anpassad examinationsform kan examinator, i det fall det är förenligt med kursens lärandemål och förutsatt att inte orimliga resurser krävs, besluta att bevilja studenten anpassad examination och/eller anpassad examinationsform.
Om en kurs har avvecklats eller genomgått en större förändring ska studenten erbjudas minst två examinationstillfällen, utöver ordinarie examinationstillfälle. Dessa tillfällen fördelas under en tid av minst ett år, dock som längst två år efter det att kursen avvecklats/förändrats. Vad gäller praktik och verksamhetsförlagd utbildning (VFU) gäller motsvarande, men med begränsning till endast ett ytterligare examinationstillfälle.
Om en student har fått besked om att denne uppfyller kraven för att vara student vid Riksidrottsuniversitetet (RIU-student) har examinator rätt att besluta om anpassning vid examination, om detta görs i enlighet med Lokala regler gällande RIU-studenter vid Göteborgs universitet.
Betyg
Delkurser
- Skriftlig salstentamen, 4,5 hp
Betygsskala: Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3) och Underkänd (U) - Inlämningsuppgifter, 3 hp
Betygsskala: Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3) och Underkänd (U)
På kursen ges något av betygen Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3) och Underkänd (U).
För att få godkänt på kursen måste samtliga obligatoriska moment vara godkända. För att få ett högre betyg än 3 krävs ett högre viktat genomsnitt på de obligatoriska momenten.
Kursvärdering
Kursen utvärderas genom möten, både under och efter kursen, mellan lärare och studentrepresentanter. Ett anonymt skriftligt frågeformulär skickas även ut till studenterna efter kursens slut. Resultaten av utvärderingarna används för att förbättra kursinnehållet och som indikation till vilka delar som skulle kunna läggas till, tas bort, förbättras eller ändras.