Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pédagogie : C++ ou Java ?

133 réponses
Avatar
Gilles
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les "bonnes
habitudes" à enseigner en TP, ce qui m'incite à poster ce message.

Voici la situation : je suis enseignant en IUT - DUT informatique (Bac+2 à
vocation professionnelle). Jusqu'à maintenant la programmation était
enseignée au travers du C++. Il est fortement question de changer ce choix
dans notre IUT pour remplacer C++ par Java (actuellement un enseignement de
Java existe, mais en seconde année seulement, donc avec déjà une pratique du
C++ et les bases de la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par rapport à
Java) pour enseigner la POO à des débutants complets en programmation ? (et
pour qui, pour reprendre une remarque apparue dans le fil auquel je faisais
référence, il n'y a plus en majorité "de passion ou de réelle envie de faire
de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des informaticiens
"Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai une
tendance à préférer le C++ (par mon parcours et par mon activité quotidienne
en recherche), mais je n'aurai aucune réticence à faire pratiquer Java si je
suis convaincu que c'est un meilleur choix pour mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le débat que
nous devrions avoir au sein de l'équipe pédagogique.

Gilles

10 réponses

Avatar
Fabien LE LEZ
On Sat, 07 Feb 2009 22:54:02 +0100, Fabien LE LEZ
:

À part peut-être la surcharge de l'opérateur (),



Toutes mes excuses pour cette connerie.
Avatar
Merwin
Wykaaa a écrit :
Merwin a écrit :
Gilles a écrit :
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les
"bonnes habitudes" à enseigner en TP, ce qui m'incite à poster ce
message.

Voici la situation : je suis enseignant en IUT - DUT informatique
(Bac+2 à vocation professionnelle). Jusqu'à maintenant la
programmation était enseignée au travers du C++. Il est fortement
question de changer ce choix dans notre IUT pour remplacer C++ par
Java (actuellement un enseignement de Java existe, mais en seconde
année seulement, donc avec déjà une pratique du C++ et les bases de
la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par
rapport à Java) pour enseigner la POO à des débutants complets en
programmation ? (et pour qui, pour reprendre une remarque apparue
dans le fil auquel je faisais référence, il n'y a plus en majorité
"de passion ou de réelle envie de faire de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des
informaticiens "Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai
une tendance à préférer le C++ (par mon parcours et par mon activité
quotidienne en recherche), mais je n'aurai aucune réticence à faire
pratiquer Java si je suis convaincu que c'est un meilleur choix pour
mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le
débat que nous devrions avoir au sein de l'équipe pédagogique.

Gilles




Bonjour,

Je vais donner mon avis d'étudiant, justement en DUT Informatique
(1ère année). Chez nous on commence par le C++ et on fait du Java en
fin de second semestre début de seconde année.



Combien d'heures de cours de C++ ? avec et sans TP. Y a-t-il un projet
ou mini projet en C++ à faire ?
La surcharge des opérateurs est-elle détaillée ?
La dérivation virtuelle et les problèmes liés à l'héritage multiple
sont-ils expliqués ?
La gestion mémoire (new, delete et leur surcharge) est-elle expliquée en
détail ?
Enfin, lorsque le constructeur, dans une classe, fait de l'allocation
dynamique (new) est-il expliqué pourquoi il faut un constructeur de
copie et la surcharge de l'affectation ?






Alors oui, à la fin du premier semestre on avait déjà vu la surcharge
des opérateurs, ainsi que le début de l'héritage.

Cependant l'héritage multiple n'est pas abordé du tout durant le cursus,
(enfin il me semble, mais je ne veux pas trop m'avancer)
quand au new, delete, constructeur de copie, oui on voit tout ça, on a
même fait des TP pour comprendre l'utilité de redéfinir le constructeur
de copie dans le cas d'un allocation dynamique dans le constructeur.

L'allocation dynamique est bien évidement vue en détail, en seconde
année on travaillera beaucoup avec Qt d'après ce que je sais.

Actuellement on a pas encore eu de projet en C++, mais le "cours" a
proprement parler sera terminé avant la fin du second semestre, l'année
prochaine on utilisera tout ce qu'on a appris sur des projets, et on
appliquera toutes les bases dans des cas concrets (encore une fois si
j'ai tout compris au programme :D)

La dérivation virtuelle je ne sais pas ce que c'est, cependant on est
entrain de voir le polymorphisme actuellement (début de 2nd semestre),
sont à venir prochainement les templates, et autres gadgets.

Honnêtement le cours se compliquer et des notions comme le polymorphisme
sont peut-être un peu complexe, surtout qu'actuellement on n'applique
pas tout cela dans des projets concrets, j'attends donc de voir la suite.

Je pense, de mon point de vue personnel, que la transition C++->Java
est plus simple que l'inverse. Même si C++ est peu être un peu moins
évident à appréhender en début d'année. Un de nos premiers cours de
programmation a été C++, et ce dès le premier semestre.



Il est clair que c'est plus simple d'aller de C++ vers Java que
l'inverse car, en Java, toutes mes questions ci-dessus sur C++ ne se
posent pas en Java.
Ceci dit, est-ce bien nécessaire d'apprendre tout ceci, d'emblée, à des
débutants en programmation ?



Utile je ne pense pas, puisqu'on n'en aura pas l'utilité tout de suite,
et le jour où on en aura besoin on devra certainement retourner lire la
documentation et le cours sur le sujet :D

Mais le fait de l'avoir fais une fois et d'avoir peut-être commencer à
comprendre peut certainement aider.


En parallèle on avait les cours d'architecture (Assembleur), ce qui
nous permettait de concilier un peu les deux et de comprendre ce que
l'on faisait, notamment au niveau de la gestion de la mémoire.



Il est sûr qu'un cours d'architecture "machine" reste indispensable pour
bien comprendre certains concepts de programmation même dans des
langages de "haut niveau", mais il n'y en a pas forcément dans tous les
cursus informatique :-(

Après, je fais partit de ces "autodidactes têtus" qui ont un PC entre
les mains depuis 13 ans, et je vois d'autres étudiants qui ont
beaucoup plus de mal à assimiler les principes de nases.



Tu voulais dire les bases :-)



Euh, oui :D


Cependant, au premier semestre, l'apprentissage de
l'UML/C++/Assembleur en parallèle est réellement une vrai aide selon
moi pour bien comprendre le C++.



Oui tu as raison. Ma préoccupation est plutôt dans "le bon
apprentissage" de la programmation en général. Là je pense que C++ n'est
pas forcément le meilleur langage pour débuter malgré tes arguments.


Ceci dit je n'ai certainement pas assez d'expérience pour juger !



Et bien justement, c'est justement à des personnes comme toi que j'ai
envie de poser la question :
Ca veut dire quoi bien programmer ? (ou programmer proprement)



Curieusement c'est une question vraiment intéressante, puisque étant
particulièrement passionné par la programmation en C++ j'ai déjà
commencer à créer quelques mini projet en C++ à l'aide de Qt, et je sens
parfois que je ne fait pas "comme il faut".

C'est dur à expliquer, mais parfois je sens que j'utilise une mauvaise
méthode, que je pourrais "faire autrement", mais je pense que c'est le
manque de pratique surtout qui fait ça.

On a deux heures de cours en amphi et deux heures de TP par semaine, si
on approfondi pas nous même à la maison, ça fait un peu cour je pense.

Cependant je suis un des meilleurs étudiants de ma promo et C++, et je
ne suis donc peut-être pas représentatif, je sais que certains notions
sont difficiles à comprendre pour des gens qui n'ont jamais programmés
de leurs vies.
Avatar
espie
In article <zGljl.380$, Yann K. wrote:
Je souhaite juste préciser après relecture, que je ne dis pas que Python
soit ce qu'il y a de plus indiqué pour apprendre le script.
Mais perso ca me rebute d'avoir du CSH alors que je sais que je pourrais
apprendre de 1 du bash beaucoup plus répandu ( oui oui je sais tu en
apprends un tu sais les autres mais les ptites habitudes font souvent
qu'on choisit l'un ou l'autre après ) puis de 2 d'avoir qqs lecons sur
du Python pour voir ô combien c'est extensible.



Euh, non, csh est une aberration, mais pour plein d'autres raisons. Ca doit
encore trainer dans la faq des newsgroups unix. csh est nocif, mauvais, et
mal foutu. (Surtout l'absence de "$@", mais aussi celle de 2>).
Avatar
Fabien LE LEZ
On Sat, 07 Feb 2009 23:53:42 +0100, Merwin :

C'est dur à expliquer, mais parfois je sens que j'utilise une mauvaise
méthode, que je pourrais "faire autrement",



Ben dans ces cas-là, essaie de pondre un code minimaliste qui présente
la méthode qui te chagrine, et éventuellement viens demander de l'aide
ici.

mais je pense que c'est le
manque de pratique surtout qui fait ça.



C'est effectivement une des raisons.
Mais rassure-toi, ça se soigne :-)

Il y a aussi le fait qu'on ne sait pas forcément où on va quand on
commence un programme. Aussi, quand on a bien avancé, il ne faut pas
hésiter à jeter puis refaire les bouts de code qui paraissent douteux.
Avatar
Wykaaa
Merwin a écrit :
Wykaaa a écrit :
Merwin a écrit :
Gilles a écrit :
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont
été abordées entre autres des questions sur l'enseignement du C++ et
les "bonnes habitudes" à enseigner en TP, ce qui m'incite à poster
ce message.

Voici la situation : je suis enseignant en IUT - DUT informatique
(Bac+2 à vocation professionnelle). Jusqu'à maintenant la
programmation était enseignée au travers du C++. Il est fortement
question de changer ce choix dans notre IUT pour remplacer C++ par
Java (actuellement un enseignement de Java existe, mais en seconde
année seulement, donc avec déjà une pratique du C++ et les bases de
la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par
rapport à Java) pour enseigner la POO à des débutants complets en
programmation ? (et pour qui, pour reprendre une remarque apparue
dans le fil auquel je faisais référence, il n'y a plus en majorité
"de passion ou de réelle envie de faire de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des
informaticiens "Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai
une tendance à préférer le C++ (par mon parcours et par mon activité
quotidienne en recherche), mais je n'aurai aucune réticence à faire
pratiquer Java si je suis convaincu que c'est un meilleur choix pour
mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le
débat que nous devrions avoir au sein de l'équipe pédagogique.

Gilles




Bonjour,

Je vais donner mon avis d'étudiant, justement en DUT Informatique
(1ère année). Chez nous on commence par le C++ et on fait du Java en
fin de second semestre début de seconde année.



Combien d'heures de cours de C++ ? avec et sans TP. Y a-t-il un projet
ou mini projet en C++ à faire ?
La surcharge des opérateurs est-elle détaillée ?
La dérivation virtuelle et les problèmes liés à l'héritage multiple
sont-ils expliqués ?
La gestion mémoire (new, delete et leur surcharge) est-elle expliquée
en détail ?
Enfin, lorsque le constructeur, dans une classe, fait de l'allocation
dynamique (new) est-il expliqué pourquoi il faut un constructeur de
copie et la surcharge de l'affectation ?






Alors oui, à la fin du premier semestre on avait déjà vu la surcharge
des opérateurs, ainsi que le début de l'héritage.

Cependant l'héritage multiple n'est pas abordé du tout durant le cursus,
(enfin il me semble, mais je ne veux pas trop m'avancer)



C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.

quand au new, delete, constructeur de copie, oui on voit tout ça, on a
même fait des TP pour comprendre l'utilité de redéfinir le constructeur
de copie dans le cas d'un allocation dynamique dans le constructeur.



Alors, au moins pour cette partie, je peux te dire que c'est un bon
enseignement.

L'allocation dynamique est bien évidement vue en détail, en seconde
année on travaillera beaucoup avec Qt d'après ce que je sais.

Actuellement on a pas encore eu de projet en C++, mais le "cours" a
proprement parler sera terminé avant la fin du second semestre, l'année
prochaine on utilisera tout ce qu'on a appris sur des projets, et on
appliquera toutes les bases dans des cas concrets (encore une fois si
j'ai tout compris au programme :D)



C'est létape de consolidation :-)

La dérivation virtuelle je ne sais pas ce que c'est, cependant on est
entrain de voir le polymorphisme actuellement (début de 2nd semestre),
sont à venir prochainement les templates, et autres gadgets.



La dérivation virtuelle estsurtout nécessaire dans le cadre de
l'héritage multiple (pour éviter d'hériter 2 fois de la même structure
sous-jacente à une classe lorsque plusieurs chemins d'héritage mènent
d'une classe de base vers la même classe dérivée (je ne sais pas si
c'est clair). Le schéma le plus simple est le schéma suivant :
A
/
B C
/
D
Dans ce cas, si on ne dit pas que B et C dérivent virtuellement de A (il
faut le dire sur tous les chemins, s'il y en avait d'autres), alors D va
hériter 2 fois de A.


Honnêtement le cours se compliquer et des notions comme le polymorphisme
sont peut-être un peu complexe, surtout qu'actuellement on n'applique
pas tout cela dans des projets concrets, j'attends donc de voir la suite.



Si les exemples de cours sont bien choisis et argumentés, ce n'est pas
si complexe que ça, je te rassure.

Je pense, de mon point de vue personnel, que la transition C++->Java
est plus simple que l'inverse. Même si C++ est peu être un peu moins
évident à appréhender en début d'année. Un de nos premiers cours de
programmation a été C++, et ce dès le premier semestre.



Il est clair que c'est plus simple d'aller de C++ vers Java que
l'inverse car, en Java, toutes mes questions ci-dessus sur C++ ne se
posent pas en Java.
Ceci dit, est-ce bien nécessaire d'apprendre tout ceci, d'emblée, à
des débutants en programmation ?



Utile je ne pense pas, puisqu'on n'en aura pas l'utilité tout de suite,
et le jour où on en aura besoin on devra certainement retourner lire la
documentation et le cours sur le sujet :D



Ca c'est sûr !

Mais le fait de l'avoir fais une fois et d'avoir peut-être commencer à
comprendre peut certainement aider.



Certes mais tu auras vu mille choses entre temps...


En parallèle on avait les cours d'architecture (Assembleur), ce qui
nous permettait de concilier un peu les deux et de comprendre ce que
l'on faisait, notamment au niveau de la gestion de la mémoire.



Il est sûr qu'un cours d'architecture "machine" reste indispensable
pour bien comprendre certains concepts de programmation même dans des
langages de "haut niveau", mais il n'y en a pas forcément dans tous
les cursus informatique :-(

Après, je fais partit de ces "autodidactes têtus" qui ont un PC entre
les mains depuis 13 ans, et je vois d'autres étudiants qui ont
beaucoup plus de mal à assimiler les principes de nases.



Tu voulais dire les bases :-)



Euh, oui :D


Cependant, au premier semestre, l'apprentissage de
l'UML/C++/Assembleur en parallèle est réellement une vrai aide selon
moi pour bien comprendre le C++.



Oui tu as raison. Ma préoccupation est plutôt dans "le bon
apprentissage" de la programmation en général. Là je pense que C++
n'est pas forcément le meilleur langage pour débuter malgré tes
arguments.


Ceci dit je n'ai certainement pas assez d'expérience pour juger !



Et bien justement, c'est justement à des personnes comme toi que j'ai
envie de poser la question :
Ca veut dire quoi bien programmer ? (ou programmer proprement)



Curieusement c'est une question vraiment intéressante, puisque étant
particulièrement passionné par la programmation en C++ j'ai déjà
commencer à créer quelques mini projet en C++ à l'aide de Qt, et je sens
parfois que je ne fait pas "comme il faut".

C'est dur à expliquer, mais parfois je sens que j'utilise une mauvaise
méthode, que je pourrais "faire autrement", mais je pense que c'est le
manque de pratique surtout qui fait ça.



Le manque de pratique et peut-être quelques fois, le manque de conseils
en cours sur l'utilisation de tel ou tel trait du langage, non ?

On a deux heures de cours en amphi et deux heures de TP par semaine, si
on approfondi pas nous même à la maison, ça fait un peu cour je pense.



Combien de semaines ?

Un cours C++ de base, en entreprise, pour des développeurs qui
connaissent déjà d'autres langages, c'est une semaine entière (donc
entre 35 et 40 heures)

Cependant je suis un des meilleurs étudiants de ma promo et C++, et je
ne suis donc peut-être pas représentatif, je sais que certains notions
sont difficiles à comprendre pour des gens qui n'ont jamais programmés
de leurs vies.



Et toi, tu avais déjà appris un peu de programmation en autodidacte ?

En tout cas merci pour ces réponses claires à toutes ces questions. Il y
a plusieurs discussions en cours sur l'apprentissage de la programmation
. J'ai ouvert un fil dans fr.comp.lang.general sur ce sujet mais
apparemment toutes les personnes n'ont pas encore suivi.

J'ai essentiellement formé à la programmation des professionnels en
entreprise en recyclage ou des développeurs qui connaissaient déjà
d'autres langages que ceux pour lesquels j'intervenais, à savoir : C,
C++, Ada, Java principalement mais j'ai aussi donné des cours en
entreprise sur JavaScript, Lisp et Prolog.

J'étais (car je suis à la retraite depuis peu), en général, assez
catastrophé, par le niveau de programmation de ces soi-disants
professionnels. C'est pour cette raison que je m'intéresse, maintenant
que j'ai le temps, à la façon dont est enseigné la programmation, en
général. Et si je peux aider les jeunes qui débutent, tant mieux.
Avatar
Fabien LE LEZ
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa :

C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.



Ce qui explique peut-être pourquoi ce n'est pas abordé...
Avatar
Yannovitch
"Avez-vous au moins des cours de gestion de projet (car ça, c'est
nécessaire !). Vous parle-t-on des facteurs qualité en logiciel :
fiabilité, évolutivité, interopérabilité, maintenabilité,
réutilisabilité, etc. ?
Si oui, de quelle façon ? En tient-on compte lors des TP et des
projets ?"

Non, on a pas de cours de gestion de projet à part entière.
En gros au début du cours de POO avancé on en a parlé en justifiant l e
fait qu'on devait essayer d'implémenter le plus possible la POO pke
c'est suite à manque de réusabilité, maintenabilité et tuti quanti
dans les entreprises qu'on a commencé à vouloir la mettre en place.
Mais sinon non.

Sinon pour répondre à toute la discussion, plus que l'apprentissage
que tel ou tel language, le point sur lequel je trouve que les
formateurs devraient vraiment évoluer, c'est les projets en eux-mêmes.

Je pense que les étudiants seraient beaucoup plus impliqués, et
apprendrait en autodidacte et tout et tout, si dès le début de
l'année, on leur proposait de former un petit groupe de développeur de
3-4, qui doivent mener à terme un gros projet faisant appel et au
Java, et au C++, et à du script, voire, si l'étudiant s'en sent la
motivation, d'implémenter d'autres languages !

De 1 parce que ca permettrait de voir tous les langages,
de 2 parce que ca donnerait directement des aspects pratiques aux
trucs appris,
de 3 parce que j'en connais pas tant de développeur freelance tout
seul, en général on répartit les taches en équipe et ceux qui ont
l'habitude de bosser chez eux tout seul à partir de 23h ( moi y
comprit ^^) ont du mal à s'intégrer dans des équipes où on doit tou t
le temps communiquer sur l'avancement des projets qui nous ont été
assignés.

Après bien sûr ca fout toujours sa merde les projets, y a tjs des
grands drames, mais ce sont des drames formateurs ^^.

-----------------

Concernant le C#, et Mono, franchement c'est largement pas aussi bien
intégré que du C ou du Java. Ca reste pas trop normal de bosser sous
du non Windows en C#. Et l'envie ne m'en vient pas d'apprendre un
langage bientot obsolete.

-----------------

Pour le Cobol, je pensais pas que c'est autant utilisé, mais
sérieusement, les offres d'emploi qui me passe sous le nez concernant
ce langage ne sont franchement pas légion.
Après, qu'apprendre à la place ? Python est encore relativement jeune
et surtout je connnais peu de profs qui maitrisent ce langage, Ruby
n'est pas encore assez mature pour etre enseigné, mais par exemple, je
trouverais bien qu'on apprenne tout ce qui servlet, java ee, ejb &
cie. Tout comme, je le repete, empieter un peu sur un DUT GEII et
apprendre un peu plus de "hardware". Sérieux, rien que par ex pour des
postes pour les boites de distribution linux, ca servirait trop de
savoir faire tourner ses programmes sous arm, comprendre vraiment ce
qu'est qu'un noyau monolithique, ...
Avatar
Marc Boyer
On 2009-02-06, Wykaaa wrote:
Marc Boyer a écrit :
On 2009-02-06, Wykaaa wrote:
Marc Boyer a écrit :
On 2009-02-06, Fabien LE LEZ wrote:
On Fri, 6 Feb 2009 15:04:42 +0000 (UTC), Marc Boyer
:

Voui, mais c'est encore d'autres langages.


Justement. Je crois que la caractéristique principale de la
programmation web, c'est qu'on jongle avec plusieurs langages.


Oui, et une caractéristique importante des IUT, c'est que
tu as 18 mois pour caser toute ta formation. Et quand on
te donne royalement 10h de TP pour faire toutes tes manips
WEB, ben, tu t'amuses pas à en plus leur donner un
nouveau langage pour illustrer tes trucs.


Donc dans un contexte "IUT", il faut prendre Java comme premier langage ?
Ca permet d'apprendre la programmation de façon assez correcte, de
montrer du développement dans un contexte Web et de faire des
applications (à mon avis aussi fiables qu'avec du C++).
Est-ce ton avis ?



Non, pas forcément.
Je pense que Java est incontournable, et qu'il est extrèmement
polyvalent. Après, il faut montrer plusieurs langages dans une
formation d'informaticien. Où les mettre, comment, ça se discute.
Je pense qu'il faut garder un langage proche de la machine,
AMHA C ou C++.
Je pense qu'il faut présenter un langage fonctionnel: Lisp,
Caml.
Après, je trouve qu'on ne présente en POO que les modèles
objet à base de classe, et qu'illustrer les autres approches
peut être un plus. Est-ce que ça passe dans un volume global ?
Je ne sais pas.



Je suis d'accord que dans un cursus informatique, il faudrait, pour les
langages, faire ce que tu dis. Mais il y a tout le reste : réseaux,
bases de données,systèmes d'exploitation (les concepts),etc.
Je croyais que le temps était non extensible ;-)



De toute façon, en IUT info, les volumes sont fixés:
http://www.iut-blagnac.fr/IMG/pdf_PPN_INFO.pdf

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Marc Boyer
On 2009-02-06, Fabien LE LEZ wrote:
On Fri, 6 Feb 2009 20:01:15 +0000 (UTC), Marc Boyer :

Je pense que Java est incontournable



Si on veut un job dans une grosse entreprise. J'ai toujours l'image
(peut-être erronnée ?) du programmeur Java comme un minuscule rouage
dans une énorme machine, un peu comme un type qui travaille sur une
chaîne de montage chez Renault.

Je pense qu'il faut garder un langage proche de la machine,
AMHA C ou C++.



C est effectivement proche de la machine.

C++ l'est aussi un peu, mais on ne s'en rend pas vraiment compte à
l'usage -- sauf quand on en a besoin.



Oui, mais quand on a besoin de montrer des choses proches de la
machine, on peut.

(Indépendamment de ça, il est vrai qu'il vaut mieux savoir lire le C,
afin d'avoir accès à tout le code déjà écrit. Savoir l'écrire est bien
plus difficile, et moins utile.)



Et des bases de C++ permettent quand même ça.

Je pense qu'il faut présenter un langage fonctionnel: Lisp,
Caml.



Ou Haskell. Il a l'air à la mode en ce moment. Va falloir que je m'y
mette un jour...



Moi aussi, il faudrait.

Après, je trouve qu'on ne présente en POO que les modèles
objet à base de classe, et qu'illustrer les autres approches
peut être un plus.



Yep. En plus, ça peut permettre de rappeler qu'il y a (au moins)
autant de modèles OO que de langages dits OO.



Je pense que tu exagères un peu: il y AMHA un modèle dominant,
à base de classe et d'objets qui instancies ces classes (Java, C++,
Ada ?), tellement dominant que beaucoup croient que c'est le seul.

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Marc Boyer
On 2009-02-09, Yannovitch wrote:
"Avez-vous au moins des cours de gestion de projet (car ça, c'est
nécessaire !). Vous parle-t-on des facteurs qualité en logiciel :
fiabilité, évolutivité, interopérabilité, maintenabilité,
réutilisabilité, etc. ?
Si oui, de quelle façon ? En tient-on compte lors des TP et des
projets ?"

Non, on a pas de cours de gestion de projet à part entière.
En gros au début du cours de POO avancé on en a parlé en justifiant le
fait qu'on devait essayer d'implémenter le plus possible la POO pke
c'est suite à manque de réusabilité, maintenabilité et tuti quanti
dans les entreprises qu'on a commencé à vouloir la mettre en place.
Mais sinon non.

Sinon pour répondre à toute la discussion, plus que l'apprentissage
que tel ou tel language, le point sur lequel je trouve que les
formateurs devraient vraiment évoluer, c'est les projets en eux-mêmes.

Je pense que les étudiants seraient beaucoup plus impliqués, et
apprendrait en autodidacte et tout et tout, si dès le début de
l'année, on leur proposait de former un petit groupe de développeur de
3-4, qui doivent mener à terme un gros projet faisant appel et au
Java, et au C++, et à du script, voire, si l'étudiant s'en sent la
motivation, d'implémenter d'autres languages !

De 1 parce que ca permettrait de voir tous les langages,



Avec quelle formation initiale ? Google ?

de 2 parce que ca donnerait directement des aspects pratiques aux
trucs appris,



Oui et non. C'est difficile de trouver un projet qui couvre
tous les aspects d'un enseignement. Et puis il y a souvent
moyen de contourner le point que justement on voulait illustrer.

de 3 parce que j'en connais pas tant de développeur freelance tout
seul, en général on répartit les taches en équipe et ceux qui ont
l'habitude de bosser chez eux tout seul à partir de 23h ( moi y
comprit ^^) ont du mal à s'intégrer dans des équipes où on doit tout
le temps communiquer sur l'avancement des projets qui nous ont été
assignés.

Après bien sûr ca fout toujours sa merde les projets, y a tjs des
grands drames, mais ce sont des drames formateurs ^^.



Un problème des projets, c'est qu'il y a des étudiants qui
se planquent. Quand un étudiant est pas motivé, il arrive que le
reste de son groupe préfère faire son boulot que de le mettre au
boulot.
Est-ce qu'on veut diplomer un étudiant dont la principale
compétence est l'inertie ?

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...