Kursplan för API-design och best practices
API Design and Best Practices
- 7,5 högskolepoäng
- Kurskod: 5SD815
- Utbildningsnivå: Grundnivå
-
Huvudområde(n) och successiv fördjupning:
Datavetenskap G1F
Förklaring av koder
Koden visar kursens utbildningsnivå och fördjupning i förhållande till andra kurser inom huvudområdet och examensfordringarna för generella examina:
Grundnivå
- G1N: har endast gymnasiala förkunskapskrav
- G1F: har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
- G1E: innehåller särskilt utformat examensarbete för högskoleexamen
- G2F: har minst 60 hp kurs/er på grundnivå som förkunskapskrav
- G2E: har minst 60 hp kurs/er på grundnivå som förkunskapskrav, innehåller examensarbete för kandidatexamen
- GXX: kursens fördjupning kan inte klassificeras
Avancerad nivå
- A1N: har endast kurs/er på grundnivå som förkunskapskrav
- A1F: har kurs/er på avancerad nivå som förkunskapskrav
- A1E: innehåller examensarbete för magisterexamen
- A2E: innehåller examensarbete för masterexamen
- AXX: kursens fördjupning kan inte klassificeras
- Betygsskala: Underkänd (U), godkänd (G), väl godkänd (VG)
- Inrättad: 2019-10-30
- Inrättad av: Institutionsstyrelsen
- Gäller från: HT 2020
-
Behörighet:
22,5 hp datavetenskap inklusive Programmering med C/C++ 1 - introduktion, 5 hp och Programmering med C/C++ 2 - algoritmer, datastrukturer och designmönster, 5 hp eller 10 hp från kurser med motsvarande innehåll.
- Ansvarig institution: Institutionen för speldesign
Beslut och riktlinjer
Kursen ges som fristående kurs och är valbar inom Kandidatprogram i speldesign och programmering, 180 hp.
Mål
Vad gäller kunskap och förståelse förväntas studenten efter genomgången kurs kunna:
- redogöra för vad som utgör ett API av hög kvalitet,
- förklara vad ren och expressiv kod är, och varför det är viktigt,
- hänvisa till etablerade standarder och best practices för idiomatisk kod.
Vad gäller färdighet och förmåga förväntas studenten efter genomgången kurs kunna:
- designa och implementera ett API för ett dokumenterat användarbehov,
- applicera best practices för att skriva idiomatisk kod,
- dokumentera och motivera val som gjorts under design, implementation och testning av ett API.
Vad gäller värderingsförmåga och analys förväntas studenten efter genomgången kurs kunna:
- kritiskt analysera ett API och kodbas.
Innehåll
Syftet med kursen är att lära studenterna att producera kod av hög kvalitet och hög tillgänglighet för andra utvecklare att använda.
Undervisningen sker i C++ och fokuserar på gränssnittsdesign, clean code och testning. Genom föreläsningar och praktiska övningar får studenten kunskap om idiomatisk modern C++, expressiv kod, automatisk testning och test-driven design.
- Läsa- och skriva idiomatisk modern C++,
- Utvärdera kodkvalitet som en funktion av hur korrekt, testbar, robust, expressiv och ren den är, samt hur koden hanterar fel,
- Dokumentera användarbehov och sätta upp tester för att bekräfta att behoven möts samt,
- Designa och utveckla ett användbart och expressivt API.
Undervisning
Undervisningen sker i form av föreläsningar, obligatoriska workshops samt handledning i projektarbete.
Examination
Kursen betygsätts enligt skalan Väl godkänd, Godkänd eller Underkänd. Kursen examineras genom aktivt deltagande i workshops samt genom ett projektarbete med tillhörande code reviews och en skriven design report.
För betyget Väl Godkänt krävs att det inlämnade APIt, code review och design report håller en hög teknisk nivå där resultatet visar prov på en högre nivå av problemlösningsförmåga. Uppgifterna ska även vara inlämnade inom utsatt tid.
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.
Uppsala universitet accepterar inte fusk och plagiat. Studenter som misstänks vara inblandade i någon form av fusk och/eller plagiat anmäls till rektor. De disciplinära åtgärderna är varning eller avstängning från studier under en begränsad tid.
Litteratur
Uppgift om kurslitteratur saknas. Ta kontakt med ansvarig institution för mer information.