Kursplan för Empirisk programvaruteknik

Kursplan fastställd 2021-02-17 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnEmpirical software engineering
  • KurskodDAT246
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPSOF
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 24115
  • Max antal deltagare80
  • Blockschema
  • Sökbar för utbytesstudenterJa

Poängfördelning

0114 Inlämningsuppgift 2,5 hp
Betygsskala: UG
2,5 hp
0214 Tentamen 5 hp
Betygsskala: TH
5 hp
  • 24 Okt 2022 em J
  • 05 Jan 2023 fm L
  • 22 Aug 2023 em J

I program

Examinator

Gå till kurshemsidan (Öppnas i ny flik)

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

Kursspecifika förkunskaper

För behörighet till kursen krävs minst en kandidatexamen inom Software Engineering, programvaruteknik, Datavetenskap eller motsvarande.

Syfte

Mjukvaruföretag måste ständigt förbättra sig för att bli snabbare, bättre och mer effektiv. Kursen syftar till att lära sig  vetenskapliga metoder, särskilt experiment och statistik, för datainsamling, t.ex. som underlag för analys och beslutsstöd i förbättringsinitiativ i mjukvaruorganisationer. Kursen förbereder studenterna för examensarbete och förbättrar elevens förmåga att bedriva forskarstudier.

Lärandemål (efter fullgjord kurs ska studenten kunna)

  • Kunskaper och förståelse:
    • Beskriva, förstå och tillämpa empiri inom programvaruteknik
    • Beskriva, förstå och delvis tillämpa principerna bakom fallstudier/experiment/enkätstudier.
    • Beskriva och förstå de underliggande principerna för meta-analytiska studier
    • Förklara vikten av forskningsetik.
    • Känna till och definiera "code of ethics" gällande forskning inom programvaruteknik.
    • Redogöra för och förklara vikten av validitetshot och hur man kan kontrollera dessa typer av hot.
    • Beskriva och förklara koncepten sannolikhetsrymd, (inkl. betingad sannolikhet), stokastiska variabler, väntvärden, och stokastiska processer, samt känna till flertal konkreta exampel på dessa koncept
    • Beskriva Markov chain Monte Carlo metoder så som Metropolis
    • Beskriva och förklara Hamiltonian Monte Carlo
    • Beskriva och förklara multicollinarity, post-treatment bias, collider bias, confounding
    • Beskriva och förklara sätt att undvika overfitting.
  • Färdigheter och förmågor:
    • Utvärdera lämpligheten av, och använda, analysmetoder på data
    • Analysera deskriptiv statistik och definiera lämpliga analysmetoder.
    • Använda och förklara "code of ethics" för programvaruteknisk forskning. 
    • Designa statistiska modeller matematiskt och implementera dessa i ett programspråk.
    • Använda sig av konceptet stokastiska processer, dvs Bernoulli, Binomial, Gaussian, och Poisson, med spridningsinslag. 
    • Använda sig av ordnade kategoriska utfall (ordered-logit) och prediktorer
    • Utvärdera lämpligheten, från ett ontologiskt och epistemologiskt perspektiv, av olika distributioner
    • Använda sig av och utvärdera directed acyclic graphs för att argumentera för kausalitet
  • Värderingsförmåga och förhållningssätt:
    • Ange och diskutera verktyg för dataanalys och, i synnerhet, bedöma verktygens resultat.
    • Bedöma lämpligheten i olika empiriska metoder och deras tillämpbarhet i att lösa olika och disparata programvarutekniska problemställningar.
    • Ifrågasätta och bedöma vanliga etiska frågeställningar inom programvarutekniskforskning. 
    • Utvärdera diagnostik från Hamiltonian Monte Carlo och kvadratisk approximering genom att använda koncept from informationsteori, dvs informationsentropi, WAIC och PSIS-LOO.
    • Bedöma en posteriori sannolikhetsdistribution för prediktering utanför urval och för posteriori prediktionskontroller.

Innehåll

Kursen är för studenter som är intresserade av att lära sig applicera olika empiriska metoder inom programvaruteknik. Kursen introducerar kvantitativa och kvalitativa metoder inom programvaruteknik. 

Kursen innehåller:
  • Deskriptiv och inferentiell statistik applicerat på programvaruteknik.
  • Kvalitativa och kvantitativa metoder inom programvaruteknik.
  • Metoder för att praktisera evidensbaserad programvaruteknik.
  • Användning av statistiska verktyg.

Organisation

Kursen introducerar kvantitativa och kvalitativa metoder för programvaruteknisk forskning tillsammans med statistiska metoder för att analysera resultat.

Kursen innehåller: Deskriptiva och inferentiella statistiska metoder applicerade inom programvaruteknik. Användning av kvantitativa och kvalitativa metoder. Metoder för att analysera kvantitativ och kvalitativ data inom programvaruteknik. Användandet av statistiska verktyg.

Litteratur

Vi kommer använda olika böcker och forskningsartiklar för att belysa de olika fälten. Mer information fås vid kursstart.

Examination inklusive obligatoriska moment

Kursen examineras genom en inlämningsuppgift som genomförs individuellt. Inlämningsuppgiften är teoretisk och praktisk till sin natur.
Kursen examineras slutligen också med en skriftlig salstentamen.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.