|
|||||||
| Débuter Forum d'entraide : Comment débuter en programmation ? |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2002 Messages : 124 ![]() |
Bonjour!
Un post concernant l'enseignement de la programmation. Peut-on enseigner directement la POO à des élèves du secondaire qui n'ont aucune notion de programmation impérative? J'aimerai avoir votre avis sur l'enseignement de la programmation, dans le secondaire. Il s'agit de cours de programmation dans les 2 dernières années du secondaire : 2h/sem dans l'avant-dernière année et 4h/sem dans la dernière année (donc, sauf redoublement, approximativement de 16 à 18 ans). Les 2 paradigmes "principaux" étant la programmation impérative (puis procédurale) et la POO, c'est la dessus que je vais m'étendre... La méthode "classique" est la suivante : d'abord la PI puis la POO
En sachant celà, on peut tenter 2 choses distinctes :
J'ai trouvé, pour essayer la deuxième approche, l'environnement BlueJ et le livre "Conception Objet en Java avec BlueJ" (http://www.amazon.fr/exec/obidos/ASI...732941-0315606) Merci de me donner vos avis! A bientot! |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() ![]() Étudiant Inscription : juin 2005 Messages : 32 ![]() |
Salut!
Il existe pas mal de méthodes pour enseigner la programmation aux élèves du secondaire... D'après mon expérience (très très limitée) je pense que le livre de Gerard Swinnen "Apprendre à programmer avec Python" suit une très bonne méthode. Le livre est aux éditions O'Reilly mais il est aussi possible de le télécharger gratuitement, ca ne te coute rien d'y jeter un oeil... |
|
|
00
|
|
|
#3 |
![]() ![]() |
Je pense que de commencer par un langage procédural et bien mieux pour commencer, ne serait-ce que pour apprendre les rudiments du développement de logiciels.
Passer ensuite vers un langage OO est une suite logique possible alors que le cheminnement inverse serais presque contre nature étant donné qu'il fait régresser pour ainsi dire !
__________________
"L'imagination est plus importante que le savoir" A. Einstein |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Michaël Conseil - Consultant en systèmes d'information Inscription : juin 2003 Messages : 669 ![]() |
Oui mais d'un autre côté, commencer par la POO familiarise à l'abstraction des données du problèmes ce qui implique une certaine rigueur. Surtout qu'avec Python, les choses sont bien faîtes à mon goût. Les seules choses de procédurales à savoir réellement sont les structures de contrôle... ENCAPSULATION=AVENIR et JEUNESSE=AVENIR => JEUNESSE=ENCAPSULATION.
Désolé pour celle là mais je vais bientôt me mettre à la programmation logique, ça me déglingue... Attention toutefois, la POO et C++, CMAL (cf topic C pour comprendre).
__________________
Michaël Mary Consultant PLM dans une société de conseil toulousaine Auditeur CNAM-IPST depuis septembre 2008 "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods mon cv et mon domaine et mon blog Aucune question technique par MP, svp |
|
00
|
|
|
#5 |
![]() ![]() |
Il manque l'option, "Faire de la programmation procédurale, puis passer à la POO quand on en a acquis les concepts de base"
Dans tous les cas, je pense que la POO est tout de même nécessaire et le plus tôt possible... de plus, il faut bien faire attention à choisir son langage ça permet d'éviter des mauvaises si jamais on change de langage
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
|
|
#6 | |
![]() ![]() |
Citation:
![]()
__________________
"L'imagination est plus importante que le savoir" A. Einstein |
|
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Inscription : avril 2006 Messages : 269 ![]() |
poppels a ecris :
Dasn un langage objet, on utilise tout autant les variables , les type , les structure de controle, les tableaux, et un certain nombre d'instruction elementaire. globalement la seule chose qui differe dns le cas present dans le programme est la partie sur les procedure et fonction. La POO peut etre tres agreable surtout si on utilise un lanagage qui permet de se passer des pointeurs en fac de sciences, on commensait par du pascal avec les pointeurs. c'est tres bien les pointeurs mais beaucoup d'eleve ont du mal avec ce genre de concept. hors il faut bien admettre que si on veux faire quelque chose d'un peu evoluer il faut soit passer par les pointeurs soit par les objet (si si en java on oublie meme que les referencement existe). Mais pour moi c'est plus un probleme phylosophique qu'autre chose. Si ils commence par l'objet, il ne s'interesseront plus a autre chose. c'est tellement pratique quand on domine. Alors qu'il ya plein d'autre type de programmation tres interesserant et tres beau. Pour ce qui est de l'aspect pratique, je pense que si on emploi les bon mot (pas forcement ceux des livres d eprog), ca passe pas mal. Le mot "heritage " est une horreur de la POO. IL y a certainement plus concret. cedric |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : août 2002 Messages : 124 ![]() |
Merci de me répondre...
C'est vrai qu'à priori je serai plutot du genre à faire de la PI puis de la POO (et c'est ce que j'ai fait jusque maintenant : Pascal et puis les 4 derniers mois : java) Dans mon idéal, ce qui m'aurait plus aurait été de faire du Pascal juste un an et puis du java l'année suivante. Le problème auquel j'ai été confronté est que les élèves qui arrivent là ne savent pas spécialement à quoi ils s'attendent, et ... les premiers mois de cours sont TRES durs pour certains!!! Si bien qu'après une année de cours, à raison de 2h/sem, je n'ai pas encore eu le temps de voir (ça fait 3 ans que je donne ce cours) ni tableaux, ni les procédures/fonctions... Ils arrivent juste à utiliser l'affectation, les conditionnelles et les boucles (et ... si j'ai bien écrit "utiliser" plutot que "maitriser"!) Donc je continue pendant quelques mois le Pascal l'année suivante... Mais ... alors, à part pour ceux qui s'en sortent quasi tout seul (l'enseignement de la programmation a ceci de difficile : les niveaux des élèves par rapport à cette matière sont TRES différents!!!), les concepts de POO passent terriblement au dessus de la tête!!! Avec ce constat, le choix est fait de se concentrer sur un seul paradygme (en n'oubliant pas quelques concepts importants appartenant à l'autre paradygme : utilisation d'objets existants pour la PI et structures de contrôles pour la POO). Sinon, je suis d'accord que les autres paradygmes sont importants, mais ... dans l'optique de l'enseignement dans le secondaire, il ne faut pas trop se dispercer (l'apprentissage de la programmation est déjà suffisamment complexe comme ça!!!); ceci dit, en début de cours, je parle de bcp de choses, et ... pour les curieux je cite pas mal de choses : paradygmes (PI,POO,logique + exemple), langages, ... Continuez d'alimenter ce débat ... La manière d'enseigner la programmation a besoin de vos témoignages! Merci!!! |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Moi je suis a fond pour apprendre directement la POO.
Pédagogiquement cette approche à la mérite d'aider a structurer le code. Et puis on peut facilement imaginer des exercices un sujet qui colle naturelement à l'objet, genre tout ce qui est simulation. Avec un petit jeu par exemple ? Évidement il faut fuir comme la peste les langages trop techniques (comme le C++) et prendre quelque chose de didactique comme Eiffel ou Squeak. Voir utiliser un pseudo-langage fait pour l'occasion, mais dans ce cas on peut pas faire joujou avec l'ordi en TP et c'est dommage. Enfin bon commencer a apprendre la programmation est possible avec n'importe quel paradigme évidement, mais l'objet devient de plus en plus quelque chose de standard et d'incontournable. |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
J'ai du mal a voir comment ne pas commencer par de la programmation imperative. En fait pour moi, la programmation OO est une extension de la programmation imperative et n'est pas aussi differente de celle-ci que peut l'etre la programmation fonctionnelle ou la programmation logique.
A propos du choix du langage, je choisirais un langage type dynamiquement. Ils n'auront pas a faire des programmes suffisemment importants pour que le typage statique soit un avantage, et l'interactivite generalement plus grande des implementations des lanagages types dynamiquement est un plus pour l'apprentissage.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Non d'un point de vue théorique on peut considérer la POO comme une entité indépendante avec le concept de type abstrait de donnée.
|
|
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : novembre 2005 Messages : 4 970 ![]() |
Citation:
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça. |
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 723 ![]() |
Salut j'ai une question à vous poser : j'aimerais bien enseigner l'informatique au lycée, comment faire, et quelle type de classe avez-vous ? Des scientifiques ? Des techniques ?
Si vous avez des tuyaux à ce sujet, je suis interessé ! Merci de me PM si possible.. En ce qui concerne la question, je dirais qu'il faut commencer par la programmation impérative puis procédurale, car c'est celle qui est la plus proche de la machine, et comprendre la programmation sans comprendre la machine derrière est une erreur je pense, et ce serait le cas si les élèves commençaient avec de la POO. Cependant ça peut avoir un coté "rebarbatif" pour les élèves, surtout pour ceux qui ne seraient pas très motivés, auquel cas il vaut mieux se renseigner sur le public ciblé, et dans le cas d'un public peu enclin au technique, peut-être que la méthode POO s'applique mieux...
__________________
K |
|
|
00
|
|
|
#14 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 738 ![]() |
Citation:
Si si, j'crois que j'suis bien placé je suis encore élève, bon ça fait 2 ans que j'ai fini le bac mais bon. Si on enseigne la programmation, c'est pour enseigner la belle programmation, c'est à dire proche de l'algorithmique en général, là où les détails d'implémentation sont sans importance dans la mesure du raisonnable. Faudrait quelque chose où l'on puisse faire des trucs graphiques facilement aussi, pourquoi pas. Parce que l'informatique trop théorique, ça risque pas d'intéresser tout le monde (moi j'adore mais bon.). Et essayer de contenter les éventuels quelques geeks de la classe pourquoi pas. Sinon, vous avez tous parlé de impératif, procédural, OO et le fonctionnel vous en dites quoi ? Genre OCaml qui permet les 4. On peut déjà dessiner des ptits traits, des cercles, et tout avec la bibliothèque standard. Ou alors Python j'pense ça peut être pas mal. |
|
|
|
00
|
|
|
#15 | |||
|
Membre du Club
![]() ![]() Étudiant Inscription : juin 2005 Messages : 32 ![]() |
Citation:
Comment expliquer simplement à des néophytes ne serait-ce que la ligne: Code :
Il existe peut-être aussi un ou deux basic intéressant non? |
|||
|
|
00
|
|
|
#16 |
![]() ![]() |
Huuumm si ca tenais qu'a moi, je commencerais avec des bases d'algo histoire de ce mettre l'eau à la bouche avec quelques termes comme conditions, boucles, variables ....
Par la suite, la suite logique serait un peu de prolog puis viendrais un peu de C et par la suite du Python qui reste assez facile d'accès ! Maintenant si le temps est vraiment plus que limité, ce parcours serait incomplet en l'état actuel, impossible d'y arriver jusqu'au bout mais je pense qu'une approche plus algorythmique de la chose pour commencer (donc plus théorique) au moins le temps d'assimiler les concepts de bases de la logique d'application serais une excellente chose ! Je pense qu'il serais une grosse erreur de commencer directement avec la POO, c'est vrai du point de vue que si les élèves on déjà du mal avec les concepts de bases de la PI autant pas leur bourrer le mou avec des concepts plus avancés comme l'héritage multiple et j'en passe et des meilleurs ... autant consacrer plus de temps à la PI mais que ca rentre dans les esprits que de tout déballer et que seulement la moitié entre ! Je pense que c'est un stade important de l'apprentissage où il faut donner envie de continuer meme par soi même que de faire croire que c'est long, compliqué etc... donc il faut rester assez simple, ne pas montrer des concepts trop avancés !
__________________
"L'imagination est plus importante que le savoir" A. Einstein |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() ![]() Inscription : décembre 2004 Messages : 1 603 ![]() |
Ca tombe bien car il ne doit pas y avoir beaucoup de formation en france qui commence l'informatique par de l'OO. Ces questions ont été débattues (comme nous le faisons) au niveau national pour définir les programmes d'enseignement.
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS] Retrouvez mes cours et tutos autour d'Android/Java/Eclipse sur http://olegoaer.developpez.com/
|
|
|
00
|
|
|
#18 |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Ben si moi j'ai commencé en DEUG de Math par Delphi
|
|
|
00
|
|
|
#19 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 738 ![]() |
Citation:
Sinon j'ai une idée, au lycée dans les filières scientifiques, tout le monde a une calculatrice graphique presque. On peut programmer, ce sera soit du CASIO, soit du TI. Ok selon les modèles, le langage diffère un peu, mais globalement, c'est la même chose. Mais en TI ya 2 langages basic différents, et en Casio je sais pas. Ca peut être une bonne approche de la programmation impérative. Mais surtout pas du C ! Y'aura des prises de têtes pour rien avec les pointeurs. J'imagine déjà les "Monsieur ! Pourquoi ça marche pas ! Il me dit erreur de segmentation ! Il veut pas lire ma phrase pourtant j'ai mis un char, c'est pour des lettres ça non ?". Ou sinon j'imagine des Linuxiens faire leur chaud. Bon OK cette remarque c'est un préjugé mais Sinon le C++ si utilisé avec la librairie standard, les string, vector, list, ça peut être pas mal, mais c'est pas du goût de tout le monde. Et les itérateurs (pour les listes), je sais pas si c'est quelque chose de facile à appréhender ? Franchement, les listes avec la définition inductive c'est le plus pratique pour les manipuler la plupart du temps. Prolog, ça m'a l'air intéressant. Pratique pour résoudre un Sudoku en quelques lignes |
|
|
|
00
|
|
|
#20 | |
![]() ![]() Arnaud FeltzDéveloppeur .NET Inscription : août 2005 Messages : 5 188 ![]() |
Bonjour à tous et à toutes
Ayant appris à faire de la programmation au lycée, en électronique (programmation de micro-controleur en assembleur), je pense que commencer par la PI est indispensable, je pense que c'est important de connaitre les bases et les notions du langage. Commencer par la POO me semble completement abhérant, car comment faire de la POO sans connaitre les bases du langage, tot ou tard si ils voudront progresser, il seront obligés de revenir sur les bases pour pouvoir continuer Et puis c'est comme le dit un de mes profs de programmation: Citation:
Je sais pas si ça vous avance plus, mais je pensais que ça pourrais servir d'avoir mon témoignage...
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère Installation de Code::Blocks sous Debian à partir de Nightly Builds
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com