Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2007, 14h20   #181
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

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

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
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++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 19h40   #182
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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 :
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 :
 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 :
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.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 21h46   #183
Jedai
Expert Confirmé Sénior
 
Avatar de Jedai
 
Étudiant
Inscription : avril 2003
Messages : 6 068
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2003
Messages : 6 068
Points : 8 209
Points : 8 209
Envoyer un message via Yahoo à Jedai
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 :
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ï
Jedai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 22h04   #184
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2007, 22h14   #185
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 962
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 962
Points : 1 148
Points : 1 148
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.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 08h13   #186
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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 :
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 08h20   #187
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 17h33   #188
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 19h57   #189
GnuVince
Membre chevronné
 
Avatar de GnuVince
 
Développeur informatique
Inscription : 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 : 765
Points : 765
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.
GnuVince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 21h14   #190
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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++.

Citation:
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.

Citation:
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?

Citation:
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.

Citation:
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 18h25   #191
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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 ?
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 20h59   #192
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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).

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

Code :
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 23h22   #193
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 21h37   #194
JolyLoic
Rédacteur/Modérateur
 
Avatar de JolyLoic
 
Homme Loïc Joly
Développeur informatique
Inscription : août 2004
Messages : 4 673
Détails du profil
Informations personnelles :
Nom : Homme Loïc Joly
Âge : 38
Localisation : France

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

Informations forums :
Inscription : août 2004
Messages : 4 673
Points : 9 888
Points : 9 888
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.
JolyLoic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 23h27   #195
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
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.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 09h28   #196
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 09h35   #197
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
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.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h52   #198
Bluedeep
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 6 544
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 6 544
Points : 13 893
Points : 13 893
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
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 14h14   #199
kromartien
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 900
Points : 900
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 ?
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 16h28   #200
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 730
Points : 5 730
("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.
__________________
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.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h52.


 
 
 
 
Partenaires

Hébergement Web