Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typos/Remarques #3

Open
LLyaudet opened this issue Jun 27, 2020 · 3 comments
Open

Typos/Remarques #3

LLyaudet opened this issue Jun 27, 2020 · 3 comments

Comments

@LLyaudet
Copy link

LLyaudet commented Jun 27, 2020

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

@celine-m-s
Copy link
Contributor

celine-m-s commented Jun 27, 2020

Bonjour Laurent,
Merci beaucoup d'avoir pris le temps de noter toutes ces coquilles et de m'avoir envoyé ce message. En effet, vos remarques sont très pertinentes et devraient être intégrées à ce cours. Malheureusement je ne suis plus en mesure d'en modifier le contenu car je ne travaille plus pour OpenClassrooms.
Je vous invite à les contacter directement afin de leur faire part de vos remarques.
J'espère également que les autres cours sur Python vous plairont. :)
En vous souhaitant une belle fin de journée,
Bien cordialement,
Céline

@LLyaudet
Copy link
Author

LLyaudet commented Jun 27, 2020

@LaurentOngaro
Copy link

LaurentOngaro commented Apr 3, 2021

merci pour ce retour Laurent.
J'ajouterai que je trouve que les exemples de la console de code manquent de clarté et sont parfois trop succincts.
En particulier
celui là:
Dont je n'ai compris ni l'énoncé, ni le but, ni la correction proposée.

Bien que les explications de Cécile soit en général claires, j'ai trouvé que le sujet du cours n'est pas adapté à un cours de débutant (ou d'initiation à la P.O.O.)
Même en tant que programmeur expérimenté, je n'ai pas adhéré au modèle proposé pour représentation du jeu de la bataille navale. La hiérarchie des classes proposée, et en particulier l'utilisation des zones n'est pas évidente.
J'ai globalement trouvé ce cours en deçà des standards habituels sur OpenClassRoom

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants