[Scodoc-devel] Lot Scodoc-devel, Vol 45, Parution 3

philippe coste philippe.coste at u-psud.fr
Mar 30 Aou 15:02:41 CEST 2016


Oups! désolé pour les nombreuse coquilles dans le message précédent ! La 
réactivité de mon clavier me laisse perplexe...

Philippe


Le 30/08/2016 à 15:01, scodoc-devel-request at rt.iutv.univ-paris13.fr a 
écrit :
> Envoyez vos messages pour la liste Scodoc-devel à
> 	scodoc-devel at rt.iutv.univ-paris13.fr
>
> Pour vous (dés)abonner par le web, consultez
> 	https://www-rt.iutv.univ-paris13.fr/mailman/listinfo/scodoc-devel
>
> ou, par email, envoyez un message avec 'help' dans le corps ou dans le
> sujet à
> 	scodoc-devel-request at rt.iutv.univ-paris13.fr
>
> Vous pouvez contacter l'administrateur de la liste à l'adresse
> 	scodoc-devel-owner at rt.iutv.univ-paris13.fr
>
> Si vous répondez, n'oubliez pas de changer l'objet du message afin
> qu'il soit plus spécifique que "Re: Contenu du digest de
> Scodoc-devel..."
>
>
> Thèmes du jour :
>
>     1. Re: pb formules de calcul de moyennes définies par
>        l'utilisateur (philippe coste)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 30 Aug 2016 15:01:02 +0200
> From: philippe coste <philippe.coste at u-psud.fr>
> To: Dominique SOUDIERE <dominique.soudiere at univ-lehavre.fr>,
> 	scodoc-devel at rt.iutv.univ-paris13.fr
> Subject: Re: [Scodoc-devel] pb formules de calcul de moyennes définies
> 	par l'utilisateur
> Message-ID: <a34683ee-289a-42ca-3971-ee2884423003 at u-psud.fr>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
>
> Bonjour,
>
> Merci Mais cans notre cas c'est la moyenne d'une UE qui est bonifiée et
> pas directement la moyenne géérale. C'est pourquoi je passai par le
> champ spécifique de calcul de moyennes d'UE. Je laisse passr le coupde
> feu de la rentrée et je m'y recolle.
>
> Amicalement,
>
> Philippe Coste
>
>
> Le 29/08/2016 à 10:24, Dominique SOUDIERE a écrit :
>> Bonjour,
>>
>> Je n'ai pas beaucoup de temps aussi je vous donne ma moulinette qui
>> finalement n'a pas été mise en place car la mesure de pénalisation a
>> été boulée en CEVU.
>>
>> Cela vous deonnera peut-être une piste.
>>
>> Dominique
>>
>>
>> # Fonction Le Havre, par Dom. Soud.
>> def sign(x):
>>      if x > 0:
>>          return 1
>>      else:
>>          return 0
>>
>> def bonus_iutlh(notes_sport, coefs, infos=None):
>>
>>      """ Mettre coef >0 aux bonus et 0 aux malus ... rien d'autre
>>
>>      Bonus:
>>      La note de sport de nos étudiants va de 0 à 20 points.
>>        m2=m1*(1+0.005*((10-N1)+(10-N2))
>>     m2 : nouvelle moyenne de l'unité d'enseignement si note de sport
>> et/ou de langue supérieure à 10
>>     m1 : moyenne de l'unité d'enseignement avant bonification
>>     N1 : note de sport si supérieure à 10
>>     N2 : note de seconde langue si supérieure à 10
>>      Par exemple : sport 15/20 et langue 12/20 : chaque UE sera
>> multipliée par 1+0.005*7,
>>      ainsi que la moyenne générale.
>>
>>      Malus:
>>      Pour le malus On recupere les notes dont le coef est nul puis on
>> les affecte de -0.1
>>      dés que depassement du seuil global de 5 demi journees d'absences
>>      """
>>      # les coefs >0 comptent pour bonus les autres malus
>>      notesbonus=[(x-10)*y for x,y in zip(notes_sport,coefs) if x>10 and
>> y>0]
>>      # seules les notes dont le coeff malus est de 0
>>      # seuil mini de 5 absences pour prise en compte
>>      totalabsences=sum([x for x,y in zip(notes_sport,coefs) if y==0])
>>      notesmalus=[-0.1*x*sign(totalabsences-5)*(1-y) for x,y in
>> zip(notes_sport,coefs) if y==0]
>>      # calcul des points bonus
>>      pointsbonus = sum(notesbonus)
>>      # Calcul des malus sur UE puis MoyGen
>>      nbre_UE=len(infos['moy_ues'])
>>      malusUE=[] # contiendra les notes de malus dans l'ordre
>>      for x in range(0,nbre_UE):
>>          if x<len(notesmalus):
>>              malusUE.append(notesmalus[x])
>>          else:
>>              malusUE.append(0)
>>      # Au Havre le bonus est coefficient multiplicateur
>>      factorbonus = (1. + (0.005 * pointsbonus))
>>      # bonus nul puisque les moyennes sont directement modifiées par factor
>>      bonus = 0
>>      # Modifie les moyennes de toutes les UE:
>>      i=0
>>      pointsmalus=0
>>      sumc=0
>>      numUEs=[infos['moy_ues'][ue_id]['ue']['numero'] for ue_id in
>> infos['moy_ues'] if infos['moy_ues'][ue_id]['sum_coefs']>0]
>>      numUEs.sort()
>>      for ue_id in infos['moy_ues']:
>>          ue_status = infos['moy_ues'][ue_id]
>>          if ue_status['sum_coefs'] > 0:
>>              # modifie moyenne UE ds semestre courant
>>              ue_status['cur_moy_ue'] = ue_status['cur_moy_ue'] *
>> factorbonus + malusUE[numUEs.index(ue_status['ue']['numero'])]
>>              if not ue_status['is_capitalized']:
>> pointsmalus+=ue_status['sum_coefs']*malusUE[numUEs.index(ue_status['ue']['numero'])]
>> # Cumul du malus pondere
>>                  sumc+=ue_status['sum_coefs']
>>                  # si non capitalisee, modifie moyenne prise en compte
>>                  ue_status['moy'] = ue_status['cur_moy_ue']
>>              i+=1
>>      if sumc!=0:
>>          pointsmalus=pointsmalus/sumc  # Moyenne de malus a ajouter a
>> la moyenne generale
>>      else:
>>          pointsmalus=0
>>      # Modifie la moyenne générale
>>      infos['moy'] = infos['moy'] * factorbonus + pointsmalus
>>      #open('/tmp/log','a').write( pprint.pformat(ue_status) + '\n\n' )
>>      return bonus
>>
>>
>> Le 29/08/2016 à 10:10, philippe coste a écrit :
>>> Bonjour à tous,
>>>
>>> A l'IUT de Cachan il a été décidé d'appliquer dans nos MCC un malusà
>>> toutes les UEs académiques (hors stage) de 0.5 pts par demi-journée
>>> d'absences non justifiées au delà d'un seuil supérieur à 5. Je dois
>>> donc écrire une formule personnalisée de calcul de moyenne d'UE pour
>>> chaque UE.
>>>
>>> Cette formule marche MAIS il se produit un phénomène bizarre : Je
>>> modifie les absences d'un étudiant et je retourne sur sa fiche : pas
>>> de prise en compte sur ses moyennes d'UE alors que le nombre de ses
>>> absences non justifiées est à jour. Je retourne dans la formule, je
>>> ne la modifie pas et je l'enregistre. Je retourne sur la fiche de
>>> l'étudiant : les moyennes d'UE sont cette fois correctes avec la
>>> prise en compte des absences. Si j'ajoute une absence ou que j'en
>>> supprime une : même problème : ll faudra que je retourne dans la
>>> formule et que je l'enregistre sans la modifier pour que la prise en
>>> compte se fasse sur les moyennes.
>>>
>>> J'ai essayé plusieurs écritures de formules sans que cela ne change
>>> ce phénomène. Voici deux exemples de formules :
>>>
>>> * la plus simple :
>>>
>>> ifelse(moy_valid, max(ifelse(nb_abs_nojust>5,
>>> moy_val-(0.5*(nb_abs_nojust-5)), moy_val), 0), moy)
>>>
>>> * la plus compliquée :
>>>
>>> ifelse(moy_valid, max(ifelse(max(cmp(nb_abs_nojust,5),0),
>>> moy_val-(0.5*(nb_abs_nojust-5)), moy_val), 0), moy)
>>>
>>>
>>> Je n'ai absolument pas ce problème pour une formule qui bonifie l'UE
>>> FSH avec les options telles que le sport, LV2... et qui est :
>>>
>>> ifelse(moy_valid,
>>> min(max(moy_val+((notes[3]+notes[4]+notes[5]+notes[6]+notes[7])-10)/10,
>>> moy), 20), moy)
>>>
>>>
>>> Je soumets donc ce petit problème à votre sagacité. Comment peut-on
>>> résoudre ce problème ?
>>>
>>> Merci d'avance.
>>>
>>>
>>> Cordialement,
>>>
>>> Philippe Coste
>>>
>>> -- 
>>> _____________________________________________________________________
>>> Dr Ph. Coste
>>> Maître de Conférences / Associate Professor
>>>
>>> Centre de Nanosciences et de Nanotechnologies
>>> site d'Orsay
>>> bat 220
>>> Université de Paris-Sud
>>> F-91405 Orsay cedex (France)
>>>
>>> Tel  : + 33 1 69 15 40 18 	IUT de Cachan
>>> 9, Ave de la division Leclerc
>>> F-94234 Cachan cedex (France)
>>>
>>>
>>>
>>> Tel : +33 1 41 24 11 32
>>>
>>>
>>> e-mail  : philippe.coste at u-psud.fr
>>>
>>>
>>> _____________________________________________________________________
>>>
>>>
>>>
>>> _______________________________________________
>>> Scodoc-devel mailing list
>>> Scodoc-devel at rt.iutv.univ-paris13.fr
>>> https://www-rt.iutv.univ-paris13.fr/mailman/listinfo/scodoc-devel

-- 
_____________________________________________________________________
Dr Ph. Coste
Maître de Conférences / Associate Professor

Centre de Nanosciences et de Nanotechnologies
site d'Orsay
bat 220
Université de Paris-Sud
F-91405 Orsay cedex (France)

Tel  : + 33 1 69 15 40 18 	IUT de Cachan
9, Ave de la division Leclerc
F-94234 Cachan cedex (France)



Tel : +33 1 41 24 11 32


e-mail  : philippe.coste at u-psud.fr


_____________________________________________________________________

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://www-rt.iutv.univ-paris13.fr/pipermail/scodoc-devel/attachments/20160830/797d2e9c/attachment-0001.html>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: logos_siganture.gif
Type: image/gif
Taille: 14096 octets
Desc: non disponible
URL: <https://www-rt.iutv.univ-paris13.fr/pipermail/scodoc-devel/attachments/20160830/797d2e9c/attachment-0001.gif>


Plus d'informations sur la liste de diffusion Scodoc-devel