Skip to content

Typos/Remarques #3

@LLyaudet

Description

@LLyaudet

Bonjour,

Merci pour le cours "Découvrez la programmation orientée objet avec Python" et votre humour ;).

Ci-dessous voici quelques typos que j'ai notées ou quelques remarques :

Chapitre 1 :

Chapitre 2 :

Chapitre 3 :

  • Dans la vidéo de début de chapitre, la présentation est un peu confuse au niveau de la classe Graph,
    présentée avec deux attributs x et y de type float mais la narration "les valeurs de l'abscisse et les valeurs de l'ordonnée".
    Chaque point du graphe a bien une abscisse et une ordonnée.
    Le graphe étant 2D, il a un axe des abscisses (par défaut tracé au niveau de l'ordonnée 0)
    et un axe des ordonnées (par défaut tracé au niveau de l'abscisse 0).
    L'objet graphe devrait contenir un attribut ListePoints contenant les points du graphe à tracer.

  • Les règles de la bataille navale présentées sont assez originales :
    -- bateaux qui se déplacent (pour moi, on les positionne en début de partie puis ça ne bouge plus),
    -- bateaux en diagonal (normalement c'est interdit et les plots qui permettent de fixer le bateau sur le plateau ne le permettent pas
    (l'espace entre deux cases diagonales c'est racine de 2 fois la distance entre deux cases adjacentes,
    donc les plots ne peuvent pas s'insérer en diagonale, sauf à les tordre ou n'en planter qu'un).
    Ca peut sembler des détails mais certains élèves risquent de bloquer dessus.

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4303941-structurez-votre-programme#/id/r-4303956
    "Une position est composée de deux coordonnées : une abscisse, représentée par des nombres, et une ordonnée, représentée par des lettres."
    l'abscisse est réprésenté par un nombre (soit des chiffres), pour l'ordonnée, le plateau ayant en temps normal moins de 26 cases, une lettre suffit.

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4303941-structurez-votre-programme#/id/r-4316079
    "Enfin, un graphique a un ensemble de données ayant chacun une abscisse (axe x) et une ordonnée (axe y)."
    Il y a une typo, cela devrait être "ayant chacune" puisqu'il s'agit de données (ou bien mettre "ensemble de points" ?).

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4303941-structurez-votre-programme#/id/r-4315997
    "Chaque objet a une méthode qui lui sert à générer de nouveaux objets sur même modèle."
    typo, il faudrait ajouter "le" dans "sur le même modèle".

Chapitre 4 : quizz RAS

Chapitre 5 :

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4303986-creez-votre-premier-agent#/id/r-4311239
    "Pour cela, rien de plus simple : vous créez une variable puis vous l'assignez à votre classe."
    Là il y a un problème de sens, on ne crée pas une variable pour l'assigner à la classe.
    On assigne une instance de la classe au contenu d'une variable,
    l'instance de la classe étant créée par l'appel à son constructeur, càd le nom de la classe suivi des parenthèses.

  • dans l'éditeur de code, où on nous demande de créer une instance d'une classe :
    le code suivant n'est pas validé par le robot :
    first_instance = Waffle()
    mais le code suivant est validé :
    sugar_waffle = Waffle()
    En gros, le robot de validation n'est pas bien futé.

Chapitre 6 :

Chapitre 7 :

Chapitre 8 : RAS

Chapitre 9 : quizz

  • Question 2
    """
    Une classe est :
    une salle dans laquelle se réunissent les élèves apprenant à coder.
    la représentation d'un objet en programmation.
    """
    Ni l'un ni l'autre, une classe est la représentation nommée des traits communs (attributs, méthodes) à un ensemble d'objets.

Chapitre 10 :

  • Dans la vidéo de début de chapitre, il manque l'utilisation de HEIGHT_DEGREES dans la création des zones.

Chapitre 11 :

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4313146-ajoutez-un-habitant#/id/video_Player_1
    Dans la vidéo de début de chapitre, la création des zones est faite dans la boucle pour chaque agent !!!
    Inutile de dire que c'est l'ordinateur qui est lent dans la vidéo ><

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4313146-ajoutez-un-habitant#/id/r-4313159
    "La seconde solution est de trouver l'index de la zone à partir de l'index de la position."
    devrait plutôt être
    "La seconde solution est de trouver l'index de la zone à partir des coordonnées de la position."

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4313146-ajoutez-un-habitant#/id/r-4313162
    """
    def contains(self, position):
    return position.longitude >= min(self.corner1.longitude, self.corner2.longitude) and
    position.longitude < max(self.corner1.longitude, self.corner2.longitude) and
    position.latitude >= min(self.corner1.latitude, self.corner2.latitude) and
    position.latitude < max(self.corner1.latitude, self.corner2.latitude)
    """
    Un commentaire sur ce code serait intéressant, pour préciser qu'on a bien créé chaque zone
    avec le coin inférieur gauche et supérieur droit mais que cette méthode n'a besoin que d'une paire de coins opposés pour marcher :
    plus robuste mais moins efficace.
    Il y a un bug fourbe :
    -- pour la longitude ok car -180 et 180 ça revient au même donc inégalité large sur le min
    et inégalité stricte ça fonctionne à condition que la base des agents soit normée avec -180 plutôt que 180 comme valeur extrême sur chaque agent,
    sinon un prétraitement des longitudes des agents et tout est ok
    -- par contre pour la latitude, toute personne au pôle Nord à 90° de latitude est hors zone
    (bon je sais la proba est faible mais ça illustre la différence entre un programme qui marche en pratique et un programme correct.
    Souvent, pour des raisons de sécurité, on veut un programme correct, là c'est du Python mais si on avait un pointeur dans chaque agent vers sa zone,
    on pourrait avoir un pb de pointeur non initialisé etc. C'est peut-être une bonne opportunité pour sensibiliser le public de la formation.)

Chapitre 12 : RAS

Chapitre 13 : quizz RAS

Chapitre 14 :

  • https://openclassrooms.com/fr/courses/4302126-decouvrez-la-programmation-orientee-objet-avec-python/4313271-calculez-lagreabilite-moyenne-dune-zone#/id/video_Player_1
    Dans la vidéo de début de chapitre, et après, le calcul d'aire est complètement faux,
    il est à peu près vrai au niveau de l'équateur mais les grilles ne délimitent pas des carrés, ni même des rectangles.
    Je comprends que la vraie formule est hors sujet pour ce cours mais ce serait bien de dire une phrase du style :
    "On va supposer pour simplifier que les habitants se trouvent loin des pôles et on utilisera donc ce calcul approché".
    (La distance entre deux points de latitude 90° est zéro (pôle Nord) quelle que soit la longitude des deux points,
    le calcul est valable pour la distance entre deux points de latitude 0° (équateur),
    entre deux points de même latitude la distance varie selon la longitude ET la latitude
    (distance maximale à l'équateur, distance nulle aux pôles).)

Chapitre 15 :

Chapitre 16 :

Chapitre 17 : quizz RAS

Bien cordialement,
Laurent Lyaudet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions