added standard deviations

This commit is contained in:
Ralf Teusner
2016-01-11 19:00:53 +01:00
parent e8cb23849a
commit 5b8f710196
4 changed files with 11 additions and 3 deletions

View File

@ -31,7 +31,7 @@ class ExecutionEnvironmentsController < ApplicationController
def working_time_query def working_time_query
""" """
SELECT exercise_id, avg(working_time) as average_time SELECT exercise_id, avg(working_time) as average_time, stddev_samp(extract('epoch' from working_time)) * interval '1 second' as stddev_time
FROM FROM
( (
SELECT user_id, SELECT user_id,
@ -62,6 +62,7 @@ class ExecutionEnvironmentsController < ApplicationController
COUNT(DISTINCT user_id) AS users, COUNT(DISTINCT user_id) AS users,
AVG(score) AS average_score, AVG(score) AS average_score,
MAX(score) AS maximum_score, MAX(score) AS maximum_score,
stddev_samp(score) as stddev_score,
CASE CASE
WHEN MAX(score)=0 THEN 0 WHEN MAX(score)=0 THEN 0
ELSE 100 / MAX(score) * AVG(score) ELSE 100 / MAX(score) * AVG(score)

View File

@ -4,19 +4,22 @@ h1 = @execution_environment
table.table.table-striped.sortable table.table.table-striped.sortable
thead thead
tr tr
- ['.exercise', '.users', '.score', '.maximum_score', '.percentage_correct', '.runs', '.worktime'].each do |title| - ['.exercise', '.users', '.score', '.maximum_score', '.stddev_score', '.percentage_correct', '.runs', '.worktime', '.stddev_worktime'].each do |title|
th.header = t(title) th.header = t(title)
tbody tbody
- @execution_environment.exercises.each do |exercise| - @execution_environment.exercises.each do |exercise|
- us = user_statistics[exercise.id] - us = user_statistics[exercise.id]
- if not us then us = {"users" => 0, "average_score" => 0.0, "maximum_score" => 0, "percent_correct" => nil, "average_submission_count" => 0} - if not us then us = {"users" => 0, "average_score" => 0.0, "maximum_score" => 0, "stddev_score" => 0.0, "percent_correct" => nil, "average_submission_count" => 0}
- wts = working_time_statistics[exercise.id] - wts = working_time_statistics[exercise.id]
- if wts then average_time = wts["average_time"] else 0 - if wts then average_time = wts["average_time"] else 0
- if wts then stddev_time = wts["stddev_time"] else 0
tr tr
td = link_to exercise.title, controller: "exercises", action: "statistics", id: exercise.id td = link_to exercise.title, controller: "exercises", action: "statistics", id: exercise.id
td = us["users"] td = us["users"]
td = us["average_score"] td = us["average_score"]
td = us["maximum_score"] td = us["maximum_score"]
td = us["stddev_score"]
td = us["percent_correct"] td = us["percent_correct"]
td = us["average_submission_count"] td = us["average_submission_count"]
td = average_time td = average_time
td = stddev_time

View File

@ -171,6 +171,8 @@ de:
exercise: Übung exercise: Übung
users: Anzahl (externer) Nutzer users: Anzahl (externer) Nutzer
score: Durchschnittliche Punktzahl score: Durchschnittliche Punktzahl
stddev_score: stdabw (Punktzahl)
stddev_worktime: stdabw (Arbeitszeit)
maximum_score: Maximale Punktzahl maximum_score: Maximale Punktzahl
percentage_correct: Prozent Korrekt percentage_correct: Prozent Korrekt
runs: Durchschnittliche Anzahl von Versuchen runs: Durchschnittliche Anzahl von Versuchen

View File

@ -171,6 +171,8 @@ en:
exercise: Exercise exercise: Exercise
users: (External) Users Count users: (External) Users Count
score: Average Score score: Average Score
stddev_score: stddev (score)
stddev_worktime: stddev (working time)
maximum_score: Maximum Score maximum_score: Maximum Score
percentage_correct: Percentage Correct percentage_correct: Percentage Correct
runs: Average Number of Runs runs: Average Number of Runs