1 - Beskrivande statistik
Den rent statisktiska examinationsuppgiften.
Last updated
Den rent statisktiska examinationsuppgiften.
Last updated
Examinationsuppgift 1 https://github.com/1dv021/examination-1.git
VIKTIGT! Innan du börjar arbeta med examinationsuppgiften är det viktigt att du lägger till examinationsuppgiftens repo till ditt privata repo för examinationsuppgiften.
OBS! OBS! OBS!
Detta är en obligatorisk och examinerande uppgift som du ska lösa helt på egen hand.
Du måste göra regelbundna "commits" och "pushes" av koden till ditt repo för uppgiften för att kursledningen ska kunna följa ditt arbetet med uppgiften.
Du ska kunna förklara samtliga konstruktioner och satser som din lösning av uppgiften innehåller.
I denna examinationsuppgift ska du slutföra ett påbörjat projekt som syftar till att presentera beskrivande statistik över stora datamängder.
Beskrivande statistik (eller deskriptiv statistik; eng. "descriptive statistics") är ett sätt att reducera stora datamängder för att presentera en sammanfattning av datamängden.
Din uppgift är att slutföra implementationen av modulen statistics.js
vars exporterade funktioner kan användas för att reducera den datamängd som skickas som argument, i form av en array med värden av typen number
, till dem.
Modulen ska exportera funktioner som kan bestämma maximum- och minimumvärden, variationsbredd ("range"), medelvärde ("mean"), median, standardavvikelse ("standard deviation") samt typvärde ("mode", som kan vara en array med värden). Det ska även finnas en funktion som returnera ett objekt innehållande samtliga värden. Objektets egenskapers namn och typ framgår av JSDOC-kommentaren av funktionen descriptiveStatistics
, som du finner i modulen.
Av koden ovan framgår det att funktionerna descriptiveStatistics
, maximum
, minimum
, mean
, median
, minimum
, mode
, range
samt standardDeviation
ska exporteras varför dessa måste implementeras. Funktionen descriptiveStatistics
är redan deklarerad och exporterad men saknar implementation. Resterande funktioner saknar deklaration och måste dessutom exporteras.
Funktionerna i modulen statistics.js
får inte ha några som helst sidoeffekter, utan ska var så kallade "pure functions".
De exporterade funktionerna ska kasta undantag (men inte fånga några!).
Anropas någon av funktionerna med ett argument som inte är en array ska ett undantag av typen TypeError
kastas innehållande meddelandet The passed argument is not an array.
.
Anropas någon av funktionerna med ett argument som refererar till en tom array, ska ett undantag av typen Error
kastas innehållande meddelandet The passed array contains no elements.
.
Anropas någon av funktionerna med ett argument som refererar till en array vars element innehåller annat än bara värden av typen number
, ska ett undantag av typen TypeError
kastas innehållande meddelandet The passed array contains not just numbers.
.
Undvik om lämpligt att upprepa kod och bryt därför inte mot principen DRY ("don't repeat yourself").
Dokumentera funktionerna genom att använda JSDOC-kommentarer (beskrivning ska finnas och dokumentation av parametrar, kastade undantag och returvärden). Använd även radkommentarer innuti funktioner i de fall det är befogat.
Medelvärde, median, typvärde och variationsbredd, http://www.matteboken.se/lektioner/matte-1/sannolikhet-och-statistik/medelvarde-median-typvarde-och-variationsbredd
Standardavvikelse, http://www.matteboken.se/lektioner/matte-2/statistik/standardavvikelse
Genom att köra testerna som kommer med examinationsuppgiften kan du undersöka om koden du skrivit löst uppgiften (i alla fall enligt bifogade tester...).