IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[Débutant] Apprendre à programmer avec Python [Tutoriel]


Sujet :

Python

  1. #1
    Expert éminent sénior
    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5 382
    Points : 12 038
    Points
    12 038
    Par défaut [Débutant] Apprendre à programmer avec Python
    Bonsoir à tous,

    Voici un tutoriel pour débutant Apprendre à programmer avec Python

    Adaptation libre de "How to think like a computer scientist" de Allen B. Downey, Jeffrey Elkner et Chris Meyers
    A l'origine, les présentes notes ont été rédigées à l'intention des élèves qui suivent le cours Programmation et langages de l'option Sciences& informatique au 3e degré de transition de l'enseignement secondaire belge. Il s'agit d'un texte expérimental qui s'inspire largement de plusieurs autres documents publiés sous licence libre sur l'internet.

    Nous proposons dans ces notes une démarche d'apprentissage non linéaire qui est très certainement critiquable. Nous sommes conscients qu'elle apparaîtra un peu chaotique aux yeux de certains puristes, mais nous l'avons voulue ainsi parce que nous sommes convaincus qu'il existe de nombreuses manières d'apprendre (pas seulement la programmation, d'ailleurs), et qu'il faut accepter d'emblée ce fait établi que des individus différents n'assimilent pas les mêmes concepts dans le même ordre. Nous avons donc cherché avant tout à susciter l'intérêt et à ouvrir un maximum de portes, en nous efforçant tout de même de respecter les principes directeurs suivants :

    L'apprentissage que nous visons doit être adapté au niveau de compréhension et aux connaissances générales d'un élève moyen. Nous nous refusons d'élaborer un cours qui soit réservé à une « élite » de petits génies. Dans la même optique, notre ambition reste généraliste : nous voulons mettre en évidence les invariants de la programmation et de l'informatique, sans poursuivre une spécialisation quelconque.
    Les outils utilisés au cours de l'apprentissage doivent être modernes et performants, mais il faut aussi que l'élève puisse se les procurer en toute légalité pour son usage personnel. Toute notre démarche d'apprentissage repose en effet sur l'idée que l'élève devra très tôt mettre en chantier des réalisations personnelles qu'il pourra développer et exploiter à sa guise.
    L'élève qui apprend doit pouvoir rapidement réaliser de petites applications graphiques.
    Les étudiants auxquels nous nous adressons sont en effet fort jeunes (en théorie, ils sont à peine arrivés à l'âge ou l'on commence à pouvoir faire des abstractions). Dans ce cours, nous avons pris le parti d'aborder très tôt la programmation d'une interface graphique, avant même d'avoir présenté l'ensemble des structures de données disponibles, parce que nous observons que les jeunes qui arrivent aujourd'hui dans nos classes « baignent » déjà dans une culture informatique à base de fenêtres et autres objets graphiques interactifs. S'ils choisissent d'apprendre la programmation, ils sont forcément impatients de créer par eux-mêmes des applications (peut-être très simples) où l'aspect graphique est déjà bien présent. Nous avons donc choisi cette approche un peu inhabituelle afin de permettre à nos élèves de se lancer très tôt dans de petits projets personnels attrayants, par lesquels ils puissent se sentir valorisés. Nous leur imposerons cependant de réaliser leurs projets sans faire appel à l'un ou l'autre de ces environnements de programmation sophistiqués qui écrivent automatiquement de nombreuses lignes de code, parce que nous ne voulons pas non plus masquer la complexité sous-jacente.
    Qu'en pensez-vous ? Qui d'entre vous trouves que ce livre est très bien pour un débutant ?


    PS : Voir aussi :
    Les cours et tutoriels pour apprendre la programmation Python.
    Apprendre à programmer avec Python 3 par Gérard Swinnen

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 480
    Points : 9 277
    Points
    9 277
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Les livres de Gérard Swinnen sont des références pour apprendre Python.


    A noter que le temps passe vite, et qu'il serait souhaitable de parler maintenant du tuto de Swinnen Python 3 dans les cours de developpez (sans abandonner celui de Python 2, version encore très utilisée).

  3. #3
    Expert éminent sénior
    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5 382
    Points : 12 038
    Points
    12 038
    Par défaut
    Moi aussi je les trouve très bien.

    Nous allons donc héberger les Tomes 2 et 3 sous licence CC.

    Merci pour l'idée tyrtamos

  4. #4
    Membre régulier Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 119
    Points
    119
    Par défaut Erreur dans un exercice
    Bonjour

    Il me semble que l'exercice 12.5 du livre "Apprendre à développer avec Python 3", qui est par ailleurs un bijou, comporte une erreur car la surface d'un cylindre de rayon 5 et de hauteur 7 n'est pas égale à 78.54 mais à 219,91 (sans compter les bases).

    La valeur 78.54 est en fait la surface d'un cercle de rayon 5. Je pense qu'il aurait fallu surcharger la méthode Cercle.surface pour l'adapter au cas du cylindre.

    Même remarque pour la surface du cône.

    On trouve cette erreur dans les deux versions html (python et python 3). Voir exercice 12.5).

    Pierre

  5. #5
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Pierrot92320 Voir le message
    Il me semble que l'exercice 12.5 du livre "Apprendre à développer avec Python 3", qui est par ailleurs un bijou, comporte une erreur car la surface d'un cylindre de rayon 5 et de hauteur 7 n'est pas égale à 78.54 mais à 219,91 (sans compter les bases).
    La valeur 78.54 est en fait la surface d'un cercle de rayon 5. Je pense qu'il aurait fallu surcharger la méthode Cercle.surface pour l'adapter au cas du cylindre.
    [/URL]).
    12.5. Définissez une classe Cercle(). Les objets construits à partir de cette classe seront des cercles de tailles variées. En plus de la méthode constructeur (qui utilisera donc un paramètre rayon), vous définirez une méthode surface(), qui devra renvoyer la surface du cercle.
    >>> cyl = Cylindre(5, 7)
    >>> print cyl.surface()
    78.54
    >>> print cyl.volume()
    549.78
    La méthode "surface" demandée doit bien renvoyer la surface du cercle, non?
    (Même si, effectivement, cela peut prêter à confusion.)

    Clodion

  6. #6
    Membre régulier Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par Clodion Voir le message
    La méthode "surface" demandée doit bien renvoyer la surface du cercle, non?
    L'énoncé demande de créer la méthode surface() pour la classe Cercle mais il ne précise rien sur la classe Cylindre. Il me semble qu'un ordinaire élève aurait donc tenté de modifier la méthode Cercle.surface() pour l'adapter au cas du cylindre. Vous ne croyez pas ? Je suis peut-être trop matheux dans l'âme ...

    Sincèrement, je ne crois pas que l'auteur, étant la qualité de rédaction de son livre et son expérience personnelle de prof de maths et de physique, ait donné volontairement un énoncé aussi peu précis. Je pense qu'il s'est tout simplement trompé. Mais on lui pardonne très volontiers car il rend énormément service aux débutants en Python dont je fais partie ...

  7. #7
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Pierrot92320 Voir le message
    L'énoncé demande de créer la méthode surface() pour la classe Cercle mais il ne précise rien sur la classe Cylindre. Il me semble qu'un ordinaire élève aurait donc tenté de modifier la méthode Cercle.surface() pour l'adapter au cas du cylindre. Vous ne croyez pas ?
    Sans doutes… Simplement, amha, il s'intéresse principalement aux volumes (cylindre, cône). La surface du cercle (et donc de la base) n'est pour lui que l'outil permettant d'obtenir le volume. Le tout avec pour objectif la dérivation de classes.

    Citation Envoyé par Pierrot92320 Voir le message
    Sincèrement, je ne crois pas que l'auteur, étant la qualité de rédaction de son livre et son expérience personnelle de prof de maths et de physique, ait donné volontairement un énoncé aussi peu précis. Je pense qu'il s'est tout simplement trompé. Mais on lui pardonne très volontiers car il rend énormément service aux débutants en Python dont je fais partie ...
    Je pense que l'imprécision aurait été levée remplacement du nom de la méthode "surface" par "surface_base" ou simplement "base".

    Si vous estimez que cela constitue une erreur alors il faudrait contacter l'intéressé .

    Clodion

  8. #8
    Membre régulier Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par Clodion Voir le message
    Si vous estimez que cela constitue une erreur alors il faudrait contacter l'intéressé
    Je vous remercie pour ce lien. J'ai envoyé un mail à l'auteur pour lui poser la question (et le remercier pour la qualité de son livre). Si je reçois une réponse je vous en ferai part.

Discussions similaires

  1. Apprendre à programmer avec Python exercices 4.2
    Par bellamy dans le forum Général Python
    Réponses: 5
    Dernier message: 15/10/2009, 14h53
  2. Apprendre à programmer avec Python exercices 5.14
    Par bellamy dans le forum Général Python
    Réponses: 7
    Dernier message: 02/08/2008, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo