Bonus IUT Sceaux

This commit is contained in:
Emmanuel Viennet 2023-03-08 13:37:19 +01:00
parent 52aa79160b
commit 7cf06a79e6
2 changed files with 83 additions and 1 deletions

View File

@ -1197,6 +1197,88 @@ class BonusRoanne(BonusSportAdditif):
proportion_point = 1
class BonusSceaux(BonusSportAdditif): # atypique
"""IUT de Sceaux
LIUT de Sceaux (Université de Paris-Saclay) propose aux étudiants un seul enseignement
non rattaché aux UE : loption Sport.
<p>
Cette option donne à létudiant qui la suit une bonification qui sapplique uniquement
si sa note est supérieure à 10.
</p>
<p>
Cette bonification sapplique sur lensemble des UE dun semestre de la façon suivante :
</p>
<p>
<tt>
[ (Note 10) / Nb UE du semestre ] / Total des coefficients de chaque UE
</tt>
</p>
<p>
Exemple : un étudiant qui a obtenu 16/20 à loption Sport en S1
(composé par exemple de 3 UE:UE1.1, UE1.2 et UE1.3)
aurait les bonifications suivantes :
</p>
<ul>
<li>UE1.1 (Total des coefficients : 15) Bonification UE1.1 = <tt>[ (16 10) / 3 ] /15
</tt>
</li>
<li>UE1.2 (Total des coefficients : 14) Bonification UE1.2 = <tt>[ (16 10) / 3 ] /14
</tt>
</li>
<li>UE1.3 (Total des coefficients : 12,5) Bonification UE1.3 = <tt>[ (16 10) / 3 ] /12,5
</tt>
</li>
</ul>
"""
name = "bonus_iut_sceaux"
displayed_name = "IUT de Sceaux"
proportion_point = 1.0
def __init__(
self,
formsemestre: "FormSemestre",
sem_modimpl_moys: np.array,
ues: list,
modimpl_inscr_df: pd.DataFrame,
modimpl_coefs: np.array,
etud_moy_gen,
etud_moy_ue,
):
# Pour ce bonus, il faut conserver:
# - le nombre d'UEs
self.nb_ues = len([ue for ue in ues if ue.type != UE_SPORT])
# - le total des coefs de chaque UE
# modimpl_coefs : DataFrame, lignes modimpl, col UEs (sans sport)
self.sum_coefs_ues = modimpl_coefs.sum() # Series, index ue_id
super().__init__(
formsemestre,
sem_modimpl_moys,
ues,
modimpl_inscr_df,
modimpl_coefs,
etud_moy_gen,
etud_moy_ue,
)
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
"""Calcul du bonus IUT de Sceaux 2023
sem_modimpl_moys_inscrits: les notes de sport
En APC: ndarray (nb_etuds, nb_mod_sport, nb_ues_non_bonus)
En classic: ndarray (nb_etuds, nb_mod_sport)
Attention: si la somme des coefs de modules dans une UE est nulle, on a un bonus Inf
(moyenne d'UE cappée à 20).
"""
if (0 in sem_modimpl_moys_inscrits.shape) or (self.nb_ues == 0):
# pas d'étudiants ou pas d'UE ou pas de module...
return
super().compute_bonus(sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan)
self.bonus_ues = (self.bonus_ues / self.nb_ues) / self.sum_coefs_ues
class BonusStEtienne(BonusSportAdditif):
"""IUT de Saint-Etienne.

View File

@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
SCOVERSION = "9.4.60"
SCOVERSION = "9.4.61"
SCONAME = "ScoDoc"