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

Langages de programmation Discussion :

C ou C++ ? Lequel choisir ?


Sujet :

Langages de programmation

  1. #181
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    J'en ai déjà parlé sur le forum : nous avions discuté dans notre département de la pertinence de prendre Python en premier langage (et en justifiant que c'était maintenant très utilisé en industrie, puisque c'est ce qui nous fait garder C++).
    Puis, on a remarqué le problème de la création d'attribut de manière dynamique. Alors on a oublié. C'est trop gênant hélas. C'est dommage car je l'aurais bien pris moi.
    Voir ici
    D'ailleurs c'était une réponse à Thierry. Je suppose qu'il s'en rappelle très bien.
    Oui, je m'en rappelle. J'ai donne ce semestre un cours à option de simulation numérique à des étudiants ingénieurs chimistes (pas des pros de la programmation, donc). J'ai choisi d'utiliser Python (avec les modules NumPy et SciPy). L'année dernière, ce cours utilisait C++. En discutant avec mes collègues, je constate que les étudiants perdent moins de temps avec des questions d'ordre syntaxique. Depuis ton intervention dans le fil que tu cites plus haut, je me suis un peu documenté sur des alternatives telles que Scheme (et j'ai du même coups débuté avec la programmation fonctionnelle). Je suis convaincu que C++ n'est pas optimal pour un 1er cours en programmation. Mais le sujet de ce post est, en schématisant, C vs C++. Dans ce contexte, je trouve C++ plus adapté. Tu as dit que, avant d'utiliser des outils tels que le type std::string, le cours utilisait les tableaux. J'ai du mal à envisager comment se passer des pointeurs en travaillant avec des tableaux, à moins de ne pas utiliser de fonctions (ce qui me semble une approche étrange).

    Je n'ai pas une grande expérience d'enseignement du C++. Mon expérience ne vaut certainement pas la tienne, mais les questions discutées dans ce fil sont intéressantes.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  2. #182
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    [...]Tu as dit que, avant d'utiliser des outils tels que le type std::string, le cours utilisait les tableaux. J'ai du mal à envisager comment se passer des pointeurs en travaillant avec des tableaux, à moins de ne pas utiliser de fonctions (ce qui me semble une approche étrange).
    ---Thierry
    On ne déclare que des tableaux statiques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int un_tableau [TAILLE_MAX] ;
    Certes il y a le passage des tableaux en paramètre ! Ceci est d'ailleurs fort stressant pour les étudiantEs. Dans un premier temps, on ne passe pas de tableaux, dans un deuxième, après avoir vu les paramètres de sorties (avec l'utilisation de &) on leur explique que les tableaux sont particuliers car ils se passent toujours par référence. Les tableaux ont donc une syntaxe particulière pour le passage en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int fonction (const int tableau_en_entree [], int tableau_en_sortie[])
    On voit donc le passage par référence, on leur indique qu'il y a une notion de pointeurs là dessous, mais que pour l'instant il n'est pas question de les manipuler à la main. J'introduis à cet endroit un modèle de calcul avec des dessins pour les aider, et c'est vrai que rigoureusement parlant il y a des pointeurs. Mais on peut très bien faire le cours sans prononcer une seule fois « pointeur » ou un mot qui voudrait dire la même chose. On s'en sort donc très bien. Ça provoque des limitations puisque les tableaux doivent toujours être bornés. Mais ce n'est pas un problème dans un premier cours. En fait, avec une bonne modularité, on peut faire du traitement dans des fonctions qui définissent eux-même la taille de leurs tableaux à l'aide d'un paramètre. On a l'impression de tableaux dynamique tout en restant dans une approche purement procédurale et sans pointeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     int fonction (int taille_maximale, ...)
    {
        string tableau [taille_maximale];
        etc...
    }
    On aurait la même chose en C. D'ailleurs en fait, on fait du C, ne serait-ce l'utilisation des stream et de string. Mais ceux-ci ne rentre pas dans le « moule » du procédurale. Et parfois je regrette de ne pas plutôt leurs présenter des fonctions comme printf ou scanf.

    Pour ton cours de simulation, une très bonne alternative reste ocaml:
    voir ce livre sur le site de Flying Frog Consultancy. Tu dis que ce ne sont pas des pros, mais était-ce leur premier cours ? Car en dehors du premier cours, je crois que Python est un excellent langage d'apprentissage.

  3. #183
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    En fait, avec une bonne modularité, on peut faire du traitement dans des fonctions qui définissent eux-même la taille de leurs tableaux à l'aide d'un paramètre. On a l'impression de tableaux dynamique tout en restant dans une approche purement procédurale et sans pointeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     int fonction (int taille_maximale, ...)
    {
        string tableau [taille_maximale];
        etc...
    }
    Ouais... Sauf que ça n'est valable que depuis C99 ce code... Théoriquement la taille du tableau devrait être connue à la compilation avant ça.

    --
    Jedaï

  4. #184
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Ouais... Sauf que ça n'est valable que depuis C99 ce code... Théoriquement la taille du tableau devrait être connue à la compilation avant ça.

    --
    Jedaï
    Ça marche avec GNU C++, ça nous suffit donc pour le cours.

  5. #185
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Le C est déjà tellement primitif... alors, si en plus, tu refuses les extensions du C99... Le standard a quasiment 10 ans, il est assez bien reconnu (ok, pas forcément le C99 en entier, mais une grande partie), autant l'utiliser quand on peut.

  6. #186
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Ça marche avec GNU C++, ça nous suffit donc pour le cours.
    Pour un sens qui reste a definir de ca marche.

    Deja pour le C, http://gcc.gnu.org/gcc-4.2/c99status.html donne toujours un status de "Broken" pour la chose a cause de differences plus ou moins subtiles entre ce que gcc fait (et faisait depuis avant la norme) et ce que la norme demande. Mais on pourrait accepter.

    Pour le C++, c'est quelque chose qui ne se trouve pas dans la norme actuelle, qui n'est pas non plus dans la norme en preparation, qui n'est disponible qu'avec g++ et peut-etre avec les compilateurs qui tentent d'etre bug-compatible avec lui (et encore, j'ai pas essaye), qui n'est pas definit dans la doc de g++, meme pas dans la partie "deprecated features" et il y a quelque chose qui fonctionne partout avec le meme effet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector<std::string> tableau(taille_maximale);
    Pourquoi diable enseigner quelque chose qui a autant de problemes et une solution aussi simple?
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  7. #187
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par LLB Voir le message
    Le C est déjà tellement primitif... alors, si en plus, tu refuses les extensions du C99... Le standard a quasiment 10 ans, il est assez bien reconnu (ok, pas forcément le C99 en entier, mais une grande partie), autant l'utiliser quand on peut.
    Je connais deux compilateurs qui pretentent a la conformite. gcc progresse vers elle a une allure de senateur. La derniere fois que j'ai regarde, MS n'etait toujours pas revenu sur son intention de ne pas supporter cette norme. Et c'est ca que tu appelles "assez bien reconnu" pour un langage dont une des forces est la disponibilite pour a peu pres toutes les architectures?

    Et naturellement, ca n'indique rien quant a l'utilisation en C++ (voir mon autre message).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  8. #188
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Pour un sens qui reste a definir de ca marche.
    Ça marche sur toutes les plateformes qu'ils ont dans les laboratoires, plus sous les linux et les MacOSX testés chez eux, le compilateur du cours étant le g++-3.4.5. Ça compile et ça s'exécute sans aucun problème. Qu'est ce qui n'est pas clair dans « ça marche » ? Là je ne vois pas. On va essayer d'être plus précis « ça marche » veut dire qu'ici ça fonctionne et que ça été testé plus d'une fois. S'il s'avérait qu'une fois, il y ait un problème, on changerait le cours.

    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Pourquoi diable enseigner quelque chose qui a autant de problemes et une solution aussi simple?
    Parce que ça marche (voir le sens ci-dessus) et que la solution n'est pas forcément simple. Elle l'est pour toi. Tu n'es pas un étudiant de première année. Pourquoi voudrais tu qu'on leur enseigne bêtement les pointeurs quand justement ça marche très bien ? Ils les verront au cours suivant les pointeurs. Pour vector, même si nous l'utilisions, il faut (pour la structure du programme – au sens académique –) que les tableaux soient vus de toutes façons. Je serais pour leur mettre que des vectors, mais dans ce cas, il y aura un problème en deuxième session.

    Vois-tu c'est là où je te dis que tu ne comprends pas bien un contexte d'enseignement. Construire un cursus complet est bien plus difficile que juste un cours. On force aussi des normes qui n'existent pas (déclaration des fonctions dans les fonctions les utilisant) pour renforcer le paradigme modulaire et leur permettre de faire un suivi de leurs structure hiérarchique à même le code très rapidement.

    On leur enseigne aussi que les normes et règles vont changer et qu'ils doivent s'y préparer. Qu'ils vont devoir apprendre à écrire des programmes autrement, que des choses qu'on leur dit maintenant n'auront plus de valeur la session suivante puisque le contexte aura changé et que le but de l'enseignement sera autre. Le but n'est certainement pas d'apprendre un métier mais des manières de réfléchir avant de voir « les manières de mettre en pratique ». Les deux sont nécessaires car la formation sans pratique ne sert pas à grand chose. Mais d'ici qu'ils sortent avec leurs bacc, la norme aura peut être changée. Donc on ne s'attache pas forcément à la norme actuelle : ça ne sert à rien. On veut leur donne les moyens de résoudre un problème avec un ensemble d'outils et un ou plusieurs paradigmes.

    Notez bien que c'est comme ça aussi que vous avez appris les maths : on vous a dit des choses qui étaient fausses l'année d'après, comme « on ne peut pas soustraire un nombre plus grand d'un autre ». Ou alors on apprend les intégrales de Riemann avant celles de Lebesgue. Mais ça a un intérêt pédagogique.

    Ils ont trois ans pour être « mature ». Alors il faut prendre le temps de ne pas sauter des étapes.

  9. #189
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Commence par le C, et si tu en as besoin, apprends le C++ après. La raison est simple: connaître le C va te faire aimer le C++, parce que C++ est moins stupide que le C. Et tu continues comme ça sur le continuum de la stupidité en allant toujours vers un langage moins stupide.

    Bonne chance.

  10. #190
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Ça marche sur toutes les plateformes qu'ils ont dans
    les laboratoires, plus sous les linux et les MacOSX testés chez eux, le
    compilateur du cours étant le g++-3.4.5. Ça compile et ça s'exécute sans
    aucun problème. Qu'est ce qui n'est pas clair dans « ça marche » ? Là je ne
    vois pas. On va essayer d'être plus précis « ça marche » veut dire qu'ici
    ça fonctionne et que ça été testé plus d'une fois. S'il s'avérait qu'une
    fois, il y ait un problème, on changerait le cours.
    Ça ne marche pas avec Windows à la maison, ça ne marche pas avec Solaris,
    AIX, HP-UX lors de leur stage (et apparemment le stage est la raison pour
    laquelle vous utilisez du C++!), ça va faire leur prendre des "C'est pas du
    C++!" accompagné d'un commentaire peu amène sur les professeurs qui
    enseignent ce qu'ils ne savent pas s'ils cherchent de l'aide n'importe où
    ailleurs. Ca fait perdre confiance dans la qualité de votre enseignement
    et aux employeurs et aux étudiants quand ils apprennent la vérité.

    Vous leur enseignez à utiliser les extensions plutôt qu'à la désactiver.
    Vous leur enseignez l'attitude "Si ça marche sur ma machine, c'est bon",
    qui est rarement la bonne approche, jamais avec le C ou le C++.

    Vois-tu c'est là où je te dis que tu ne comprends pas bien un
    contexte d'enseignement. Construire un cursus complet est bien plus
    difficile que juste un cours. On force aussi des normes qui n'existent pas
    (déclaration des fonctions dans les fonctions les utilisant) pour renforcer
    le paradigme modulaire et leur permettre de faire un suivi de leurs
    structure hiérarchique à même le code très rapidement.
    Je n'enseigne plus, mais je l'ai fait et je me suis intéressé à la
    pédagogie. Et j'en ai quand même retenu quelque chose, entre autres qu'on
    peut ne pas tout dire, mais qu'il ne faut pas mentir pour se démentir
    après; on déconseille même de montrer ce qu'il ne faut pas faire en le
    disant et en expliquant pourquoi il ne faut pas le faire parce que l'erreur
    contre laquelle on a mis en garde est plus souvent commise par après.

    Ici, tu enseignes comme étant du C++ quelque chose qui ne l'est pas.

    Mais d'ici qu'ils sortent avec leurs bacc, la norme aura peut être
    changée.
    Et donc vous n'enseignez ni la situation actuelle, ni la situation future
    -- dont on peut avoir déjà une petite idée, et les tableaux variables à la
    C99 ne sont pas prévus. Quel est le gain?

    Notez bien que c'est comme ça aussi que vous avez appris les maths :
    on vous a dit des choses qui étaient fausses l'année d'après, comme « on ne
    peut pas soustraire un nombre plus grand d'un autre ». Ou alors on apprend
    les intégrales de Riemann avant celles de Lebesgue. Mais ça a un intérêt
    pédagogique.
    On m'a appris qu'on ne pouvait pas faire des choses alors qu'on pouvait les
    faire en changeant de contexte, jamais qu'on pouvait les faire quand on ne
    pouvait pas.

    Ils ont trois ans pour être « mature ». Alors il faut prendre le
    temps de ne pas sauter des étapes.
    Apprendre des choses qu'il faut désapprendre... ça ne me semble pas être un
    bon service. Voir que les choses sont plus complexes que présentées
    précédemment, c'est le processus normal. Voir qu'elles sont totalement
    différentes c'est douteux.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #191
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Ça ne marche pas avec Windows à la maison, ça ne marche pas avec Solaris,
    AIX, HP-UX lors de leur stage (et apparemment le stage est la raison pour
    laquelle vous utilisez du C++!), ça va faire leur prendre des "C'est pas du
    C++!" accompagné d'un commentaire peu amène sur les professeurs qui
    enseignent ce qu'ils ne savent pas s'ils cherchent de l'aide n'importe où
    ailleurs. Ca fait perdre confiance dans la qualité de votre enseignement
    et aux employeurs et aux étudiants quand ils apprennent la vérité.[...]
    Je suis désolé, mais ça marche au moins sur ma plateforme Windows (XP) ça marche chez tous les étudiants qui l'ont testés (et qui ont Windows), et ça marche sur nos Solaris (les laboratoires étant constitués de Sun, PC Linux/Windows). Alors ça ne marche peut être pas sur HP-UX.... certes... je n'ai pas testé. Mais je ne crois pas que ce soit une catastrophe vois-tu

    Donc je m'inscris en faux. Veux tu des captures d'écran pour que je te prouve ce que j'affirme ? Ne trouves tu pas ça ridicule de ne pas me croire ? Mais je peux le faire si ça te fait plaisir.

    Je n'ai jamais vu UN étudiant qui soit revenu avec un commentaire dans le genre « vous auriez pas du nous dire ça parce que c'est pas ça dans l'industrie ou dans la norme et que ça nous a posé un problème en stage ou après ». Et je t'assure que d'une part, nous sommes à l'écoute, et d'autre part ils sont très très critique quand ils le veulent. Donc jusqu'à ce moment, je considèrerais qu'ils ne doivent pas se trouver mal avec ça. Ne t'inquiètes pas pour la confiance qu'ils ont en nous. Nos anciens nous rassurent sur ça.

    Par contre cette phrase ne me semble pas clair : « ça va faire leur prendre des "C'est pas du C++!" accompagné d'un commentaire peu amène sur les professeurs qui enseignent ce qu'ils ne savent pas s'ils cherchent de l'aide n'importe où ailleurs. » Qu'as tu voulu dire ? Problème de ponctuation ?

    Pour le fait que ce soit le C++, la justification officielle c'est le stage. Mais ce n'est pas de notre ressort de décider ça. Ça peut te paraître obscure, mais c'est un découpage de responsabilité débile fait par l'Université -_- passons.

    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Vous leur enseignez à utiliser les extensions plutôt qu'à la désactiver.
    Vous leur enseignez l'attitude "Si ça marche sur ma machine, c'est bon",
    qui est rarement la bonne approche, jamais avec le C ou le C++.
    On leur enseigne plutôt il faut que ça marche sur le serveur cible et pas sur votre machine. Donc je pense que tu peux limiter tes jugements a priori, n'est ce pas ? Car là tu es dans le faux.

    Maintenant tu pourras noter que j'ai dis qu'« on peut faire » ça. On ne s'en sert que s'il y a des problèmes de mémoire (c'est-à-dire que leur programme ne fonctionne pas autrement). Cependant la technique de base utilisée est de borner les tableaux. Donc les tableaux sont tous déclarés avec une taille définie par une constante, globale ou locale, ou d'un #DEFINE. Donc il est rare que le problème se pose. Tu as mon cours... regardes chapitre 6, il n'y a pas d'acétates qui exposent le cas problématique.

    ----

    On forme peut être très très mal nos étudiants... cependant nous sommes malgré ça très populaire aux niveaux des stages et du recrutement. Qui croire donc ? les employeurs et les responsables de stage ou toi ? Si tu es convaincu de ton bien, je ne saurais que trop de recommander de monter le cours correctement et de nous le vendre (il y a des fonds pour payer ça) ou à quelqu'un d'autre. Et tu devrais comprendre que si tu es certainement un expert dans le domaine du C/C++ (et probablement d'autre chose que je ne sais même pas), il y a quand même une bonne chance que le cours ne soit pas complètement à côté de la plaque comme tu le sous entends. Certes il est statistiquement possible que tous les professeurs du département soient mauvais (en fait, je le concèderais sans problème au moins pour un, mais il n'enseigne pas ce cours ^_^), mais ne serait-il pas aussi possible que tu te trompes et que ce qu'on fait est un bon choix ? En attendant il me semble qu'on dérive loin du sujet cette fois. Le but n'est certainement pas de parler exclusivement d'un cours. Non ?

  12. #192
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Je suis désolé, mais ça marche au moins sur ma plateforme Windows (XP) ça marche chez tous les étudiants qui l'ont testés (et qui ont Windows),
    J'ai essayé avant d'écrire -- j'utilise tellement rarement Windows que ce que j'affirme à son sujet, je vérifie avant. Ca ne marche pas avec le compilateur de Microsoft (au moins dans sa version gratuite de 2005).

    et ça marche sur nos Solaris
    Pas avec le compilateur de Sun.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pour le fait que ce soit le C++, la justification officielle c'est le stage. ... Ça peut te paraître obscure,
    Pas obscur du tout, comme je l'ai déjà écrit, s'assurer une certaine commande du langage avant des stages c'est une rare bonne justification d'utiliser du C++ dés le début.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  13. #193
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    J'ai essayé avant d'écrire -- j'utilise tellement rarement Windows que ce que j'affirme à son sujet, je vérifie avant. Ca ne marche pas avec le compilateur de Microsoft (au moins dans sa version gratuite de 2005).
    Ah bin voilà... j'ai bien dis : ça marche avec GNU g++ aussi.
    Et ça marche. Il y a d'autres éléments qui ne sont pas compatible entre le compilateur MS et celui de GNU. Vu qu'ils ont pour machine cible des Sun, nous leur conseillons fortement d'utiliser le compilateur de Code::Block pour éviter les problèmes. Ils auront bien le temps de se prendre la tête avec les problèmes de portabilités. Le but numéro 1 de ce cours, dois je le rappeler est d'enseigner à résoudre des problématiques. Il se trouve que c'est aussi un cours de programmation en C++ car beaucoup arrivent sans aucune connaissance en programmation.

    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Pas obscur du tout, comme je l'ai déjà écrit, s'assurer une certaine commande du langage avant des stages c'est une rare bonne justification d'utiliser du C++ dés le début.
    C'est pas ça que je voulais dire. Ce n'est même pas le département qui choisi complètement le langage. Je t'expliquerais par MP mais c'est bêtement des problèmes de politiques internes ici.

  14. #194
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Par contre cette phrase ne me semble pas clair : « ça va faire leur prendre des "C'est pas du C++!" accompagné d'un commentaire peu amène sur les professeurs qui enseignent ce qu'ils ne savent pas s'ils cherchent de l'aide n'importe où ailleurs. » Qu'as tu voulu dire ? Problème de ponctuation ?
    Je ne peux pas parler à la place de Jean-Marc, mais je peux dire qu'il y a assez souvent sur le forum C++ des gens qui arrivent en montrant un code qui n'est pas du C++. En général, on leur fait remarquer, et souvent leur conclusion est "on a vraiment un prof qui n'y connaît rien dans sa matière".

    Sur les aspects C ou C++, ça fait désormais 3 ans que je donne un cours (très petit, 16h cette année par exemple) de POO/C++ à des étudiants d'une grande école généraliste (donc en général pas des informaticiens), et que systématiquement j'introduis vector<string> bien avant de parler de tableaux, et je n'ai pas constaté que ce soit un point qui leur pose problème.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  15. #195
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Je ne peux pas parler à la place de Jean-Marc, mais je peux dire qu'il y a assez souvent sur le forum C++ des gens qui arrivent en montrant un code qui n'est pas du C++. En général, on leur fait remarquer, et souvent leur conclusion est "on a vraiment un prof qui n'y connaît rien dans sa matière".
    Ça a du sens. C'est peut être ça qu'il a voulu dire. Dans ce cas, il convient de noter que c'est rarement le C++ qui est enseigné à l'Université dans un cours consacré. J'ai eu un cours de « Paradigme orienté-objet ». On y voyait du « vrai » C++ mais aussi toute la procédure conceptuelle de l'OO. Et c'était un cours de 3e année pas un premier cours. La plupart de ceux qui viennent poser des questions voient un cours de conception/programmation dans un cadre d'initiation (première année universitaire). Dans ce cadre, le langage est modifié pour coller au besoin du cours. Donc ce n'est pas toujours un prof qui ne connaît rien, mais souvent un prof qui sait très bien pourquoi il fait ça. Enfin, je sais qu'il y a des profs à la pédagogie franchement bancale et des profs qui enseignent de la matière qu'ils ne connaissent pas. Mais ce n'est pas la majorité. Il faut prendre un cours dans son contexte : le programme du diplôme suivi. Ça change beaucoup de chose.

  16. #196
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Je ne peux pas parler à la place de Jean-Marc, mais je peux dire qu'il y a assez souvent sur le forum C++ des gens qui arrivent en montrant un code qui n'est pas du C++. En général, on leur fait remarquer, et souvent leur conclusion est "on a vraiment un prof qui n'y connaît rien dans sa matière".
    J'ai oublie de revenir sur cette remarque, c'etait bien mon point. (En fait on a souvent l'impression que le professeur enseigne le C++ comme il y a 15 ans).

    J'evite generalement de faire des commentaires sur les professeurs. Ayant enseigne, je sais a quel point le message qu'on tente de faire passer est deforme et les avertissements et explications qu'on donne sont oublies. Parfois a faire douter de la bonne fois des etudiants. L'exemple le plus frappant que j'ai vecu etait dans un cours de systeme a microprocesseurs ou nous utilisions un assembleur qui donnait un message d'erreur abscons si on oubliait de finir par une directive END. Les notes le precisaient clairement. Je surveillais une seance (et pas la premiere!) quand un groupe est venu me trouver au sujet d'une erreur incomprehensible. Je leur rappelle le probleme du END. "Non, ce n'est pas ca." Je me deplace donc jusqu'a leur poste. Que vois-je a l'ecran? La fin de leur programme (resultat de la commande DOS dont j'ai depuis oublie le nom equivalante a cat), la ligne de commande de l'assembleur et une seule et unique erreur: celle resultant de l'absence du END qui effectivement manquait comme c'etait visible quelques lignes plus haut.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  17. #197
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    ... Ça change beaucoup de chose.
    Ce sont des expliquations qui sont parfois valables -- je ne partage pas ton optimisme quant a la proportion des cas -- mais surtout quand elles ne sont pas connues et comprises, ca ne change rien a la perception par le monde exterieur et par l'etudiant. Ca ne fait qu'aggraver et justifier la tendance que tu signalais dans une autre discussion:

    Citation Envoyé par Garulfo Voir le message
    Au passage, et un peu HS, un collègue réputé pour ses compétences pédagogiques et extrêmement apprécié de tous les étudiants (on ne compte plus les prix que les étudiants lui ont décernés), nous faisait remarquer à quel point il est étonnant de voir combien les étudiants et étudiantes en première année en informatique croit tout savoir ou presque et remettent continuellement en doute ce que dit le prof (pour leurs majorités bien sûr).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  18. #198
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    (resultat de la commande DOS dont j'ai depuis oublie le nom equivalante a cat)
    MORE

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  19. #199
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    Bonjour, j'ai quelques questions de néophyte à propos du C++, que je pose ici.

    1. Je voudrai savoir si l'apprentissage de la POO, c'est à dire, la mise en pratique et l'acquisition de connaissances en POO, est un bon argument en faveur de l'utilisation du C++, vis à vis du C bien sûr, mais aussi des autres langages Orientés Objet comme C# et java.

      En d'autres termes, est-ce que le C++ permet de maîtriser tous les aspects de la programmation orientée objet, et de les retranscrire lors de l'utilisation d'autres langages ?


    2. Le modèle POO est-il le plus difficile à apprendre lors de l'apprentissage du C++, pour quelqu'un n'ayant jamais appris de langage OO auparavant ?

  20. #200
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    ("type", pas "more")
    Citation Envoyé par kromartien Voir le message
    1. Je voudrai savoir si l'apprentissage de la POO, c'est à dire, la mise en pratique et l'acquisition de connaissances en POO, est un bon argument en faveur de l'utilisation du C++, vis à vis du C bien sûr, mais aussi des autres langages Orientés Objet comme C# et java.

      En d'autres termes, est-ce que le C++ permet de maîtriser tous les aspects de la programmation orientée objet, et de les retranscrire lors de l'utilisation d'autres langages ?


    2. Le modèle POO est-il le plus difficile à apprendre lors de l'apprentissage du C++, pour quelqu'un n'ayant jamais appris de langage OO auparavant ?
    1- Il y a bien plus pertinent que la POO pour justifier le choix du C++ plutôt que le C sur le plan pédagogique. cf l'article de Stroustrup relatif à l'apprentissage du C++ comme un langage à part entière. Et les récents échanges -- je partage l'avis de Loic et Jean-Marc.

    Le C++, comme quantité d'autres langages, ne "traite" pas tous les aspects de la POO.
    De plus, la relative ouverture d'exprit du C++ en matières de paradigmes supportés va faire que tu ne pourras pas toujours convertir immédiatement du C++ dans un autre langage n'offrant pas les mêmes possibilités.

    2- Je n'en sais rien. J'ai eu des élèves assimilant mieux le Java que C. Je n'en tirerai pas des généralités pour autant.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. VARCHAR & CHAR - comment savoir lequel choisir !?
    Par Thierry8 dans le forum Requêtes
    Réponses: 15
    Dernier message: 18/12/2005, 20h54
  2. Lequel choisir???
    Par t_om84 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 27/10/2004, 14h02
  3. Curseur et lock : Les différence & lequel choisir
    Par BilTCD dans le forum Access
    Réponses: 2
    Dernier message: 22/10/2004, 14h03
  4. [FEDORA] Lequel choisir entre Fedora i386 et x86 pour un xeon?
    Par Oberon dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 13/07/2004, 14h52
  5. [Conseil] Glut vs SDL, lequel choisir
    Par Mathieu.J dans le forum GLUT
    Réponses: 15
    Dernier message: 08/06/2004, 08h47

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