Informations sur la validation France-IOI: Difference between revisions
Jump to navigation
Jump to search
Wiki-cours (talk | contribs) mNo edit summary |
Wiki-cours (talk | contribs) |
||
Line 8: | Line 8: | ||
France-IOI vous permet de travailler en autonomie en dehors des séances de TDs. On privilégiera maintenant les exercices des TDs, la validation consistera donc à du travail personnel. | France-IOI vous permet de travailler en autonomie en dehors des séances de TDs. On privilégiera maintenant les exercices des TDs, la validation consistera donc à du travail personnel. | ||
=== Notes de validation provisoires des étudiants au | === Notes de validation provisoires des étudiants au 20/10/16 === | ||
La note sur 20 est calculée selon la formule : | La note sur 20 est calculée selon la formule : | ||
Line 17: | Line 17: | ||
NOM Prénom | %exo | Niv1 | Niv2 | Note | | NOM Prénom | %exo | Niv1 | Niv2 | Note | | ||
============================================================ | ============================================================ | ||
ADA SIMA MARIE JOELLE DOLIANA | 0. | ADA SIMA MARIE JOELLE DOLIANA | 0.25 | 1.00 | 0.00 | 10.00 | | ||
BEN HAMOUDA Wassim | 0. | BEN HAMOUDA Wassim | 0.35 | 1.00 | 0.00 | 10.00 | | ||
BOUDRIES Fahem | 0. | BOUDRIES Fahem | 0.42 | 1.00 | 0.00 | 10.00 | | ||
BOUFFETIER victorien | 0. | BOUFFETIER victorien | 0.23 | 1.00 | 0.25 | 12.50 | | ||
BREBAN Arthur | 0. | BREBAN Arthur | 0.46 | 1.00 | 0.88 | 18.75 | | ||
BRETEL Rémi | 0. | BRETEL Rémi | 0.54 | 1.00 | 0.00 | 10.00 | | ||
BRILLOUET Pierre | 0. | BRILLOUET Pierre | 0.61 | 1.00 | 0.00 | 10.00 | | ||
CAILLAS Augustin | 0. | CAILLAS Augustin | 0.20 | 1.00 | 0.31 | 13.12 | | ||
CASTELAIN Maxime | 0. | CASTELAIN Maxime | 0.37 | 1.00 | 0.69 | 16.88 | | ||
COQUIDÉ Erwan | 0. | COQUIDÉ Erwan | 0.17 | 1.00 | 0.25 | 12.50 | | ||
DE GRANDSAIGNES Hervé | 0. | DE GRANDSAIGNES Hervé | 0.14 | 1.00 | 0.00 | 10.00 | | ||
DEFOORT Grégoire | 0. | DEFOORT Grégoire | 0.42 | 0.87 | 0.00 | 8.67 | | ||
DEPONTAILLER Lucie | 0. | DEPONTAILLER Lucie | 0.75 | 1.00 | 0.38 | 13.75 | | ||
DIAF Mohamed | 0. | DIAF Mohamed | 0.96 | 1.00 | 0.81 | 18.12 | | ||
EID Doris | 0. | EID Doris | 0.71 | 1.00 | 0.50 | 15.00 | | ||
FLORES GALICIA Fatima | 0. | FLORES GALICIA Fatima | 0.40 | 1.00 | 0.00 | 10.00 | | ||
GUERFA Driffa | 0. | GUERFA Driffa | 0.77 | 1.00 | 0.62 | 16.25 | | ||
HU Xu | 0. | HERNANDEZ SANCHEZ Jessica | 0.61 | 1.00 | 0.00 | 10.00 | | ||
JALAL Yassine | 0. | HU Xu | 0.61 | 1.00 | 0.00 | 10.00 | | ||
JOIE Mathieu | | JALAL Yassine | 0.49 | 1.00 | 0.00 | 10.00 | | ||
JULIEN Claveau | 0. | JOIE Mathieu | 1.00 | 1.00 | 1.00 | 20.00 | | ||
KUMAR ritesh | 0. | JULIEN Claveau | 0.25 | 1.00 | 0.00 | 10.00 | | ||
LEFEBVRE corentin | 0. | KUMAR ritesh | 0.23 | 0.20 | 0.00 | 2.00 | | ||
LI Ying | 0. | LEFEBVRE corentin | 0.61 | 1.00 | 0.19 | 11.88 | | ||
LIANG chenmeijing | 0. | LI Ying | 0.63 | 1.00 | 0.00 | 10.00 | | ||
LIANG chenmeijing | 0.61 | 1.00 | 0.00 | 10.00 | | |||
LIM kyungtak | 1.00 | 1.00 | 1.00 | 20.00 | | LIM kyungtak | 1.00 | 1.00 | 1.00 | 20.00 | | ||
LIU Shu | 0. | LIU Shu | 0.65 | 1.00 | 0.00 | 10.00 | | ||
LIÉNARD--MAYOR Théo | 0.48 | 1.00 | 0.00 | 10.00 | | LIÉNARD--MAYOR Théo | 0.48 | 1.00 | 0.00 | 10.00 | | ||
LOUIS DE CANONVILLE Cyprien | 0. | LOUIS DE CANONVILLE Cyprien | 0.16 | 1.00 | 0.12 | 11.25 | | ||
MARENA Kéba | 0. | MARENA Kéba | 0.28 | 1.00 | 0.00 | 10.00 | | ||
NOUR-EDDINE Imam | 0. | MOUSSU Antoine | 0.13 | 0.93 | 0.00 | 9.33 | | ||
REZARD Quentin | 0. | MOUTAFIS Nicolas | 0.75 | 1.00 | 0.81 | 18.12 | | ||
SAMB cheikh | 0. | NOUR-EDDINE Imam | 0.27 | 1.00 | 0.00 | 10.00 | | ||
SIMON Stéphane | 0. | REZARD Quentin | 0.39 | 1.00 | 0.00 | 10.00 | | ||
SUREAU Robin | 0. | SAMB cheikh | 0.32 | 1.00 | 0.00 | 10.00 | | ||
VANDERMAESEN Tiphaine | 0. | SIMON Stéphane | 0.54 | 1.00 | 0.00 | 10.00 | | ||
VIDALOT Jeoffray | 0. | STUDER david | 0.39 | 1.00 | 0.00 | 10.00 | | ||
ZHOU YUANZHE | 0. | SUREAU Robin | 0.57 | 1.00 | 0.00 | 10.00 | | ||
VANDERMAESEN Tiphaine | 0.47 | 1.00 | 0.38 | 13.75 | | |||
VIDALOT Jeoffray | 0.62 | 1.00 | 0.56 | 15.62 | | |||
ZHOU YUANZHE | 0.60 | 0.87 | 0.00 | 8.67 | | |||
============================================================ | ============================================================ | ||
</source> | </source> |
Revision as of 22:24, 23 October 2016
Changements dans les dates requises de validation : il vous faut
- valider le niveau I pour le 20/10/16 à 22h
- valider le niveau II pour le 10/11/16 à 22h
France-IOI vous permet de travailler en autonomie en dehors des séances de TDs. On privilégiera maintenant les exercices des TDs, la validation consistera donc à du travail personnel.
Notes de validation provisoires des étudiants au 20/10/16
La note sur 20 est calculée selon la formule :
============================================================
NOM Prénom | %exo | Niv1 | Niv2 | Note |
============================================================
ADA SIMA MARIE JOELLE DOLIANA | 0.25 | 1.00 | 0.00 | 10.00 |
BEN HAMOUDA Wassim | 0.35 | 1.00 | 0.00 | 10.00 |
BOUDRIES Fahem | 0.42 | 1.00 | 0.00 | 10.00 |
BOUFFETIER victorien | 0.23 | 1.00 | 0.25 | 12.50 |
BREBAN Arthur | 0.46 | 1.00 | 0.88 | 18.75 |
BRETEL Rémi | 0.54 | 1.00 | 0.00 | 10.00 |
BRILLOUET Pierre | 0.61 | 1.00 | 0.00 | 10.00 |
CAILLAS Augustin | 0.20 | 1.00 | 0.31 | 13.12 |
CASTELAIN Maxime | 0.37 | 1.00 | 0.69 | 16.88 |
COQUIDÉ Erwan | 0.17 | 1.00 | 0.25 | 12.50 |
DE GRANDSAIGNES Hervé | 0.14 | 1.00 | 0.00 | 10.00 |
DEFOORT Grégoire | 0.42 | 0.87 | 0.00 | 8.67 |
DEPONTAILLER Lucie | 0.75 | 1.00 | 0.38 | 13.75 |
DIAF Mohamed | 0.96 | 1.00 | 0.81 | 18.12 |
EID Doris | 0.71 | 1.00 | 0.50 | 15.00 |
FLORES GALICIA Fatima | 0.40 | 1.00 | 0.00 | 10.00 |
GUERFA Driffa | 0.77 | 1.00 | 0.62 | 16.25 |
HERNANDEZ SANCHEZ Jessica | 0.61 | 1.00 | 0.00 | 10.00 |
HU Xu | 0.61 | 1.00 | 0.00 | 10.00 |
JALAL Yassine | 0.49 | 1.00 | 0.00 | 10.00 |
JOIE Mathieu | 1.00 | 1.00 | 1.00 | 20.00 |
JULIEN Claveau | 0.25 | 1.00 | 0.00 | 10.00 |
KUMAR ritesh | 0.23 | 0.20 | 0.00 | 2.00 |
LEFEBVRE corentin | 0.61 | 1.00 | 0.19 | 11.88 |
LI Ying | 0.63 | 1.00 | 0.00 | 10.00 |
LIANG chenmeijing | 0.61 | 1.00 | 0.00 | 10.00 |
LIM kyungtak | 1.00 | 1.00 | 1.00 | 20.00 |
LIU Shu | 0.65 | 1.00 | 0.00 | 10.00 |
LIÉNARD--MAYOR Théo | 0.48 | 1.00 | 0.00 | 10.00 |
LOUIS DE CANONVILLE Cyprien | 0.16 | 1.00 | 0.12 | 11.25 |
MARENA Kéba | 0.28 | 1.00 | 0.00 | 10.00 |
MOUSSU Antoine | 0.13 | 0.93 | 0.00 | 9.33 |
MOUTAFIS Nicolas | 0.75 | 1.00 | 0.81 | 18.12 |
NOUR-EDDINE Imam | 0.27 | 1.00 | 0.00 | 10.00 |
REZARD Quentin | 0.39 | 1.00 | 0.00 | 10.00 |
SAMB cheikh | 0.32 | 1.00 | 0.00 | 10.00 |
SIMON Stéphane | 0.54 | 1.00 | 0.00 | 10.00 |
STUDER david | 0.39 | 1.00 | 0.00 | 10.00 |
SUREAU Robin | 0.57 | 1.00 | 0.00 | 10.00 |
VANDERMAESEN Tiphaine | 0.47 | 1.00 | 0.38 | 13.75 |
VIDALOT Jeoffray | 0.62 | 1.00 | 0.56 | 15.62 |
ZHOU YUANZHE | 0.60 | 0.87 | 0.00 | 8.67 |
============================================================
Elles sont générées avec le script suivant:
"""
Un script qui analyse les résultats d'une classe sur http://www.france-ioi.org
et qui produit un tableau de la validation des élèves.
écrit par Guillaume Roux (Université Paris Sud)
merci de me rapporter les bugs.
Utilisation sous Linux:
python3 validation-france-ioi.py
ToDo list:
* recuperer le fichier depuis internet via le numero de groupe ou un lien
* eliminer les superviseurs des membres
* verifier automatiquement qu'il n'y a pas d'anomalies dans les dates de resolution (triche)
* faire afficher les moyennes et la date de validation
* export vers tableau Excell ou OpenOffice
"""
from html.parser import HTMLParser
exercises = []
jumped = ["c'est plus, c'est moins",": mélange explosif"]
niveau1 = ["Dans le fourré","Vendanges","Course avec les enfants","Construction d'une pyramide","La Grande Brade\
rie","Socles pour statues","Le plus beau Karva","Concours de tir à la corde","Mot de passe du village","Planning\
de la journée","Le juste prix","Casernes de pompiers","Zones de couleurs","Département d'architecture : constru\
ction d'une pyramide","Département de chimie"]
niveau2 = ["Augmentation des taxes","Achat de livres","Une belle récolte","La roue de la fortune","Visite de la \
mine","Banquet municipal","Choix des emplacements","Une ligne sur deux ","Lire ou ne pas lire, telle est la ques\
tion","Analyse de fréquence","Écriture en miroir","La bataille","Analyse d’une langue","Sans espaces","Formes cr\
euses","Convertisseur d'unités"]
class Member(object):
def __init__(self,name,num):
self.name = name
tmp = name.split()
self.nicename = " ".join(tmp[:-2]).upper()+" "+tmp[-2]
self.number = num
self.results = dict()
def note(self,exos=[]):
if exos: return sum([self.results[e] for e in exos])/len(exos)
else: return 0.0
def showResults(self):
note = 0
for exo in exercises:
note += self.results[exo]
print("\t",exo,":",self.results[exo])
class Parser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.inlycee = False
self.exotype = False
self.members = []
self.curexo = ""
self.mcount = 0
self.exocount = 0
self.solved = 0
self.count = 0
def handle_starttag(self, tag, attrs):
self.inlycee = self.exotype = False
for attr in attrs[:1]:
self.inlycee = attr[0] == 'class' and attr[1] == "lycee_resume_value"
self.exotype = attr[0] == 'href' and \
attr[1][:35] == "http://www.france-ioi.org/algo/task"
if self.inlycee and len(attrs)==2:
self.solved = int(attrs[1][1]=="background-color:lightgreen")
else:
self.solved = 0
def handle_data(self, data):
if self.inlycee:
if '(' in data:
if not data in [m.name for m in self.members]:
self.members.append(Member(data,self.mcount))
self.mcount += 1
if self.curexo in exercises and self.count<len(self.members):
self.members[self.count].results[self.curexo] = self.solved
self.count += 1
if self.exotype and len(data)>=3:
if "«" in data: data = data[:24]
if not data in jumped:
self.curexo = data
self.count = 0
if (not data in exercises) and self.exocount<114:
self.exocount += 1
exercises.append(data)
def showMembers(self):
# print("Found",len(self.members),"members")
maxlenname = max([len(m.nicename) for m in self.members])
barre = "="*(maxlenname+31)
print(barre)
print("NOM Prénom".ljust(maxlenname),"%exo","Niv1","Niv2","Note".rjust(5),sep=" | ",end=" |\n")
print(barre)
for m in sorted(self.members,key=lambda x: x.nicename):
pexo = "{:.2f}".format(m.note(exercises))
pniv1 = "{:.2f}".format(m.note(niveau1))
pniv2 = "{:.2f}".format(m.note(niveau2))
nf = "{:.2f}".format((m.note(niveau1)+m.note(niveau2))*10)
print(m.nicename.ljust(maxlenname),pexo,pniv1,pniv2,nf.rjust(5),sep=" | ",end=" |\n")
print(barre)
def showExercises(self):
print("Found",len(exercises),"exercises")
for e in exercises: print(e)
def showResults(self,number=None):
if number is None: number = range(len(self.members))
print("__"*20)
for n in number:
print("Résultat de",self.members[n].nicename,"note :",\
self.members[n].note(exercises))
self.members[n].showResults()
# mettez ici le chemin vers votre fichier à analyser
fichier = "France-IOI.html"
parser = Parser()
source = open(fichier, 'r')
parser.feed(source.read())
source.close()
parser.showMembers()
#parser.showResults([8])