Modern C++ best practices

7,5 hp

Kursplan, Grundnivå, 5SD818

Det finns en senare version av kursplanen.
Kod
5SD818
Utbildningsnivå
Grundnivå
Huvudområde(n) med fördjupning
Programvaruteknik G1F, Speldesign G1F
Betygsskala
Väl godkänd (VG), Godkänd (G), Underkänd (U)
Fastställd av
Institutionsstyrelsen, 22 maj 2024
Ansvarig institution
Institutionen för speldesign

Behörighetskrav

15 hp i C++-specifika kurser, alternativt 22.5 hp i Programvaruteknik, med minst 15 hp programmering. 

Mål

Vad gäller kunskap och förståelse förväntas studenten efter genomgången kurs kunna:

  • identifiera och förklara idiomatisk hantering av resurser och objekt-livscykel i C++, såsom Resource Acquisition Is Initialization (RAII) och Rule of Five
  • diskutera designprinciperna bakom standardbibliotekets containrar, iteratorer och algoritmer
  • diskutera principerna för stark typning i C++ och dess roll i att förbättra gränssnittets uttryckskraft, minska fel och förbättra effektiviteten
  • redogöra för fördelarna och nackdelarna med olika lösningar för felhantering.

Vad gäller färdighet och förmåga förväntas studenten efter genomgången kurs kunna:

  • använda stackbaserad resurshantering och implementera de speciella medlemsfunktionerna
  • använda enhetstester för att säkerställa kodens funktionalitet och robusthet
  • använda funktioner, namngivna algoritmer, anpassade typer och standardbibliotekstyper för att öka expressivitet, säkerhet/korrekthet eller semantisk precision i C++-kod
  • använda olika mekanismer för felhantering, såsom undantag (exceptions), verifiering (assert) och resultat-typer (optional, expected) för att signalera och hantera fel.

Vad gäller värderingsförmåga och förhållningssätt förväntas studenten efter genomgången kurs kunna:

  • med hänvisning till litteratur, statisk analys, dokumentation eller Core Guidelines, utvärdera kodkvalitet som en funktion av semantisk noggrannhet, säkerhet/korrekthet, testbarhet, felhantering och prestanda.

Innehåll

Syftet med kursen är att hjälpa utvecklare att ta till sig Modern C++ och lära sig att skriva sin kod enklare, mer läsbar och säkrare än de flesta existerande C++-kodbaser, utan att förlora prestanda. Studenten kommer att lära känna det moderna C++-standardbiblioteket, C++ Core Guidelines och hur dessa hjälper utvecklare att undvika vanliga fel som ofta leder till misstag, onödig komplexitet och sämre prestanda. Kursen kommer att demonstrera verktyg som statisk analys och automatiserade tester för att hjälpa studenter att följa bästa praxis och skriva idiomatisk modern C++.

Undervisning

Föreläsningar och workshops

Examination

Kursen examineras genom aktivt deltagande i obligatoriska workshops och genom projektarbete samt muntliga presentationer.

Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en student examineras på annat sätt. Särskilda skäl kan t ex vara besked om särskilt pedagogiskt stöd från universitetets samordnare.

Övriga föreskrifter

Kursen överlappar 5SD815, API-design  och best practices, 7.5 hp

FÖLJ UPPSALA UNIVERSITET PÅ

Uppsala universitet på facebook
Uppsala universitet på Instagram
Uppsala universitet på Youtube
Uppsala universitet på Linkedin