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

Affichage des résultats du sondage: Quel langage devrait-on utiliser pour l’initiation à la programmation ?

Votants
203. Vous ne pouvez pas participer à ce sondage.
  • Java

    43 21,18%
  • Python

    30 14,78%
  • C

    59 29,06%
  • C++

    10 4,93%
  • Pascal

    15 7,39%
  • MatLab

    5 2,46%
  • C#/VB.NET

    5 2,46%
  • Perl

    6 2,96%
  • PHP

    6 2,96%
  • Ruby

    2 0,99%
  • Haskell

    3 1,48%
  • OCaml

    3 1,48%
  • Autre (À préciser)

    15 7,39%
  • 1 0,49%
Actualités Discussion :

Quel langage devrait-on utiliser pour introduire la programmation ?

  1. #41
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Je dirais n'importe quel langage qui permette de débuter rapidement, de s'amuser et qui soit rapide et facile à exécuter, javascript par exemple.
    javascript c'est un langage de pirate gauchiste extrémiste. popcorn time est développé en javascript notamment. Tu veux que nos universités forment des terroristes?
    Quant à "s'amuser", comment dire... le développement logiciel est un sacerdoce. Il faut savoir souffrir, physiquement parfois, pour être un bon développeur. Lorsque quelqu'un choisi d'embrasser une carrière de développeur, on doit lui faire comprendre très tôt qu'il vivra une vie de paria, sans amis, ni famille, ni vie privée. Je ne serais d'ailleurs par contre le fait d'infliger quelque châtiment corporel aux jeunes étudiants, ainsi on verrait moins de commentaires qui se veulent humoristiques au milieu de belles lignes de code divinement austères.
    C'est de l'humour bien sûr. Mais je suis persuadé qu'il est possible d'enseigner des langages bas niveau de façon ludique.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #42
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Points : 314
    Points
    314
    Par défaut
    J'ai tendance à dire C

    D'une part c'est un langage déclaratif, assez strict -> donc pas mal pour apprendre
    Il y a des pointeurs, cela permet de voir et de comprendre ce que c'est que le passage de variables par référence ou par valeur. Eh puis voir ce qu'est une adresse mémoire. En java, python... tout ça est caché.

    Pour apprendre la POO java me semble bien.

    Après pour quelque chose de différent Javascript comme langage dynamique... très dynamique !


    Tout cela peut être remplacé par python....
    ... Mais il manque les pointeurs pour comprendre l'utilisation de la mémoire.

  3. #43
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut #mavie
    J'ai fait un IUT et je trouve qu'il m'a particulièrement bien formé au monde de la programmation.

    On a commencé par du C, pour apprendre à gérer la mémoire, savoir ce qu'est un type, une variable, un pointeur, par extension un tableau et les structures. On a du faire 2-3 mois de C pour avoir les bases de la programmation impérative. Ensuite, on a eu des cours d'assembleur, avec explication des principales instructions comme MOVE, ADD, MUL, et les interruptions. On a fait des petits TP (genre allumer des pixels, bouger la souris, lire une vidéo, ...) pour finir sur faire un Space Invader. Je m'aperçois avec le temps que ce cours que je maudissais m'a beaucoup apporté, et je remercie mon professeur pour ce cours, indispensable à mon humble avis. On comprend que la programmation ce n'est pas de la magie, c'est juste parler avec la machine avec des mots plus ou moins simple et si le mot est trop compliqué pour elle, elle va faire en sorte de le décomposé en mots qu'elle peut comprendre.
    Et on est reparti sur du C, plus compliqué au niveau des algo mais toujours avec des concepts simples (un peu de multi-threading mais pas de sémaphores, mutex et autres billevesées) pour finir sur un gros TP, en l’occurrence un jeu video (Tetris ou pacman selon le niveau). Et c'est encore une fois bien trouvé, car on apprend toujours mieux en s'amusant et coder les jeux de notre enfance, c'est le concept même de l'amusement.
    Pour la suite, on a fait un peu d'HTML/PHP mais rien d'extraordinaire ...
    Et on est parti sur Java. Et c'est sur ce point que je ferais ma seule critique. Car j'ai vraiment eu du mal à comprendre parfaitement le concept objet avec un langage un peu "bâtard" comme le Java. On aurait fait un peu de Smalltalk (langage que j'ai découvert à la fac et qui m'a fait vraiment comprendre ce qu'est l'objet et comment penser object "TellDontAsk"), dans les mêmes proportions que l'assembleur et ça aurait été parfait.

    Pour moi, un bon apprentissage passe par 2 couples : C - Assembleur puis Java - Smalltalk, cela permet de comprendre tous les mécanismes intrinsèques à la programmation.
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  4. #44
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Pour ma part:
    - au lycée c'était du Turbo Pascal puis du Visual Basic
    - en IUT première année ADA puis C
    - en IUT deuxième année C++ et JAVA
    - en fac JAVA

    L'ADA est pas mal je trouve pour apprendre les concepts de la programmation. Le seul défaut est qu'il n'est plus trop utilisé, contrairement à Python et Java.

  5. #45
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 203
    Points
    4 203
    Par défaut
    Citation Envoyé par Barbadaboom Voir le message
    De même, je dirais dans un premier temps l'ADA; langage qui force à se poser les bonnes questions (paramètres d'entrée, de sortie, type des données,...). Une fois les concepts maitrisés, un langage de bas niveau type C permet d’acquérir les notions de pointeurs, mémoire, différence pile/tas ... Trop de développeurs qui codent sans comprendre les impacts de ce qu'ils écrivent ...
    Pas forcément. J'ai commencé par l'ADA : 6/20 de moyenne (j'ai même réussi à me taper un 2,5/20 dans un examen, alors que je bossais beaucoup). C'est pas ce qu'il y a de plus engageant je trouve, surtout que niveau outils, t'as que ce que te font les profs (pEntier, pChaine,...). Tu peux même pas chercher par toi même en marge des cours. J'ai failli abandonner l'idée d'être développeur à cause de ce langage.

    Quand j'ai enchaîné avec le C : 14/20 de moyenne et beaucoup plus de plaisir.

    Et maintenant j'ai un très bon niveau par rapport à certains de mes collègues plus expérimentés, et pas seulement dans une techno.

    Le C est très bien pour débuter en procédural, aborder les questions de gestion de la mémoire, appliquer ses algorithmes sans être trop dérangé par la syntaxe/paradigme, étudier les structures de données communes à quasiment tous les langages, et enchaîner ensuite sur de la POO via un autre langage.

    Franchement, qui va utiliser ADA, Prolog, Ocaml,... à part des chercheurs ? La plupart des programmeurs sont destinés au marché du travail, là où on emploi du .NET (C# ou VB), du Java/J2EE, du C/C++, du PHP, du Python, de l'HTML, du CSS, du Javascript, du SQL,... Autant leur donner les bonnes bases et ne pas commencer par des trucs qui ne leurs serviront jamais, et dont la syntaxe/mécanisme sont très déroutants et limités.
    Le seul repère que ça peut donner, c'est à la limite en PL-SQL/T-SQL avec les BEGIN (BUG-IN, comme prononçait ma prof de 70 ans).

    En regardant un tutorial sur le Python, il me semble en effet le plus adapté pour débuter en programmation. Il n'y a pas encore la notion de typage fort, mais toutes les structures de données, les exceptions,... Il permet aussi bien le procédural que l'objet. En plus il est portable et convient aussi bien sur des petits projet que des gros. J'ai voté C tout à l'heure, je vais rectifier ça.

  6. #46
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    314
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 314
    Points : 463
    Points
    463
    Par défaut
    D'accord avec ctxnop et nchal :
    On commence par les base de l'informatique (Assembleur et C pour les bases, puis on enchaîne sur un langage POO comme le Java et le C#). Rien n’empêche l’étudiant, ensuite, de faire son choix parmi la pléthore de langages à disposition.

    Par contre, javascript, vraiment pas ...
    Il est vraiment trop particulier, et parfois les concepts très appréciés sont à la limite du crado.
    Php est à mon gout trop limité pour un étudiant en informatique.

    (je ne connais quasiment pas Python, je l'exclue donc de mes choix, par méconnaissance).

  7. #47
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Je ne comptes même plus les gens que je reçois a la sortie d'un BTS SIO ou équivalent et qui sont persuadés que le processeur lit un fichier texte et comprend "if", "else", "while", etc...
    Ben, mon proc il lit 0100 0000 0100 1010 1110 1111 0000 0010 et il sait que c'est un if, je vois pas le problème
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  8. #48
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut
    @ElTotor nous sommes au moins 2 à voter pour Ada!

  9. #49
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Citation Envoyé par Thorna Voir le message
    (...) on s'adresse à des étudiants du Supérieur qui sont sensés comprendre rapidement les choses (...)
    Ha ! Ha ha ! ha ha ha ha ha ha ha !

    MOUHAHAHAHAHAHAHAHA !

    (Ce détail m'a fait rire mais le reste de ton post est bien)

  10. #50
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Citation Envoyé par r0d Voir le message
    (...) Ensuite un langage fonctionnel et fortement typé (C, COBOL, ADA...). Ensuite, un langage pur objet (Smalltalk, Ruby, ...). Enfin, les langages à la mode (java, C++ et C#). (...)
    C, COBOL et ADA, des langages fonctionnels ????

  11. #51
    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
    Ce qui est important pour commencer, c'est un langage qui permettent de se concentrer sur l'algorithmie dans un premier temps -- on ne parle pas de faire des trucs ludiques pour amuser la galerie, où le modèle "patch, save & run" pour voir bouger 3 sprites s'applique (cf le "cycle universitaire" du public cible).
    De fait, C (et pire, assembleur), sont de très mauvais choix. Le C exige de se concentrer beaucoup trop tôt sur des détails : la gestion manuelle de la mémoire. Les abstractions de l'Ada sont bien meilleures sur ce point.

    De plus, un prof de C va enseigner à développer au pays magique où les erreurs ça n'existe pas. C'est ça ou montrer des codes totalement incompréhensibles à des débutants qui ne sont pas prêts pour voir comment la gestion des cas dégradés parasite (en C) un code source. De fait, je m'inscris en faux concernant l'argument comme quoi le C enseigne de la rigueur. Il l'exige, certes. Mais ses enseignants ne l'enseignent pas -- et encore moins si le C est présenté en temps que premier langage.
    Raymond Chen classe les programmes sur lesquels il fait des revues de code selon l'appartenance évidente à ce pays magique où les erreurs n'existent pas: http://blogs.msdn.com/b/oldnewthing/...14/352949.aspx (concernant son point sur les exceptions, et le C++, il y a une réponse d'Aaron Lahman, traduite sur dvz par Alexandre Laurent, mais on s'éloigne du sujet). Soit, s'il n'y a pas un if toutes les deux lignes, le code C est faux. C'est ça que vos profs de C vous ont appris à écrire ? Je n'ai personnellement pas souvenir que ce fut le cas des miens. Et je les comprends -- bien qu'on l'on avait déjà officiellement plus d'un an de cours derrière nous. Le C n'est pas fait pour des débutants.

    Bref. Un premier langage ? La mode est au python. J'appartiens à la génération BASIC/Pascal, et ma préférence va aux langages compilés, et plutôt Ada pour l'enseignement.
    Je ne me prononce pas sur le courant de pensée qui dit qu'il faut enseigner d'abord les langages fonctionnels.
    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...

  12. #52
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    Citation Envoyé par CodeurPlusPlus Voir le message
    C, COBOL et ADA, des langages fonctionnels ????
    Alors oui, impératif et fonctionnel sont des paradigmes opposés mais tout le monde les confond pour une raison qui m'est inconnu
    Mais comme on sait que tout le monde confond les paradigmes mais pas les langages ont peu en déduire (facilement) qu'il voulait dire impératif.
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  13. #53
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par CodeurPlusPlus Voir le message
    C, COBOL et ADA, des langages fonctionnels ????
    J'avoue, cette classification me laisse assez perplexe... peut-être qu'il voulait dire "procéduraux", et non "fonctionnels"...

    D'autre part je ne pense vraiment pas qu'on puisse dire que Ruby est "purement objet" ... D'après Wikipedia :
    Paradigm(s) multi-paradigm: object-oriented, imperative, functional, reflective

  14. #54
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Potomac Voir le message
    tout commence par de l'algorithmie, ça peut se faire par un pseudo langage en français et avec un stylo et un papier pour les exercices d'algorithmie
    Commence? L'algorithmie apparait quand un problème prend trois plombes mais qu'il y a moyen de gagner un facteur en vitesse en décomposant le problème : c'est une recherche, c'est passionnant mais loin d'être le commencement.

    Quel est l’intérêt d'un pseudo langage? C'est pas normé, varie d'un endroit à l'autre et fait perdre son temps : car pour progresser il faut passer beaucoup de temps sur le code effectif.
    Le saupoudrage c'est l’ennemie de la réussite ( et sa version managériale le codage en pointillé ).

    +1000 : un stylo et un papier toujours

    Citation Envoyé par Potomac
    mais on sera encore loin d'être un vrai programmeur, car de nos jours il faut aussi maitriser un ou plusieurs frameworks de développement, et idéalement maitriser les design patterns, le concept MVC
    Ce n'est pas le but de tout le monde par exemple ceux qui codent beaucoup avec R ou numpy, sagemath n'ont pas ces problématiques.

    Citation Envoyé par Sodium Voir le message
    Je dirais n'importe quel langage qui permette de débuter rapidement, de s'amuser et qui soit rapide et facile à exécuter, javascript par exemple. Personnellement j'ai commencé sur calculatrice Casio.
    S'il faut déjà 2h pour mettre en place l'environnement de développement, ça peut refroidir rapidement.
    Franchement javascript c'est pas terrible. Installer Lazarus m'a demandé 10 minutes!
    Après quand on voit les logiciels de math actuels ( sagemath codé en python ), je crois que l'on peut facilement accéder à des questions scolaires qui amènent à une résolution assistée par ordinateur avec une part de code.
    Dernière modification par Invité ; 10/07/2014 à 16h37.

  15. #55
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    LISP est réellement multi-paradigme, puisque en LISP, du code impératif procédural, du code impératif objet, du code fonctionnel procédural et du code fonctionnel objet sont aussi beaux les uns que les autres. (beaux ou moches, selon qu'on aime ou non le LISP)

    Peut-on en dire autant pour Ruby (je pose la question parce que je connais assez mal Ruby) ?

    Peut-on en dire autant pour Ocaml ? (sûrement pas, en Ocaml tout code impératif est horrible, comme si le langage n'avait vraiment pas été conçu pour cela du tout même si on prône en apparence le "multi paradigme", alors que le code fonctionnel est plutôt joli)

    Bon je reviens au sujet.

    Un bon premier langage ? ADA, PASCAL ou C. Les langages masquant plein de difficultés propres au "bas niveau" (gestion de la mémoire à la main par exemple) sont absolument à proscrire comme premier langage, pour des raisons qui ont déjà été avancées plus haut et que n'importe qui* devrait être capable de comprendre. Je résume : il est très difficile, si on commence par un Java ou un Python, d'être ensuite capables de se forcer à travailler avec un langage qui en fait moins à notre place.

    Il y a là un vrai paradoxe : commencer l'apprentissage de la programmation par le C ce n'est pas du tout le plus simple. Python peut alors sembler un bien meilleur choix, mais c'est un piège pour la raison évoquée plus haut.

    Donc : ADA, PASCAL ou C. Aucun autre langage de la liste du sondage ne me parait être un bon premier langage. (Remarquez que je ne connais pas du tout Scratch, mais vu son nom, je n'ai pas confiance...)

    Pourtant dans la liste il y a des langages que j'adore, mais qui ne sont pas de bons premiers langages.

    Une fois que les étudiants ont passé le stade de l'initiation, il est évident qu'il faut leur enseigner d'autres langages pour qu'ils voient d'autres paradigmes, d'autres manières de travailler, d'autres bibliothèques avec des "philosophies différentes". Et je pense que tout cursus d'informatique en Université devrait comporter un module de programmation fonctionnelle (peu importe le langage choisi, de toute façon il ne sera pas utilisé en milieu professionnel)... j'ai bien dit en Université... parce que les écoles privées, elles, si elles obligent leurs étudiants à bouffer de l'Ocaml ou du LISP, elles risquent de perdre des élèves et, à terme, de fermer.



    (* sauf peut-être ceux qui n'ont fait que du développement web en autodidacte et qui, donc, de fait, ne connaissent aucun langage qui peut faire un bon premier langage en école d'informatique)

  16. #56
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Ce qui est important pour commencer, c'est un langage qui permettent de se concentrer sur l'algorithmie dans un premier temps -- on ne parle pas de faire des trucs ludiques pour amuser la galerie, ou le modèle patch, save & run pour voir bouger 3 sprites s'applique (cf le "cycle universitaire" du public cible).
    Quel langage? Crible d'Ératosthène se code dans n'importe quel langage bash (la sortie console en couleur ça peut être jolie ) compris et même en assembleur ça ramera toujours pour un nombre à 5000 chiffres! Bon il y a une version récursive pour les langages qui s'y prêtent histoire d'étudier les problèmes de mémoires des algos récursifs dans tous les langages!
    Je ne vois pas de langage pour étudier l'algorithmie.

    Citation Envoyé par Luc Hermitte
    De fait, C (et pire, assembleur), sont de très mauvais choix. Le C exige de se concentrer beaucoup trop tôt sur des détails : la gestion manuelle de la mémoire. Les abstractions de l'Ada sont bien meilleures sur ce point.
    Bizarre quand j'étais jeune on programmait des calculatrices en assembleur sans problème par contre je pleure quand je dois faire du PHP( non en fait je fais plus de PHP).

    Citation Envoyé par Luc Hermitte
    De plus, un prof de C va enseigner à développer au pays magique où les erreurs ça n'existe pas. C'est ça ou montrer des codes totalement incompréhensibles à des débutants qui ne sont pas prêts pour voir comment la gestion des cas dégradés parasite (en C) un code source. De fait, je m'inscris en faux concernant l'argument comme quoi le C enseigne de la rigueur. Il l'exige, certes. Mais ses enseignants ne l'enseignent pas -- et encore moins si le C est présenté en temps que premier langage.
    C'est une critique de l'enseignement, réaliste mais pas du langage C. Après si l'objectif c'est le codage de logiciel alors il faut commencer par apprendre à concevoir, à choisir une techno, utiliser une feuille de papier correctement et finalement coder les tests unitaires après on peut commencer le code lui même

    Citation Envoyé par Luc Hermitte
    Raymond Chen classe les programmes sur lesquels il fait des revues de code selon l'appartenance évidente à ce pays magique où les erreurs n'existent pas: http://blogs.msdn.com/b/oldnewthing/...14/352949.aspx (concernant son point sur les exceptions, et le C++, il y a une réponse d'Aaron Lahman, traduite sur dvz par Alexandre Laurent, mais on s'éloigne du sujet). Soit, s'il n'y a pas un if toutes les deux lignes, le code C est faux. C'est ça que vos profs de C vous ont appris à écrire ? Je n'ai personnellement pas souvenir que ce fut le cas des miens. Et je les comprends -- bien qu'on l'on avait déjà officiellement plus d'un an de cours derrière nous. Le C n'est pas fait pour des débutants.
    C'est un langage exigeant qui s'apprend en codant énormément, donc un cours ne peut au mieux que donner la syntaxe et un bon enseignant montrer quelques pièges.
    Dernière modification par Invité ; 10/07/2014 à 19h39.

  17. #57
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 654
    Points
    3 654
    Billets dans le blog
    20
    Par défaut
    Ca appartient à la légende le fait que quand on commence en haut niveau on ne peut plus redescendre en bas niveau alors que l'inverse est une promenade de santé. Les développeur qui passe du C au java ont autant de mal que ceux qui passe du java au C. Quand l'un va mettre du temps à comprendre le système de pointeur (Alors que quand on y pense les référence en Java, les pointeurs en C c'est un peu le même combat) l'autre va être incapable d'utiliser l'objet correctement. Il violera les concepts objets.

    Au risque de me faire moinsoner. Quand on commence, on s'en fous de la gestion de la mémoire. Si le mec est intéressé ne vous en fait pas, il descendra lui même d'une couche ou deux.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  18. #58
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 203
    Points
    4 203
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Ce qui est important pour commencer, c'est un langage qui permettent de se concentrer sur l'algorithmie dans un premier temps -- on ne parle pas de faire des trucs ludiques pour amuser la galerie, où le modèle "patch, save & run" pour voir bouger 3 sprites s'applique (cf le "cycle universitaire" du public cible).
    De fait, C (et pire, assembleur), sont de très mauvais choix. Le C exige de se concentrer beaucoup trop tôt sur des détails : la gestion manuelle de la mémoire. Les abstractions de l'Ada sont bien meilleures sur ce point.

    De plus, un prof de C va enseigner à développer au pays magique où les erreurs ça n'existe pas. C'est ça ou montrer des codes totalement incompréhensibles à des débutants qui ne sont pas prêts pour voir comment la gestion des cas dégradés parasite (en C) un code source. De fait, je m'inscris en faux concernant l'argument comme quoi le C enseigne de la rigueur. Il l'exige, certes. Mais ses enseignants ne l'enseignent pas -- et encore moins si le C est présenté en temps que premier langage.
    Raymond Chen classe les programmes sur lesquels il fait des revues de code selon l'appartenance évidente à ce pays magique où les erreurs n'existent pas: http://blogs.msdn.com/b/oldnewthing/...14/352949.aspx (concernant son point sur les exceptions, et le C++, il y a une réponse d'Aaron Lahman, traduite sur dvz par Alexandre Laurent, mais on s'éloigne du sujet). Soit, s'il n'y a pas un if toutes les deux lignes, le code C est faux. C'est ça que vos profs de C vous ont appris à écrire ? Je n'ai personnellement pas souvenir que ce fut le cas des miens. Et je les comprends -- bien qu'on l'on avait déjà officiellement plus d'un an de cours derrière nous. Le C n'est pas fait pour des débutants.

    Bref. Un premier langage ? La mode est au python. J'appartiens à la génération BASIC/Pascal, et ma préférence va aux langages compilés, et plutôt Ada pour l'enseignement.
    Je ne me prononce pas sur le courant de pensée qui dit qu'il faut enseigner d'abord les langages fonctionnels.
    La question est en effet bizarrement posée.

    Normalement, ce qui nous intéresse en premier, c'est de développer la pensée "algorithmique" des élèves, comme pour la philosophie. Et pour ça, on s'en moque un peu du langage. Il faut juste une manière concrète et naturelle de tester ses algorithmes. Quand je dis concret, j'exclue l'ADA, mon cauchemar, où la plupart du temps, c'était sur papier qu'on était évalués. Si l'enseignant campe sur ses idées, on ne peut pas lui montrer un truc différent qui fonctionne. Je n'appelle pas ça de l'algorithmie.

    Il faut un langage simple, très permissif, et qui puisse afficher un résultat concret, bref, qui permette de dérouler sa pensée de manière naturelle et de voir un résultat. C'est là où je trouve Python intéressant.
    Je viens de réaliser que le C# pourrait également être intéressant à ce niveau depuis qu'il a introduit le type "var". Il suffit d'un "Main", de déclarer les variables en "var", et de connaître une fonction d'affichage. A voir après si le compilateur est suffisamment permissif.

    - Au départ, justes variables, boucles, conditions, opérateurs mais pas (ou peu) de typage. C'est tout ce que l'étudiant a besoin de connaître pour tester ses idées (une "suite de Fibonacci" par ex).
    - Ensuite, on peut aborder les structures de données (tableaux, listes, piles, files,...) pour passer à des problématiques plus complexes (genre "les tours de hanoi").
    - Plus tard, on peut aller plus dans la technique, notamment avec les fonctions et la récursivité, pour aborder des problématiques encore plus complexes.
    - Et après, on bascule dans la technique pure (objets, pointeurs, exceptions,...), après une formation déjà poussée en algorithmie. Et ce n'est plus que de la pratique.

  19. #59
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par LSMetag Voir le message
    Normalement, ce qui nous intéresse en premier, c'est de développer la pensée "algorithmique" des élèves, comme pour la philosophie. Et pour ça, on s'en moque un peu du langage. Il faut juste une manière concrète et naturelle de tester ses algorithmes.
    Luc Hermitte et LSMetag pourquoi cette obsession de l'algorithmie?
    Je m'explique si le but est d'introduire la programmation on a d'un coté l’écosystème ( compilateur, bibliothèques,... ) et le "support" c'est à dire quelque chose à programmer qui permet de voir par étape progressivement l'évolution du travail fourni.
    Le point important est d'arriver à une quantité suffisante de pratique pour que la qualité et les automatismes soient là.

    Citation Envoyé par LSMetag
    - Ensuite, on peut aborder les structures de données (tableaux, listes, piles, files,...) pour passer à des problématiques plus complexes (genre "les tours de hanoi").
    - Plus tard, on peut aller plus dans la technique, notamment avec les fonctions et la récursivité, pour aborder des problématiques encore plus complexes.
    - Et après, on bascule dans la technique pure (objets, pointeurs, exceptions,...), après une formation déjà poussée en algorithmie. Et ce n'est plus que de la pratique.
    C'est très classique, pas palpitant (mais faut bien y passer) par contre le niveau reste pas bien haut...
    De toute façon, la liste ci-dessus c'est celle pour l'intérro à la fin du semestre! Dans la vraie vie soit on a d'autres algos métiers soit on utilise des libs.
    Ca me gêne de fixer cette liste comme objectif de "l'initiation à la programmation".

  20. #60
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    794
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 794
    Points : 987
    Points
    987
    Par défaut
    Simplement comme pour toute chose on commence l'apprentissage par la base donc la progression est assez simple :

    Simplement Asm (x86 ou Arm) => C => C++

    Asm pour être au plus près de la machine
    C pour faire du procédure et apprendre les notions de base le typage etc.
    C++ pour l'apprentissage de l'objet (franchement c'est assez simple)

    En // de C++ un langage du genre Haskell ou F# pour maitriser les aspects fonctionnelle notamment très important pour bien comprendre les lambdas etc. ou même simplement pour apprendre que la POO ne répond pas à l'ensemble des problématiques.

    Ainsi qu'un langage de script je dirais Perl et non python, en plus avec Perl on pourrais imagine des TP sur de la bio-informatique (Bio perl) ça permettrait de voir par exemple à quoi peuvent bien servir les algo génétique. Des sujets passionnants dans lesquels les étudiants peuvent vraiment s'éclater.

Discussions similaires

  1. [aide] Quel type de champs utiliser pour mettre un "+"
    Par lothar59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 04/03/2007, 14h05
  2. [Remoting] Comment savoir quel channel un client utilise pour se connecter?
    Par eldoctor.Sylvain dans le forum Framework .NET
    Réponses: 1
    Dernier message: 18/09/2006, 15h40
  3. Quel langage ont-ils utilisé ?
    Par ®om dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 04/08/2006, 13h29
  4. [Librairies] Quel système de cache utiliser pour un forum?
    Par Cyrius dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/10/2005, 11h43
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22

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