EOppi student grading
From wikiluntti
Introduction
Set the grades according to the points given to the exercises.
Theory
Save the database as a csv file and read it. Choose the exercises and run the python script.
#Python3
import csv
import math
import glob
import numpy as np
def getExeNames(titles):
ti = []
for title in titles[1:]:
ti.append(title)
return ti
def getRow(row):
r = [row[0]]
points = []
for i,p in enumerate( row[1:] ):
#Convert the numbers separated by space into a array of integers
#Fetch the max value of and return those.
#print( p )
#print( [(i) for i in p.strip().split(' ')] )
values = [int('0'+i) for i in p.strip().split(' ')]
#print( values );
r.append( max( values ))
return r
Part 2
def removeFieldName(a, name):
#https://stackoverflow.com/questions/15575878/how-do-you-remove-a-column-from-a-structured-numpy-array
names = list(a.dtype.names)
if name in names:
names.remove(name)
b = a[names]
return b
def leaveFields(a, ns):
names = list(a.dtype.names)
#Find the corresponding names of fields that stay
fields = []
for n in ns:
res = [i for i in names if n in i]
fields.append( res[0] )
#Find the difference and drop those---except the one named "Name"
#https://www.w3resource.com/python-exercises/list/python-data-type-list-exercise-19.php
diff1 = list( set(names) - set(fields) )
diff2 = list( set(fields) - set(names) )
diff = diff1 + diff2
diff.remove("Name")
for n in diff:
a = removeFieldName(a, n)
return a
Part 3
il = []
tul = []
kpl = []
if (0):
kpl.append( '1: Elävä solu ' )
fil.append( 'bg7_1.csv' )
tul.append( ['P1', 'P2', 'P3', 'S1', 'T1','YT1'] )
kpl.append( '4: Levät ja planktoneläimet ovat vesien runsaimpia eliöitä' )
fil.append( 'bg7_4.csv' )
tul.append( ['P1'] )
name = "name1"
name = "name2"
if (0):
kpl.append( '3: Metsätyypiy ja puulajit' )
fil.append( 'bg8_3.csv' )
tul.append( ['P1', 'P2'] )
name = "name6"
name = "name7"
if (1):
#9. luokka
kpl.append( '2: Solut -- elämän legopalikat' )
fil.append( 'bg9_2.csv' )
tul.append( ['P1', 'P2', 'S3'] )
kpl.append( '3: Kudokset' )
fil.append( 'bg9_3.csv' )
tul.append( ['P1'] )
name = "name11"
name = "name12"