forked from ScoDoc/ScoDoc
Bonus grenoble 2020 (à compléter pour l'ancien)
This commit is contained in:
parent
4222ea8160
commit
3c36acd194
@ -49,6 +49,10 @@ class BonusSport:
|
|||||||
- modimpl_coefs: les coefs des modules
|
- modimpl_coefs: les coefs des modules
|
||||||
En classique: 1d ndarray de float (modimpl)
|
En classique: 1d ndarray de float (modimpl)
|
||||||
En APC: 2d ndarray de float, (modimpl x UE) <= attention à transposer
|
En APC: 2d ndarray de float, (modimpl x UE) <= attention à transposer
|
||||||
|
- etud_moy_gen: Series, index etudid, valeur float (moyenne générale avant bonus)
|
||||||
|
- etud_moy_ue: DataFrame columns UE (sans sport), rows etudid (moyennes avant bonus)
|
||||||
|
|
||||||
|
etud_moy_gen et etud_moy_ue ne sont PAS modifiés (mais utilisés par certains bonus non additifs).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Si vrai, en APC, si le bonus UE est None, reporte le bonus moy gen:
|
# Si vrai, en APC, si le bonus UE est None, reporte le bonus moy gen:
|
||||||
@ -67,9 +71,13 @@ class BonusSport:
|
|||||||
ues: list,
|
ues: list,
|
||||||
modimpl_inscr_df: pd.DataFrame,
|
modimpl_inscr_df: pd.DataFrame,
|
||||||
modimpl_coefs: np.array,
|
modimpl_coefs: np.array,
|
||||||
|
etud_moy_gen,
|
||||||
|
etud_moy_ue,
|
||||||
):
|
):
|
||||||
self.formsemestre = formsemestre
|
self.formsemestre = formsemestre
|
||||||
self.ues = ues
|
self.ues = ues
|
||||||
|
self.etud_moy_gen = etud_moy_gen
|
||||||
|
self.etud_moy_ue = etud_moy_ue
|
||||||
self.etuds_idx = modimpl_inscr_df.index # les étudiants inscrits au semestre
|
self.etuds_idx = modimpl_inscr_df.index # les étudiants inscrits au semestre
|
||||||
self.bonus_ues: pd.DataFrame = None # virtual
|
self.bonus_ues: pd.DataFrame = None # virtual
|
||||||
self.bonus_moy_gen: pd.Series = None # virtual
|
self.bonus_moy_gen: pd.Series = None # virtual
|
||||||
@ -293,7 +301,7 @@ class BonusTours(BonusDirect):
|
|||||||
# ---- Un peu moins simples (mais pas trop compliqué)
|
# ---- Un peu moins simples (mais pas trop compliqué)
|
||||||
|
|
||||||
|
|
||||||
# Bonus simple, mais avec chagement de paramètres en 2010 !
|
# Bonus simple, mais avec changement de paramètres en 2010 !
|
||||||
class BonusLille(BonusSportSimples):
|
class BonusLille(BonusSportSimples):
|
||||||
"""Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq
|
"""Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq
|
||||||
|
|
||||||
@ -320,8 +328,63 @@ class BonusLille(BonusSportSimples):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def bonus_iut1grenoble_2017(notes_sport, coefs, infos=None):
|
||||||
|
"""Calcul bonus sport IUT Grenoble sur la moyenne générale (version 2017)
|
||||||
|
|
||||||
|
La note de sport de nos étudiants va de 0 à 5 points.
|
||||||
|
Chaque point correspond à un % qui augmente la moyenne de chaque UE et la moyenne générale.
|
||||||
|
Par exemple : note de sport 2/5 : la moyenne générale sera augmentée de 2%.
|
||||||
|
|
||||||
|
Calcul ici du bonus sur moyenne générale
|
||||||
|
"""
|
||||||
|
# les coefs sont ignorés
|
||||||
|
# notes de 0 à 5
|
||||||
|
points = sum([x for x in notes_sport])
|
||||||
|
factor = (points / 4.0) / 100.0
|
||||||
|
bonus = infos["moy"] * factor
|
||||||
|
|
||||||
|
return bonus
|
||||||
|
|
||||||
|
|
||||||
|
class BonusGrenobleIUT1(BonusSport):
|
||||||
|
"""
|
||||||
|
La note de sport est sur 20, et on calcule une bonification (en %)
|
||||||
|
qui va s'appliquer à la moyenne de chaque UE du semestre en appliquant
|
||||||
|
la formule : bonification (en %) = (note-10)*0,5.
|
||||||
|
|
||||||
|
Bonification qui ne s'applique que si la note est >10.
|
||||||
|
|
||||||
|
(Une note de 10 donne donc 0% de bonif ; note de 20 : 5% de bonif)
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = "bonus_grenoble_iut1_2020"
|
||||||
|
# C'est un bonus "multiplicatif": on l'exprime en additif,
|
||||||
|
# sur chaque moyenne d'UE m_0
|
||||||
|
# m_1 = a . m_0
|
||||||
|
# m_1 = m_0 + bonus
|
||||||
|
# bonus = m_0 (a - 1)
|
||||||
|
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
||||||
|
"""calcul du bonus"""
|
||||||
|
# Calcule moyenne pondérée des notes de sport:
|
||||||
|
notes = np.sum(
|
||||||
|
sem_modimpl_moys_inscrits * modimpl_coefs_etuds_no_nan, axis=1
|
||||||
|
) / np.sum(modimpl_coefs_etuds_no_nan, axis=1)
|
||||||
|
notes = np.nan_to_num(notes, copy=False)
|
||||||
|
a = (notes - 10.0) * 0.005
|
||||||
|
a[a <= 0] = 1.0 # note < 10, pas de bonus
|
||||||
|
if self.formsemestre.formation.is_apc():
|
||||||
|
# ne s'applique qu'aux moyennes d'UE
|
||||||
|
b = self.etud_moy_ue * (a - 1)
|
||||||
|
self.bonus_ues = b # DataFrame
|
||||||
|
else:
|
||||||
|
# ne s'applique qu'à la moyenne générale
|
||||||
|
b = self.etud_moy_gen * (a - 1)
|
||||||
|
self.bonus_moy_gen = b
|
||||||
|
|
||||||
|
|
||||||
class BonusVilleAvray(BonusSport):
|
class BonusVilleAvray(BonusSport):
|
||||||
"""Calcul bonus modules optionels (sport, culture), règle IUT Ville d'Avray
|
"""Bonus modules optionels (sport, culture), règle IUT Ville d'Avray.
|
||||||
|
|
||||||
Les étudiants de l'IUT peuvent suivre des enseignements optionnels
|
Les étudiants de l'IUT peuvent suivre des enseignements optionnels
|
||||||
de l'Université Paris 10 (C2I) non rattachés à une unité d'enseignement.
|
de l'Université Paris 10 (C2I) non rattachés à une unité d'enseignement.
|
||||||
|
@ -73,6 +73,8 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
self.ues,
|
self.ues,
|
||||||
self.modimpl_inscr_df,
|
self.modimpl_inscr_df,
|
||||||
self.modimpl_coefs_df.transpose(),
|
self.modimpl_coefs_df.transpose(),
|
||||||
|
self.etud_moy_gen,
|
||||||
|
self.etud_moy_ue,
|
||||||
)
|
)
|
||||||
self.bonus_ues = bonus.get_bonus_ues()
|
self.bonus_ues = bonus.get_bonus_ues()
|
||||||
if self.bonus_ues is not None:
|
if self.bonus_ues is not None:
|
||||||
|
@ -80,6 +80,8 @@ class ResultatsSemestreClassic(NotesTableCompat):
|
|||||||
self.ues,
|
self.ues,
|
||||||
self.modimpl_inscr_df,
|
self.modimpl_inscr_df,
|
||||||
self.modimpl_coefs,
|
self.modimpl_coefs,
|
||||||
|
self.etud_moy_gen,
|
||||||
|
self.etud_moy_ue,
|
||||||
)
|
)
|
||||||
self.bonus_ues = bonus.get_bonus_ues()
|
self.bonus_ues = bonus.get_bonus_ues()
|
||||||
if self.bonus_ues is not None:
|
if self.bonus_ues is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user