Modern C++ best practices
Kursplan, Grundnivå, 5SD818
- 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