course-details-portlet

TTK4145

Sanntidsprogrammering

Velg studieår
Studiepoeng 7,5
Nivå Tredjeårsemner, nivå III
Undervisningsstart Vår 2025
Varighet 1 semester
Undervisningsspråk Engelsk
Sted Trondheim
Vurderingsordning Samlet karakter

Om

Om emnet

Faglig innhold

Tema: Programmeringsformalismer for sanntid; POSIX, Ada, Java og Go. Tråder/prosesser, scheduling, synkronisering og kommunikasjon concurrency. Feilhåndtering, tilgjengelighet og konsistens. Programvare kvalitet og utviklingsmetodikk.

Et programeringsprosjekt gjort som gruppearbeide er en vesentlig del av faget.

Øvinger.

Læringsutbytte

Kunnskap:

  • Inngående kjennskap til synkroniseringsmekanismer som semaforer og monitorer.
  • Inngående kjennskap til meldingsbasert synkronisering.
  • Inngående kjennskap til tråder, prosesser, scheduling og synkronisering i perspektiv av et sanntids operativsystem.
  • Inngående kjennskap til vanlige fallgruber ved sanntidsprogrammering.
  • Inngående kjennskap til feilhåndtering og feiltoleranse.
  • Inngående kjennskap til høytilgjengelighet og konsistens i systemer med flere tråder/prosesser.
  • Kjenskap til programmeringsspråkene C, C++, Java, Ada og Go.
  • Kjenskap til CSP, Formelle metoder og bruk av analyseverktøy for sanntidssystemer.

Ferdighet:

  • Gode ferdigheter i design og utvikling av sanntids programvare herunder både systemer basert på meldingssending og delt variabelsynkronisering.
  • Evne til å planlegge og gjennomføre praktisk implementasjon av et programvaresystem av signifikant kompleksitet. (1-2 tusen linjer C-kode).
  • Gode ferdigheter i et fritt valgt programmeringsspråk (sannsynligvis C, C++, Java eller ADA).
  • Studenten skal kunne forholde seg konstruktivt i sitt design til feilhåndtering og konsistens i systemer med flere deltagere.

Generell kompetanse:

  • Gruppesamarbeide.
  • Programvareutvikling
  • Informasjonsteknologi generelt.

Læringsformer og aktiviteter

Forelesninger, øvinger og prosjekt. Prosjektet er ganske stort og vil bli gjort i samarbeide med to andre studenter i hovedregelen.

Obligatoriske aktiviteter

  • Øvinger

Mer om vurdering

Et antall ukentlige øvinger er obligatoriske aktiviteter, og både prosjekt (-mappe) og eksamen må bestås for å bestå faget.Prosjektmappen består av: En (gruppevis) fremdriftsrapport fra første halvpart av semesteret. Gruppens kode. Denne brukes til å sjekke hvor godt programmet virket, og som grunnlag for å vurdere kodekvaliteten. Gruppens vurderinger av et antall andre gruppers kode i tillegg til en post-mortem egen-vurdering. Modenheten av disse går inn i kodekvalitetsevalueringen. En gruppevis sluttrapport med design, erfaringer og refleksjoner. Ved utsatt eksamen (kontinuasjonseksamen) kan skriftlig eksamen bli endret til muntlig eksamen. Dersom studenten også etter utsatt eksamen har sluttkarakteren F/ikke-bestått, må studenten gjenta hele emnet neste studieår.

Kursmateriell

Pensumlitteratur og støttelitteratur oppgis ved semesterstart.

Studiepoengreduksjon

Emnekode Reduksjon Fra
SIE3050 7,5 sp
Dette emne har faglig overlapp med emnet i tabellen over. Om du tar emner som overlapper får du studiepoengreduksjon i det emnet du har dårligst karakter i. Dersom karakteren er lik i de to emnene gis det reduksjon i det emnet som er avlagt sist.

Fagområder

  • Program/system-utvikling
  • Datamaskiner
  • Datateknikk
  • Teknologiske fag

Kontaktinformasjon

Emneansvarlig/koordinator

Faglærere

Ansvarlig enhet

Institutt for teknisk kybernetikk