Journal Enseignement de Python

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
juin
2003
Bonjour,

j'ai l'intention d'expérimenter l'utilisation de Python comme langage
de programmation pour des étudiants d'IUT SRC (service et réseaux de
communication).

L'objectif de cette filière (SRC) est de former des professionnels
polyvalents en communication (visuelle surtout), réseau, et
programmation.
http://iut.univ-mlv.fr/formation/formation.php?dep=src


Mon constat est simple : actuellement on leur apprend le C puis le
C++ avec d'énormes difficultés. C'est normal : ils sont issu de
nombreux bac, et même les scientifiques ne sont pas nécessairement
passionnés de prog (en particuliers ceux qui viennent en SRC).

L'utilisation d'un langage comme python ma parait donc beaucoup plus
adapté.

J'aurais donc deux question à soumettre à votre sagacité :

- l'emploi d'un langage encore aussi peu répandu dans l'industrie
n'est-il pas un problème pour nos étudiants ?

- avez-vous déjà une expérience en la matière (étudiant/enseignant) ?

Enfin une question subsidiaire :

-avez-vous des idées d'applications (très) simple en python pouvant
faire l'objet de TP intéressant du point de vue de ces étudiants (en
particulier pour le premier contact avec le langage) ?

(J'entends par là qui ne soit pas des appli mathématiques, ou des
progs reposant sur une multitude de bibliothèques)

Merci d'avance,

