top of page

Projet notation PIX

Qu'est-ce que PIX ?

PIX est un service public en ligne dont l’objectif est d’évaluer le niveau de maîtrise des connaissances et de compétences numériques de chacun tout au long de la vie. Tout citoyen peut s’inscrire gratuitement sur cette plateforme, avec une adresse mail pour évaluer ses compétences numériques et les développer.

Les élèves ont sur Pix des notes qui varient entre 0 et 700 mais qui sont réparties de façons  inégale. La note de l’élève sera donc calculée grâce à une fonction linéaire à partir de son score et de la moyenne. 

Ce projet est donc réalisé en plusieurs étapes.

Après avoir réalisé toutes les étapes, le code obtenu est celui-ci:

 

import matplotlib.pyplot as plt
import numpy as np
fichier = open("Resultats-Test NSI Premi_re Gr1-370448-2021-10-19-1115.csv", encoding="utf8")
ligne = fichier.readline() # lecture de la première ligne
noms_colonnes = ligne.strip().split(";") # récupération de tous les éléments de la première lignes
print("noms colonnes=",noms_colonnes)

Liste_x=[]
Liste_y=[]
for ligne in fichier:
    elements = ligne.strip().split(";")
    Liste_x.append(elements[3])
    Liste_y.append(int(elements[8]))
#print(Liste_x, Liste_y)
fichier.close()
#minimum=min(Liste_y)
#maximum=max(Liste_y)
def mini(liste):
    mini=0
    for valeur in liste:
        if valeur< mini:
            mini=valeur
    return mini
def maxi(liste):
    maxi=0
    for valeur in liste:
        if valeur> maxi:
            maxi=valeur
    return maxi

minimum = mini(Liste_y)
maximum = maxi(Liste_y)

def moyenne(liste=[]) :
    somme=0
    nb_elements=0
    for valeur in liste:
        somme=somme+valeur
        nb_elements=nb_elements+1
    #somme = sum(liste)
    #nb_elements = len(liste)
    moyenne = somme / nb_elements
    return moyenne
moyenne=moyenne(Liste_y)
print (moyenne)
#calcul des coefficients de la fonction Note = a score + b
Notemoyenne=int(input("Choississez la note moyenne"))
b = (20-Notemoyenne*maximum/moyenne)/(1-maximum/moyenne)
a=(Notemoyenne-b)/moyenne
Notes=[round(a*score +b,1) for score in Liste_y]
#Notes=[round(20*score/maximum,1) for score in Liste_y]
#print(Notes)
Dictionnaire_note_eleve  = dict(zip(Liste_x, Notes))
print(Dictionnaire_note_eleve)
for keys,values in Dictionnaire_note_eleve.items():
    print(keys)
    print(values)

def tracer_figure(liste1,liste2):
    plt.figure(figsize = (16, 10))
    plt.plot(liste1,liste2,'bs', label='Nom Elève versus Score PIX',marker='o')

    plt.xlabel('Nom Elève')
    plt.xticks(np.arange(0,len(liste1)), liste1, rotation = 60)
    plt.ylabel('Score PIX')
    plt.title("Nom Elève versus Score PIX")
    plt.legend()
    plt.grid(True)
    plt.show()

if __name__=="__main__":
    tracer_figure(Liste_x,Liste_y)
    tracer_figure(Liste_x,Notes)

bottom of page