TTK4145

Sanntidsprogrammering

Vår

Trondheim

Engelsk

Oversikt

Snitt

D

2,36

0,47

Ståprosent

82 %

10 poeng

Karakterfordeling
Snitt over tid
Ståprosent over tid

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æringsmål

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.