Notes série notée

Notes série notée

by Jean-Cédric Chappelier -
Number of replies: 0

Bonsoir,

Je viens de mettre dans Moodle les notes de la série notée et voici les commentaires généraux sur les résultats (corrigés attachés en pièce jointe tout en bas, pour questions si jamais) et je vais vous envoyer sous peu par email vos résultats et commentaires personnels.

MERCI DE LIRE ATTENTIVEMENT le corrigé et le présent message avant de poser d'autres questions.

Concernant les notes mises dans Moodle (onglet Notes), comme d'habitude :

  • les notes publiées correspondent à la fraction que vous avez obtenue, multipliée par 100 : par exemple pour cette série notée, cela correspond à
    100 * votre total de points / 70
    car l'épreuve est notée sur 70 points ;

  • la note « Total du cours » est calculée automatiquement par Moodle et correspond à la fraction moyenne à ce stade, laquelle est arrondie pour calculer la note « Note » ;

  • la note « Note » correspond à la note arrondie, sur l'échelle habituelle 1-6, avec un arrondi vers le haut (c.-à-d. : > 50% = 3.75, > 55% = 4, > 60% = 4.25, etc.), que vous auriez si on arrêtait là.
    Je la remettrai à jour à la fin du semestre, après l'examen.

    Tout ceci a été expliqué en détail dans le premier cours.

L'histogramme ci-dessous (fin de message) représente la répartition des points à cette série notée. Le min est de 5.25 et le max de 67.5 ; la moyenne de 38.22 (très légèrement inférieure au 4.0 (38.5 points)) et la médiane à 37.5.

Voici  les principale remarques globales, afin de vous corriger/ vous améliorer dans votre future vie de programmeur/programmeuse. Voyez aussi les éventuelles remarques de vos correcteurs dans votre rendu personnel (que je vais vous envoyer).

  • la manipulation des bytes en mémoire n'a pas l'air d'être très clair pour certain(e)s : beaucoup de [1] sur des Candidates*, ou pire des Canditate

  • des malloc/calloc sans en avoir besoin

  • plus largement chez certain(e)s une incompréhention totale de l'utilisation des pointeurs; par exemple déclarer des pointeur pour tout et rien (sans calloc, malloc, free, etc). Du coup le code devient inutilement compliqué en plus de ne pas compiler.

    Par exemple:

            Individual* in = NULL;
    
            in->x = 0.0;
    
            //..
    
            return *in;
    

    ou

    int* ptr; 
    
    *ptr = 3
    

    et divers ajouts/oublis de "*" et "&".

    Pour rappel : n'utiliser les pointeurs seulement quand c'est nécessaire.

  • comparaisons ou affectations d'une variable à NULL alors que la variable en question n'était pas un pointeur.

  • trop de duplication de code à divers endroits; p.ex. dans la simulation finale au lieu de re-utiliser les fonctions déjà faites

  • beaucoup ne semble pas connaître qsort() et ré-inventent leur propre tri; et beaucoup de celles et ceux qui pensent à utiliser qsort() n'écrivent pas de fonction de comparaison.

  • grosses lacunes de pratique de C chez certain(e)s : on a vu du Java et même du Python !

  • Un nombre incalculable de sizeof(pointeur de tableau), ce qui est assez « inquiétant » vu le nombre de fois que c'est répété dans le cours.

  • allocations de mémoires sont rarement vérifiées; de plus la mémoire n'est pas libérée.

  • Parfois les arguments modifiés dans les fonctions sont passés par valeur au lieu de passage par référence.

Les remarques ci-dessus ne doivent cependant pas occulter le fait que, heureusement, plus de 30% de la classe ont tout de même bien fait ou très bien fait et semblent avoir bien compris le cours.

Distribution des points :
distribution « gaussienne » très étalée ; pics en 37-40 points