Christophe.
  • # Re: Enseignement de Python

    Posté par  . Évalué à 1.

    Il me semble que bcp pensent à l'utiliser comme langage d'apprentissage, et non je ne trouve pas qu'il soit si peu répandu que ça, la NASA l'utilise par ex...
  • # Re: Enseignement de Python

    Posté par  . Évalué à 4.

    Pour des idées de tp et d'exercices en Python il y a ceux de l'université Paris 13 http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Python(...) (note : la page est down pour l'instant)

    Sinon le choix de Python est à mon avis excellent, il me semble d'ailleurs que le langage a été conçu en partie comme un support de premier langage destiné à apprendre la bonne programmation.
    Concernant le fait que Python soit peu répandu dans l'industrie, c'est vrai mais il progresse (cf une étude de Idealx de cette année sur l'emploi des logiciels libres en production http://www.idealx.com/resources/guide.fr.htm(...) ). Sinon il y a Perl (plus répandu, plus de modules, plus de docs) mais c'est AMHA un langage assez déroutant pour un débutant en programmation.
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 3.

      le choix de Python est à mon avis excellent

      Je suis bien d'accord avec toi ! ;o)

      Python soit peu répandu dans l'industrie, c'est vrai mais il progresse

      J'en suis convaincu. De même que si on forme des gens à l'utiliser ils seront prescripteur !

      Perl (plus répandu, plus de modules, plus de docs) mais c'est AMHA un langage assez déroutant pour un débutant en programmation.

      Sur Perl, je partage ton avis.

      Je suis réellement convaincu que la syntaxe et la structure de Python sont beaucoup plus adapté à l'enseignement.

      J'ajoute qu'ils ont un enseignement d'objet en deuxième année (C++ jusqu'à présent), et que python présente l'avantage d'être objet (je ne crois pas que perl le soit).
  • # Re: Enseignement de Python

    Posté par  . Évalué à 2.

    Sinon, pour montrer qu'on peut tout faire en Python, il y a un jeu entièrement programmé avec ce langage : Slune
    http://oomadness.tuxfamily.org/fr/slune(...)
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      Je n'ai pas testé...

      Au vu des captures je ne suis pas certain que ce soit une très bonne pub pour python ! ;o)

      Ceci étant, l'idée de leur faire développer ou contribuer à un _vrai_ projet est un de mes objectifs sur le long terme.
  • # Re: Enseignement de Python

    Posté par  . Évalué à 1.

    heu "hello world" et autre traitement de chaine ...
    et ensuite un systeme de messagerie instantanée si tu peux faire des chose en réseau (definir un protocole, un format de trame, notions client/serveur, ... ),
    sinon traitement d'images ...

    ca ne devrait pas etre trop complexe

    Dam
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      un systeme de messagerie instantanée si tu peux faire des chose en réseau (definir un protocole, un format de trame, notions client/serveur, ... )

      Ce n'est pas bête... C'est assez complexe pour mes étudiants (ce ne sont pas des informaticiens)... mais avec un peu de boulot de mon coté ça peut être intéressant.

      traitement d'images

      Tu entends quoi, transformer des images « nativement » ?
      Si c'est le cas c'est trop mathématique pour eux.

      Si il s'agit d'utiliser des outils style imagemagic... ça peut être sympa comme truc anexe (du style en initiation linux/unix)
      • [^] # Re: Enseignement de Python

        Posté par  . Évalué à 2.

        pour le traitement d'image : ce ke j'avais fé en cours c'etait le "Tourists killer" tandan!!! :)

        cad tu prends une suite d'images tirées d'une scene vidéo et tu essayes d'en extraire le fond

        donc mon prof avait fourni la 20 aine d'images et des fonctions pour les importer dans une variable matrice ensuite à nous de traiter les matrice pour faire des stats sur les couleur de chaque point, et tenter de donner le fond de la scene ....

        tourist killeur ca vient du fait que si tu laisse une caméra filmer un monument connu tu aura toujours c'est pt1 de touristes devant et que cette appli permet de nettoyer l'image.
        (ca marche aussi avec une photo satellite pour recupéré la France sans nuage) (bref CT marrant)

        Dam
        • [^] # Re: Enseignement de Python

          Posté par  (site web personnel) . Évalué à 1.

          Tourists killer

          Je ne connaissait pas. C'est drôlement sympa comme appli. J'ai peur que ce soit un peu délicat pour mes étudiants. Je vois bien comment on peut se débrouiller pour faire une appli bidon qui marche, mais pour que ce soit intéressant, il faut qu'ils puissent tester sur de vraies images... si tu peux me donner plus de détails (je ne connais rien au traitement d'image) sur l'import/export ?
          • [^] # Re: Enseignement de Python

            Posté par  . Évalué à 2.

            arf dans mon cas c'etait de betes images BMP
            (3 octets par pixel, 1 octet pour le Rouge, un octet pour le Vert et un octet pour le Bleu, plus une entete relativement courte cf google :) )

            et pour claculer la distance entre 2 couleurs une formule: sqrt((R1-R2)² + (V1-V2)² + (B1-B2)²)

            pour un pixel de l'image en cours, comparer avec la liste des couleurs déjà associées a ce pixel, prendre la plus petite distance, si inférieur a un certain seuil (a ajuster pour plus ou moins de sensibilité) incrementé la couleur la plus proche de 1 sinon ajouter la couleur à la liste associée a ce pixel

            A la fin renvoyer l'image avec pour chaque pixel la couleur qui a le maximum d'occurence

            A optimiser .....

            pour les images prendre une photo satellite de la France sur plusieurs jour (plus il y en a plus il y a de chance que le territoire soit visible), les transformer en BMP et lancer l'appli sur ces images.

            Dam
  • # Re: Enseignement de Python

    Posté par  . Évalué à 0.

    Et pourquoi ne pas leur faire du Perl ? AMHA c'est plus utilisé que Python et tout à fait destiné à la prog admin et réseau, et ça tourne sur plein de platformes.
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      Voir plus haut : a ma connaissance pas d'objets dans Perl.
      Syntaxe/structure trop déroutante.
      • [^] # Re: Enseignement de Python

        Posté par  (site web personnel) . Évalué à 1.

        Les structures ne sont pas déroutante. Elle ne sont juste pas habituel par rapport aux autres langages (typiquement la variable $_ qui est sous entendu partout). En gros, les vrais déroutés sont ceux qui connaissent un autre langage avant de se mettre à Perl.

        "La première sécurité est la liberté"

        • [^] # Re: Enseignement de Python

          Posté par  (site web personnel) . Évalué à 1.

          Les structures ne sont pas déroutante.

          Le pb, c'est que c'est le seul langage que les étudiants vont approfondir !

          Le but c'est qu'ils puissent avoir des armes pour _ensuite_ s'attaquer à des langages comme C, C++, java.

          Je crois que pour ça aussi Python est plus adapté.
      • [^] # Re: Enseignement de Python

        Posté par  . Évalué à 2.

        Perl supporte la programmation objet. Voir man perltoot et man perlobj.
        Par contre, je ne garantis pas la facilité d'utilisation...
        En fait, Perl peut faire ce qu'on veut du moment qu'on est suffisamment motivé ;)

        Par contre, je suis du même avis concernant la syntaxe et la structure. C'est pas un langage génial pour apprendre, c'est un peu trop complexe.

        Sinon, tu as ruby qui est pas mal, peut-être un peu trop jeune, très peu utilisé, et peut-être même trop objet, mais vraiment très simple.
        Mais bon, je pense qu'effectivement, python est le langage de script le plus adapté pour un IUT (besoin d'être rapidement opérationnel, langage plutôt pas mal utilisé).
  • # Re: Enseignement de Python

    Posté par  . Évalué à 4.

    il y a des cours sur le web tu peux t'en inspirer genre:
    http://www.ulg.ac.be/cifen/inforef/swi/python.htm(...)

    http://www.linuxjournal.com/article.php?sid=3946(...)

    http://www.p3b.org/(...) (site avec bcp de didacticiel pour python)

    http://perso.club-internet.fr/olberger/python/index.html(...) (bcp de lien dont tutoriaux, mais aussi ressources pour python)

    sinon pour délirer un peu va sur pygame.org, si tu veux le faire dev un petit jeu -un cours que tu devra faire vers la fin je pense, pygame est une lib pour dev des jeux -utilisant sdl derriere il me semble- ou tu peux utiliser pyqt pour avoir rapidement plein d'outils -donc graphique, réseau- facilement utilisable-

    site francais du tutoriel officiel de Guido Van Rossum:

    http://perso.club-internet.fr/olberger/python/doc/tut/tut.html(...)
  • # Re: Enseignement de Python

    Posté par  (site web personnel) . Évalué à 1.

    et même les scientifiques ne sont pas nécessairement passionnés de prog

    C'est clair, je suis en SRC à Chambéry, et l'HTML basique (pour certains) est un langage de programmation complexe !

    Par contre, c'est pas juste, j'aurais bien aimé avoir des cours de Python, pour apprendre la prog, on a commencé avec... du javascript (sic).
    (même turbo-pascal aurait été plus adapté amha pour apprendre à programmer... ce que j'ai fait en deug mias)
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      HTML basique (pour certains) est un langage de programmation complexe

      C'est hélas le cas dans la plupart des SRC.

      Flash a beaucoup plus de succès.

      c'est pas juste, j'aurais bien aimé avoir des cours de Python, pour apprendre la prog

      Merci de l'encouragement ! ;o)

      Ce n'est pas encore totalement décidé. Mais je suis assez convaincu.
      Il ne me reste plus qu'à convaincre 1 collègue.
      • [^] # Re: Enseignement de Python

        Posté par  (site web personnel) . Évalué à 1.

        C'est hélas le cas dans la plupart des SRC.

        C'est dû à ce recrutement bizarre : en gros on prend de tous horizons, mais ceux qui détestent les matières scientifiques vont rapidement souffrir...

        Flash a beaucoup plus de succès.

        C'est vrai. Je dois bien être un des rares à encore faire de la résistance au Flash.
        On a bien eu une présentation de SVG, mais deux heures de cours là-dessus, c'est pas assez !

        Et je dois être le seul de la promo qui se soucie des standards du web (y en a qui n'ont jamais entendu parler du weutroissé (késako ? :), et qui disent qu'IE est le meilleur navigateur qui existe... non-information, quand tu nous tiens...)
        • [^] # Re: Enseignement de Python

          Posté par  (site web personnel) . Évalué à 1.

          C'est dû à ce recrutement bizarre

          Oui, mais c'est ça aussi qui fait la richesse (et le succés) de SRC.

          je dois être le seul de la promo qui se soucie des standards du web

          Tu es peut-être le seul SRC en France dans ce cas ! ;o)

          Je suis arrivé cette année dans mon IUT. C'est assez étonnant de voir que les enseignants de multimédia ne sont (pour ceux que je connais) pas du tout au fait des standards !
          • [^] # Re: Enseignement de Python

            Posté par  (site web personnel) . Évalué à 1.

            Ah non ! je suis aussi en SRC (enfin je viens d'y passer 2 ans, à mulhouse) et je me soucis aussi des standards. Mais c'est clair que on est maximum 3 sur les 2 promos (1a et 2a +- 100 eleves)..


            Et sinon nous c'était Java en 1ère année et PHP en 2ème année
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 2.

      Sinon, moi je pense qu'un très bon language pour apprendre l'algo et à programmer c'est l'ada. C'est un language très clair et les passage des paramètres aident beaucoup à la comprehension.

      Et puis on peut aussi faire de l'objet avec.

      En tout cas quand j'étais à l'IUT on a commencé avec ce language et je trouve que ca a vraiment été très utile. Même si par la suite on a continué avec C/C++, ca nous a vraiment permis d'avoir les bases pour construire des programmes proprement.
      • [^] # Re: Enseignement de Python

        Posté par  (site web personnel) . Évalué à 1.

        à l'IUT on a commencé avec Ada

        Oui, mais tu devais être dans un IUT d'info.

        Ce n'était pas un pb parceque vous alliez pratiquer d'autres langages.

        J'aimerais bien que le langage que j'enseigne à mes étudiants leur serve !

        Je n'ai rien contre Ada, mais je crois qu'ils ont plus de chance d'utiliser Python par la suite que Ada.
  • # Re: Enseignement de Python

    Posté par  (site web personnel) . Évalué à 1.

    Si tu veux un langage répandu c'est php qu'il faut apprendre.

    Quoique tomcat est bien un truc python ou je mélange tout ?

    "La première sécurité est la liberté"

    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 4.

      Je crois que tu mélanges un peu.
      Tomcat est un serveur se programmant en java, pouvant gérer des applications web (pages JSP)

      Le truc python serveur machin chose, c'est Zope ;)
  • # Re: Enseignement de Python

    Posté par  . Évalué à 2.

    J'ai suivi une formation SRC (à Laval).
    Nous avons commencé par apprendre la programmation avec java (en première année de souvenir). Ce que j'ai regretté le plus, c'est qu'on a eu aucuns cours d'algo. Pour ceux qui n'avaient jamais programmé ou fait d'études supérieur, ils ont eu beaucoup de mal à s'y faire.

    Par la suite, on a eu des cours "d'analyse". Qu'est ce qu'un objet, une interface, le principe d'héritage, polymorphisme, etc. Ce qui avait été fait jusqu'alors devait soudainement beaucoup plus clair. J'ai l'impression d'avoir fait les choses à l'envers !

    Concernant python, c'est un langage comme un autre. Le but n'est pas de maitriser un langage de programmation, non ?

    En faculté, on apprend bien ocaml et malgrès ses formidables atouts, tout le bien que l'on dit, j'ai pas vu beaucoup d'applications fait avec, bien moins qu'en python.
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      Juste par curiosité, tu fais quoi maintenant ?

      (Au passage, je pense que ocaml pourrait aussi être un bon langage ou encore smalleiffel, mais ils me semblent trop confidentiel. Ce n'est pas un pb à la fac ou les étudiants qui veulent faire de l'info toucherons d'autre langage, en IUT c'est différent)
  • # Re: Enseignement de Python

    Posté par  . Évalué à 3.

    Un truc intéressant avec python, c'est les SIG (special interest group), qui gravitent autour du langage et approfondissent un aspect du langage, tu en as pour l'IA, XML, SGBDR, et surtout un dédié à Python dans l'éducation, avec une mailing liste assez réactive et des brouettes de liens vers des exemples, des cours etc... j'ai pas d'url sous la main, va voir sur www.python.org, rubrique SIG. Evidemment c'est en anglais...
    Si tu veux vraiment enfoncer le clou question programmation OO, utilise wxwindows comme bibliothèque d'interface...


    Une idée de TP ? Je sais pas trop, étant autodidacte (parce que je le vaux bien), je vois pas trop le niveau demandé... voici donc quelques suggestions que je considère facile :
    -un client jabber amélioré avec des fonctions d'échange de fichier
    -un jeu de Go en réseau (codage client - serveur, jolie interface graphique...)
    -Un visualisateur de molécules en OpenGL (qui lis les descriptions dans un fichier XML)
    -un soft de P2P "allégé"
    -un CMS (content management system) web
    -un root toolkit scriptable

    une grosse blague est dissimulée dans la liste ci-dessus. Sauras-tu la trouver, ami lecteur ?
    • [^] # Re: Enseignement de Python

      Posté par  . Évalué à 1.

      tant qu'à faire, je te donne l'URL du SIG education::
      http://www.python.org/sigs/edu-sig/(...)
      bon courage...
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      les SIG

      Excellent, ça a l'air très intéressant.

      utilise wxwindows comme bibliothèque d'interface

      C'est ce que j'ai envie de faire en deuxième année.

      Une idée de TP ... cut

      Plein de très bonne idées... sans doute un peu rude. J'avais déjà pensé à quelques unes...

      Pour les molécules en opengl, doit-on en déduire que celà t'intéresserait ?

      (si c'est pas le gag, je suis preneur pour un prog exemple ;o) )
  • # Re: Enseignement de Python

    Posté par  . Évalué à 1.

    excellente idée que d'ouvrir un debat sur un tel sujet
    j'aime bcp cette facon de faire qui correspond bien a l'idée du libre
    mais n'existe t'il pas des sites dediés ? des initiatives privées ou publiques qui reflechissent à ce genre de questions tres interessantes

    je dis ca parceque ma mere est prof de lycée en sections STT. Comme cours, cette année, ils ont eu du access et pour l'année prochaine, ce sera du SQL (je n'ai pas encore trop d'infos). C'est une nouvelle reforme que je trouve tres encourageante . Les bases de données se repandant de plus en plus, avoir des notions peut devenir tres utile.
    • [^] # Re: Enseignement de Python

      Posté par  (site web personnel) . Évalué à 1.

      mais n'existe t'il pas des sites dediés ?

      Pas à ma connaissance. Il y a quelques newsgroup à vocation pédagogique... pas trop testé.

      Ici il y a une bonne activité... et aussi un contact avec des non-enseignants, des gens qui bossent dans le privé.

      initiatives privées ou publiques qui reflechissent à ce genre de questions tres interessantes

      Dans le supérieur la règle est que les reponsables des enseignements
      sont souverain. Leur seul critère est que le ministère valide leur
      formation. Du coup, il n'y a rien de central.

      Même dans le secondaire, il y a une multitude de site perso où les
      gens diffusent leur production (énoncés et autres) mais à ma
      connaissance aucune tentative « centralisée ». Dans les
      établissement, ça dépend beaucoup des bonne volontés.

      Bref, ici c'est vraiment pas mal pour parler de ça !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.