Datateknik GR (C), Reaktiv programmering, 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 

Det går bra att skriva ut en kursplan direkt från webbsidan genom att använda kortkommandot ctrl+P. Det går då även att spara planen som en PDF.

 

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


Kursplan för:

Datateknik GR (C), Reaktiv programmering, 7,5 hp

Computer Engineering BA (C), Reactive Programming, 7.5 credits

Allmänna data om kursen

  • Kurskod: DT176G
  • Ämne huvudområde: Datateknik
  • Nivå: Grundnivå
  • Progression: (C)
  • Namn (inriktning): Reaktiv programmering
  • Högskolepoäng: 7,5
  • Fördjupning vs. Examen: G2F - Kursen ligger på grundnivå och fordrar minst 60 hp kurs(er) på grundnivå som förkunskapskrav.
  • Utbildningsområde: Teknik 100%
  • Ansvarig institution: Kommunikation, kvalitetsteknik och informationssystem
  • Fastställd: 2019-04-29
  • Senast ändrad: 2023-01-09
  • Giltig fr.o.m: 2023-07-01

Syfte

Kursen lär ut grunderna i reaktiv programmering och dess tillämpning igenom hela mjukvaruutvecklingsprocessen.

Lärandemål

Efter godkänd kurs ska studenten kunna:
- förklara det reaktiva manifestet och skapandet av reaktiva system samt ta ställning till dess relevans inom programmering,
- jämföra och differentiera de principiella skillnaderna mellan reaktiv programmering och andra relevanta programmeringsparadigmer (tex. objektorienterad programmering). I något högspråk med stöd för reaktiv programmering.
- förklara de olika kanaler som reaktiva komponenter använder, deras möjliga flöden och resulterande tillstånd,
- designa, implementera och kritisera program som kombinerar flera strömmar med olika operatorer för korrekt programflöde,
- implementera grundläggande tjänster baserad på principer bakom reaktiv programmering,
- använda dig av reaktiv programmering i test-syfte för att emulera olika typer av klienter,
- avgöra om reaktiv kod exekveras synkront eller asynkront och i vilken process/tråd/trådpool,
- bestämma om strömmar är heta eller kalla och vilka konsekvenser det har,
- förklara de olika reaktiva tidsoperatorer och tillämpa de i syfte att testa komponenter,
- implementera tillförlitliga tjänster med reaktiv programmering och strömbrytare.

Innehåll

- grunderna i funktionell programmering: bl.a., strömmar, immutability, flödes-typer (e.g., konsument, producent, funktion), basoperatorer (e.g., filter, map), oändliga strömmar, lat utförande (lazy evaluation), parallelitet och samtidighet.
- The Reactive Manifesto, reaktiva system, reaktiv architektur, reaktiva språk.
- grunderna i reaktiv programmering, bland annat responsivitet, bevakningsmönster (observer-pattern), pull- vs. pushbaserade datastrukturer, lata vs. ivriga (lazy vs. eager) datastrukturer, felhantering, heta vs. kalla (hot vs. cold) strömmar, prenumeration.
- Observable datastruktur samt kommunikationskanalerna (prenumeration, data, absolverat, fel) och skillnad till Iterable.
- grunderna i hantering av reaktiva datastrukturer som Observable, Single, Completable, synkrona vs. asynkrona anrop, avslutning av strömmar
- basoperatorer: dämpning, transformering, reducering, samling, felhantering, samt sidoeffekter.
- avancerade operatorer: komposition och koordination av flöden, gruppering, skräddarsydda/egna operatorer.
- korrekt skapande och hantering av strömmar: Subjekttyper, navigation mellan heta och kalla strömmar, multicasting, caching, upprepning.
- hantering av tid, parallellitet, bland annat integration av externa system, skillnad mot andra traditionella samtidighetskomponenter. Schemaläggning via schedulers: prenumeration, bevakning och avregistrering samt GUI-utveckling och hantering av minnesläckor.
- refaktorering: överbrygga synkrona och asynkrona komponenter samt skapa strömmar av callbacks.
- testning och felhantering: strömbrytare (circuit breakers), hantering av olika hastigheter (backpressure), a-syncront testning, återhämtning från fel.

Behörighet

Datateknik GR (AB), 90 hp, inkluderande 30 hp programmeringskurser innehållandes moment med objektorientering och trådsäkerhet.

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.
Allt kursmaterial presenteras via en webbaserad undervisningsplattform. Handledning ges via den aktuella undervisningsplattformen.

Examination

L101: Laboration, 3,0 hp
Betygsskala: Underkänd (U) eller Godkänd (G)

T101: Tentamen, 4,5 hp
Betygsskala: På kursen ges något av betygen A, B, C, D, E, Fx och F. A - E är Godkänt, Fx och F är underkänt.

Betygskriterier för ämnet finns på www.miun.se/betygskriterier.

Om en student har ett besked från samordnaren vid Mittuniversitetet om pedagogiskt stöd vid funktionsnedsättning, har examinator 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

På kursen ges något av betygen A, B, C, D, E, Fx och F. A - E är Godkänt, Fx och F är underkänt.

Litteratur

Obligatorisk litteratur

  • Författare/red: Nick Samoylov, Thomas Nield
  • Titel: Learning RxJava
  • Upplaga: 2
  • Förlag: Packt
  • Webbadress: https://www.packtpub.com/product/learning-rxjava-second-edition/9781789950151
  • Kommentar: ISBN : 9781789950151
  • Författare/red: Tomasz Nurkiewicz & Ben Christensen
  • Titel: Reactive Programming with RxJava
  • Upplaga: 1
  • Förlag: O’Reilly
  • Kommentar: ISBN : 978-1-491-93165-3

Sidan uppdaterades 2023-03-14