{"id":180,"date":"2018-02-13T05:36:38","date_gmt":"2018-02-13T04:36:38","guid":{"rendered":"https:\/\/fr.koddos.net\/blog\/?page_id=180"},"modified":"2018-02-13T06:14:20","modified_gmt":"2018-02-13T05:14:20","slug":"comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique","status":"publish","type":"page","link":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/","title":{"rendered":"Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique"},"content":{"rendered":"<p>Dans le d\u00e9partement CS o\u00f9 j&rsquo;enseigne actuellement, j&rsquo;ai r\u00e9cemment particip\u00e9 \u00e0 un d\u00e9bat sur le langage de programmation qui devrait \u00eatre utilis\u00e9 pour enseigner aux d\u00e9butants. Java et C sont les langues les plus couramment utilis\u00e9es dans le d\u00e9partement, et pour beaucoup de sujets c&rsquo;est appropri\u00e9, mais pas (je crois) pour les d\u00e9butants absolus. Je crois que Python est un choix bien meilleur pour les d\u00e9butants, et pour raffermir ma propre position, j&rsquo;ai effectu\u00e9 le test tr\u00e8s court, tr\u00e8s peu scientifique d\u00e9crit ci-dessous.<\/p>\n<hr \/>\n<p><strong>Le test<\/strong><\/p>\n<p>Je voulais regarder ce qui \u00e9tait impliqu\u00e9 dans l&rsquo;\u00e9criture de programmes tr\u00e8s simples dans une (petite) vari\u00e9t\u00e9 de langues. Les langages que j&rsquo;ai choisies \u00e9taient BASIC, C, Java et Python. J&rsquo;ai utilis\u00e9 C et Java parce qu&rsquo;ils sont couramment utilis\u00e9s dans le d\u00e9partement (et dans d&rsquo;autres institutions d&rsquo;enseignement.) J&rsquo;ai choisi Python parce que je l&rsquo;aime, et je pense que c&rsquo;est un excellent choix pour l&rsquo;enseignement, et j&rsquo;ai choisi BASIC parce que facile\u2026.<br \/>\n\u00ab\u00a0Hello World\u00a0\u00bb semblait un peu trop trivial, alors j&rsquo;ai d\u00e9cid\u00e9 de lire deux nombres de l&rsquo;utilisateur, de les additionner et d&rsquo;imprimer le r\u00e9sultat. Mon int\u00e9r\u00eat \u00e9tait<\/p>\n<p>\u2022 Combien de temps a-t-il fallu pour \u00e9crire et d\u00e9boguer le code ?<br \/>\n\u2022 Combien de choses un \u00e9l\u00e8ve doit-il comprendre pour \u00e9crire ce code ?<\/p>\n<p>Les heures donn\u00e9es pour r\u00e9diger le code ne sont \u00e9videmment pas cens\u00e9es repr\u00e9senter le temps requis par un \u00e9tudiant, mais je crois qu&rsquo;elles donnent une mesure \u00e0 peu pr\u00e8s exacte de la comparaison. Je suis raisonnablement qualifi\u00e9 (1-5 ans d&rsquo;exp\u00e9rience professionnelle) dans chaque langue, donc je ne pense pas que j&rsquo;\u00e9tais d\u00e9raisonnablement biais\u00e9.<\/p>\n<hr \/>\n<p><strong>BASIC<\/strong><\/p>\n<p>J&rsquo;ai appris \u00e0 programmer, \u00e0 la fin des ann\u00e9es 70, sur un TRS-80 de niveau I, et sur un syst\u00e8me de partage de temps auquel mon \u00e9cole secondaire avait un acc\u00e8s occasionnel. Le programme est trivial en bon vieux BASIC :<br \/>\n<code style=\"background-color: #ddd;\">10 INPUT A<br \/>\n20 INPUT B<br \/>\n30 C=A+B<br \/>\n40 PRINT C<br \/>\nRUN<\/code><\/p>\n<p><strong>Temps d&rsquo;\u00e9criture :<br \/>\n<\/strong>15 secondes J&rsquo;avoue que je n&rsquo;ai pas d&rsquo;interpr\u00e8te BASIC \u00e0 port\u00e9e de main et je n&rsquo;ai pas test\u00e9 cela, mais je sais juste que \u00e7a fonctionne. (OK, j&rsquo;ai lanc\u00e9 l&rsquo;\u00e9mulateur TRS-80 et l&rsquo;ai ex\u00e9cut\u00e9 &#8211; \u00e7a marche &#8230;)<\/p>\n<p><strong>Choses \u00e0 expliquer :<\/strong><\/p>\n<p>\u2022 Num\u00e9ros de ligne<br \/>\n\u2022 Variables<br \/>\n\u2022 INPUT<br \/>\n\u2022 PRINT<br \/>\n\u2022 RUN<\/p>\n<p><strong>Avantages et inconv\u00e9nients<\/strong><\/p>\n<p>BASIC est tr\u00e8s facile \u00e0 utiliser pour les d\u00e9butants, mais c&rsquo;est un vieux langage mal con\u00e7u, qui manque de presque toutes les fonctions modernes. Visual BASIC ajoute beaucoup \u00e0 \u00ab\u00a0bon vieux BASIC\u00a0\u00bb, mais il n&rsquo;est pas appropri\u00e9 (je crois) d&rsquo;enseigner un langage propri\u00e9taire \u00e0 plate-forme unique. Et ce n&rsquo;est toujours pas vraiment un bon langage &#8230;<\/p>\n<hr \/>\n<p><strong>C<\/strong><\/p>\n<p><code style=\"background-color: #ddd;\">#include &lt;stdio.h&gt;<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\nint main(int argc, char*argv[])<br \/>\n{<br \/>\nint a,b,c;<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\nscanf(\"%d\",&amp;a);<br \/>\nscanf(\"%d\",&amp;b);<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\nc = a+b;<br \/>\nprintf(\"%d\\n\",c);<br \/>\n}<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\n%&gt; gcc -o add add.c<br \/>\n%&gt; .\/add<\/code><\/p>\n<p><strong>Temps d&rsquo;\u00e9criture :<\/strong><br \/>\nenviron trois minutes, y compris le d\u00e9bogage.<\/p>\n<p><strong>Choses \u00e0 expliquer<\/strong>:<\/p>\n<p>\u2022 #include, fonctions (main), types de retour, argc, argv<br \/>\n\u2022 variables, types (int)<br \/>\n\u2022 scanf (et bient\u00f4t ses limites et comment les contourner)<br \/>\n\u2022 printf, formatage des cha\u00eenes<br \/>\n\u2022 pointeurs (d\u00e9j\u00e0 !!)<br \/>\n\u2022 compilation, accolades et points-virgules<\/p>\n<p><strong>Avantages et inconv\u00e9nients<br \/>\n<\/strong><\/p>\n<p>C a \u00e9t\u00e9 con\u00e7u par les meilleurs pirates informatiques pour leur propre usage. Il a \u00e9t\u00e9 con\u00e7u pour \u00e9crire des syst\u00e8mes d&rsquo;exploitation, des compilateurs et d&rsquo;autres outils syst\u00e8me, et dans ce r\u00f4le, il est devenu presque totalement dominant.<br \/>\nIl peut fournir d&rsquo;excellentes performances (en supposant un bon choix d&rsquo;algorithme et de bonnes comp\u00e9tences C) et permet un acc\u00e8s mat\u00e9riel de bas niveau, mais ce ne sont normalement pas des choses requises pour le d\u00e9butant. L&rsquo;utilisation de pointeurs par C est une source de frustration et de confusion pour les d\u00e9butants, mais ils sont essentiels m\u00eame dans des programmes assez triviaux (comme celui ci-dessus, quoique de mani\u00e8re insignifiante).<\/p>\n<p>De plus, la manipulation des cha\u00eenes de caract\u00e8res de C est faible compar\u00e9e \u00e0 beaucoup d&rsquo;autres langages modernes (la fonction scanf utilis\u00e9e ci-dessus est notoirement probl\u00e9matique).<\/p>\n<p>C est un langage majeur et tr\u00e8s important, et tous les programmeurs devraient y avoir une exposition significative. C&rsquo;est cependant un langage terrible pour enseigner aux d\u00e9butants. Il y a trop de C \u00e0 expliquer, ce qui laisse moins de temps pour expliquer la programmation.<\/p>\n<hr \/>\n<p><strong>Java<\/strong><\/p>\n<p><code style=\"background-color: #ddd;\">import java.io.*;<br \/>\npublic class Addup<br \/>\n{<br \/>\nstatic public void main(String args[])  {<br \/>\nInputStreamReader stdin = new InputStreamReader(System.in);<br \/>\nBufferedReader console = new BufferedReader(stdin);<br \/>\nint i1 = 0,i2 = 0;<br \/>\nString s1,s2;<br \/>\ntry {<br \/>\ns1 = console.readLine();<br \/>\ni1 = Integer.parseInt(s1);<br \/>\ns2 = console.readLine();<br \/>\ni2 = Integer.parseInt(s2);<br \/>\n}<br \/>\ncatch(IOException ioex) {<br \/>\nSystem.out.println(\"Input error\");<br \/>\nSystem.exit(1);<br \/>\n}<br \/>\ncatch(NumberFormatException nfex) {<br \/>\nSystem.out.println(\"\\\"\" + nfex.getMessage() + \"\\\" is not numeric\");<br \/>\nSystem.exit(1);<br \/>\n}<br \/>\nSystem.out.println(i1 + \" + \" + i2 + \" = \" + (i1+i2));<br \/>\nSystem.exit(0);<br \/>\n}<br \/>\n}<br \/>\n%&gt; javac Addup.java<br \/>\n%&gt; java Addup<\/code><\/p>\n<p><strong>Temps d&rsquo;\u00e9criture:<br \/>\n<\/strong><\/p>\n<p>19 minutes! En fait, j&rsquo;ai pass\u00e9 environ 15 minutes, a \u00e9chou\u00e9, puis fouill\u00e9 Google pour un exemple. Le code ci-dessus est copi\u00e9 \u00e0 partir d&rsquo;une page Web, qui, pensais-je, commence par les mots \u00ab\u00a0On pourrait penser qu&rsquo;un programme qui lit dans deux entiers entr\u00e9s par l&rsquo;utilisateur et imprime leur somme serait un simple morceau de code\u00a0\u00bb.<\/p>\n<p>\u00c9videmment, ce code n&rsquo;est pas parfaitement \u00e9quivalent aux autres programmes pr\u00e9sent\u00e9s ici car il permet de v\u00e9rifier les erreurs, mais Java rend difficile la v\u00e9rification des erreurs. Vous devez attraper les exceptions, et apr\u00e8s les avoir attrap\u00e9s, vous pourriez aussi faire quelque chose avec eux.<\/p>\n<p>Je suis en quelque sorte embarrass\u00e9, j&rsquo;ai eu tellement de probl\u00e8mes avec \u00e7a &#8211; j&rsquo;ai travaill\u00e9 sur un paquet Java commercial pendant deux ans, mais parce que c&rsquo;est bas\u00e9 sur l&rsquo;interface graphique, j&rsquo;ai rarement \u00e0 faire avec la console. Les vrais programmeurs Java me regarderont probablement avec un m\u00e9lange de piti\u00e9 et de d\u00e9go\u00fbt. C&rsquo;est la vie.<\/p>\n<p><strong>Choses \u00e0 expliquer<\/strong><\/p>\n<p>\u2022 import, classes, accolades et points-virgules<br \/>\n\u2022 public, static, void, String, arguments principaux []<br \/>\n\u2022 InputStreamReader, BufferedReader, System.in<br \/>\n\u2022 variables, types<br \/>\n\u2022 try, catch, exceptions, readLine, parseInt<br \/>\n\u2022 System.out.println, compilation, ex\u00e9cution<\/p>\n<p><strong>Avantages et inconv\u00e9nients<\/strong><\/p>\n<p>Java est un langage utile pour le d\u00e9veloppement de l&rsquo;interface graphique multiplateforme, est une plate-forme robuste pour le d\u00e9veloppement OO, et dispose d&rsquo;un ensemble \u00e9tendu et hautement \u00e9volu\u00e9 de biblioth\u00e8ques de classes. Peut-\u00eatre plus important encore, c&rsquo;est la langue la plus populaire autour et il y a beaucoup d&#8217;emplois pour les programmeurs Java.<br \/>\nLa biblioth\u00e8que de classe \u00e9tendue est cependant assez d\u00e9courageante. Il semble y avoir une classe pour presque tout, et une grande partie de la \u00ab\u00a0programmation en Java\u00a0\u00bb semble consister \u00e0 \u00ab\u00a0chercher la bonne classe\u00a0\u00bb. M\u00eame apr\u00e8s deux ans, je trouve que je ne peux pas faire grand chose en Java sans r\u00e9f\u00e9rence constante \u00e0 la documentation.<\/p>\n<p>Java impose l&rsquo;orientation de l&rsquo;objet, la v\u00e9rification des exceptions et le typage strict &#8211; ce sont toutes (sans doute) de bonnes choses &#8211; elles permettent \u00e0 un groupe de programmeurs de cr\u00e9er des syst\u00e8mes volumineux plus facilement. Mais pour les petits probl\u00e8mes (tels que ceux rencontr\u00e9s dans les classes de programmation d&rsquo;introduction) ces choses ne deviennent rien de plus qu&rsquo;un fardeau compliqu\u00e9 et chronophage.<\/p>\n<p>La seule raison de l&#8217;emploi est suffisante pour faire de Java un langage \u00ab\u00a0incontournable\u00a0\u00bb, mais je crois que nous rendons un mauvais service \u00e0 nos \u00e9tudiants si c&rsquo;est la meilleure langue que nous leur montrons.<\/p>\n<hr \/>\n<p><strong>Python<\/strong><\/p>\n<p><code style=\"background-color: #ddd;\">import sys<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\na = sys.stdin.readline()<br \/>\nb = sys.stdin.readline()<br \/>\nc = int(a) + int(b)<br \/>\nprint c<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\n%&gt; python add.py<\/code><\/p>\n<p><strong>Temps d&rsquo;\u00e9criture :<br \/>\n<\/strong><\/p>\n<p>Environ une minute, y compris les tests et le d\u00e9bogage.<br \/>\n<strong><br \/>\nChoses \u00e0 expliquer<br \/>\n<\/strong><br \/>\n\u2022 import<br \/>\n\u2022 variables<br \/>\n\u2022 sys.stdin<br \/>\n\u2022 readline (lit une cha\u00eene)<br \/>\n\u2022 int (convertit une cha\u00eene en entier)<br \/>\n\u2022 print<\/p>\n<p><strong>Avantages et inconv\u00e9nients<\/strong><\/p>\n<p>Python a \u00e9norm\u00e9ment de bons points:<\/p>\n<p>\u2022 applique un bon style de programmation (l&rsquo;indentation est significative)<br \/>\n\u2022 OO disponible mais non appliqu\u00e9<br \/>\n\u2022 Exceptions utilis\u00e9es mais non appliqu\u00e9es<br \/>\n\u2022 n&rsquo;est pas un jouet ou une langue acad\u00e9mique &#8211; beaucoup de travail dans le monde r\u00e9el est fait en Python<br \/>\n\u2022 permet de se concentrer sur les algorithmes et les probl\u00e8mes, pas sur les caract\u00e9ristiques du langage et les d\u00e9fauts.<br \/>\n\u2022 est multiplateforme et dispose d&rsquo;un ensemble puissant de biblioth\u00e8ques<br \/>\n\u2022 est s\u00fbr &#8211; il a une v\u00e9rification de type de temps d&rsquo;ex\u00e9cution dynamique et une v\u00e9rification des limites sur les tableaux<br \/>\n\u2022 a de puissants types de donn\u00e9es int\u00e9gr\u00e9s &#8211; dictionnaires, listes, s\u00e9quences, fonctions, ensembles (en 2.4)<br \/>\n\u2022 poss\u00e8de de puissantes structures de contr\u00f4le int\u00e9gr\u00e9es &#8211; une simple boucle sur les s\u00e9quences, la carte, les g\u00e9n\u00e9rateurs, les compr\u00e9hensions de listes, les expressions r\u00e9guli\u00e8res &#8230;<br \/>\n\u2022 n\u00e9cessite moins de lignes de code pour un probl\u00e8me donn\u00e9, et est plus lisible &#8211; donc une plus grande productivit\u00e9.<\/p>\n<p>Pour l&rsquo;enseignement en tant que premi\u00e8re langue, cependant, il pr\u00e9sente des avantages sp\u00e9cifiques. Comme on peut le voir dans les exemples ci-dessus (en ignorant BASIC), Python n\u00e9cessite moins de temps, moins de lignes de code, et moins de concepts \u00e0 enseigner pour atteindre un objectif donn\u00e9. Cela permet de consacrer plus de temps aux choses importantes. De plus, certaines erreurs communes aux \u00e9l\u00e8ves sont compl\u00e8tement class\u00e9es dans Python :<\/p>\n<p>\u2022 la fin de la ligne est la fin de la ligne (aucun point-virgule oubli\u00e9)<br \/>\n\u2022 aucune d\u00e9claration de type<br \/>\n\u2022 structure de bloc vraie toujours \u00e9vidente (pas d&rsquo;erreur d&rsquo;accolades manquante)<br \/>\n\u2022 allocation de m\u00e9moire dynamique et r\u00e9cup\u00e9ration de place<\/p>\n<p>Enfin la programmation en Python est amusante! Le succ\u00e8s amusant et fr\u00e9quent engendre la confiance et l&rsquo;int\u00e9r\u00eat pour l&rsquo;\u00e9l\u00e8ve, qui est alors mieux plac\u00e9 pour continuer \u00e0 apprendre \u00e0 programmer.<\/p>\n<p><strong>Mais Python est juste un langage de script<\/strong><\/p>\n<p>Python est souvent rejet\u00e9 comme \u00ab\u00a0juste un langage de script\u00a0\u00bb (Perl et Ruby souffrent aussi de cette bigoterie stupide). C&rsquo;est simplement incorrect. Ce n&rsquo;est pas \u00ab\u00a0juste un langage de script\u00a0\u00bb &#8211; c&rsquo;est un langage complet de tr\u00e8s haut niveau qui est id\u00e9al pour de nombreuses applications, y compris les t\u00e2ches de script simples.<br \/>\nLe fait que vous puissiez \u00e9crire des scripts \u00ab rapides et sales \u00bb en Python est un avantage, pas un inconv\u00e9nient, puisque le script est en fait une partie essentielle de la programmation professionnelle. Si les \u00e9tudiants ne connaissent pas Python (ou Perl, ou Ruby, ou \u2026), ils perdront beaucoup de temps \u00e0 essayer de r\u00e9soudre des probl\u00e8mes de type script en Java.<\/p>\n<p><strong>Mais Python est Slooooooow<\/strong><\/p>\n<p>Python est un langage interpr\u00e9t\u00e9, et cela ajoute un peu de surcharge. La v\u00e9rification dynamique des limites, le typage dynamique et d&rsquo;autres choses intelligentes de Python le ralentissent encore plus. Python peut \u00eatre plus lent que le code C \u00e9quivalent. Toutefois<\/p>\n<p>\u2022 De nombreuses applications ne sont pas li\u00e9es au calcul. Utiliser un langage haute performance pour eux illustre le p\u00e9ch\u00e9 d&rsquo;optimisation pr\u00e9coce.<br \/>\n\u2022 Python s&rsquo;interface bien avec C &#8211; des gains \u00e9normes peuvent \u00eatre r\u00e9alis\u00e9s en codant des sections critiques en C<br \/>\n\u2022 Le temps gagn\u00e9 en codant en Python, et la plus grande simplicit\u00e9 du code \u00e9crit, permettent beaucoup plus de temps pour l&rsquo;exp\u00e9rimentation dans des algorithmes plus efficaces &#8211; souvent beaucoup plus fructueux que de simplement ex\u00e9cuter un mauvais algorithme tr\u00e8s rapidement.<\/p>\n<hr \/>\n<p><strong>Conclusion<\/strong><\/p>\n<p>C et Java sont des langages importants &#8211; pour les concepts qu&rsquo;ils incarnent, pour les perspectives d&#8217;emploi, et pour les classes de probl\u00e8mes qu&rsquo;ils r\u00e9solvent. Les \u00e9tudiants doivent recevoir une connaissance approfondie de ces langues. Ils ne forment cependant pas un arsenal suffisant pour le programmeur professionnel &#8211; un bon \u00ab langage de script \u00bb est un must &#8211; et ils ne sont pas de bonnes langues pour enseigner aux nouveaux venus en programmation. Ils ont beaucoup de surcharge et d&rsquo;autres obstacles qui ne permettent pas beaucoup de plaisir, et rendent les t\u00e2ches de l&rsquo;\u00e9tudiant et de l&rsquo;enseignant plus difficiles qu&rsquo;elles ne devraient l&rsquo;\u00eatre.<br \/>\nIl y a des gens qui diraient que les obstacles font partie de la discipline de la programmation &#8211; les \u00e9l\u00e8ves doivent apprendre \u00e0 attraper leurs exceptions, utiliser des pointeurs, d\u00e9clarer tous leurs types et ainsi de suite. Peut-\u00eatre, peut-\u00eatre pas &#8211; mais il y a le temps pour \u00e7a plus tard. Laissons les \u00e9tudiants avoir la joie simple de petits succ\u00e8s que nous (bien, \u00ab\u00a0moi\u00a0\u00bb de toute fa\u00e7on) avions quand nous \u00e9tions en train de commencer. Patrick Jordan &#8211; patrick@ariel.com.au &#8211; 2004-12-14.<\/p>\n<hr \/>\n<p><strong>Postscript (f\u00e9vrier 2006)<\/strong><\/p>\n<p>Mis \u00e0 part les commentaires ci-dessus, un grand nombre de personnes m&rsquo;ont \u00e9crit apr\u00e8s que cet article est apparu sur Daily Python pour souligner qu&rsquo;il y avait une fa\u00e7on plus simple de le faire en Python :<\/p>\n<p><code style=\"background-color: #ddd;\">a = input()<br \/>\nb = input()<br \/>\nc = a + b<br \/>\nprint c<\/code><br \/>\n<code style=\"background-color: #ddd;\"><br \/>\n%&gt; python add.py<\/code><\/p>\n<p>(Plusieurs lignes comme &lsquo;print input() + input()&rsquo; ont aussi \u00e9t\u00e9 sugg\u00e9r\u00e9es et fonctionnent aussi bien mais je dirais qu&rsquo;elles sont moins utiles \u00e0 des fins d&rsquo;enseignement). De plus, puisque input() accepte toute expression Python valide, ce programme fonctionne uniquement pour toute une gamme d&rsquo;entr\u00e9es &#8211; ints, floats, strings (il les concat\u00e9nera &#8211; mais notez qu&rsquo;elles doivent \u00eatre entre guillemets sinon elles seront interpr\u00e9t\u00e9es comme noms de variables) ou des expressions telles que \u00ab\u00a03.14 ** 2\u00a0\u00bb. Autre preuve, comme si n\u00e9cessaire, de la beaut\u00e9 de Python.<\/p>\n<p><strong>Commentaires<\/strong><\/p>\n<p>J&rsquo;ai re\u00e7u un certain nombre de commentaires sur ce sujet, notamment sur les langues que je n&rsquo;ai pas mentionn\u00e9es (Ruby, C ++, Smalltalk, LISP) &#8230;<\/p>\n<p>Source : <a href=\"http:\/\/www.ariel.com.au\/a\/teaching-programming.html\">http:\/\/www.ariel.com.au\/a\/teaching-programming.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le d\u00e9partement CS o\u00f9 j&rsquo;enseigne actuellement, j&rsquo;ai r\u00e9cemment particip\u00e9 \u00e0 un d\u00e9bat sur le langage de programmation qui devrait \u00eatre utilis\u00e9 pour enseigner aux d\u00e9butants. Java et C sont les langues les plus couramment utilis\u00e9es dans le d\u00e9partement, et pour beaucoup de sujets c&rsquo;est appropri\u00e9, mais pas (je crois) pour les d\u00e9butants absolus. Je &hellip; <a href=\"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-180","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Une comparaison tr\u00e8s rapide des langages populaires pour l&#039;enseignement de la programmation informatique - Blog KoDDoS<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Une comparaison tr\u00e8s rapide des langages populaires pour l&#039;enseignement de la programmation informatique - Blog KoDDoS\" \/>\n<meta property=\"og:description\" content=\"Dans le d\u00e9partement CS o\u00f9 j&rsquo;enseigne actuellement, j&rsquo;ai r\u00e9cemment particip\u00e9 \u00e0 un d\u00e9bat sur le langage de programmation qui devrait \u00eatre utilis\u00e9 pour enseigner aux d\u00e9butants. Java et C sont les langues les plus couramment utilis\u00e9es dans le d\u00e9partement, et pour beaucoup de sujets c&rsquo;est appropri\u00e9, mais pas (je crois) pour les d\u00e9butants absolus. Je &hellip; Continue reading Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog KoDDoS\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/koddosCom\" \/>\n<meta property=\"article:modified_time\" content=\"2018-02-13T05:14:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@koddoscom\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\\\/\",\"url\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\\\/\",\"name\":\"Une comparaison tr\u00e8s rapide des langages populaires pour l'enseignement de la programmation informatique - Blog KoDDoS\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#website\"},\"datePublished\":\"2018-02-13T04:36:38+00:00\",\"dateModified\":\"2018-02-13T05:14:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/\",\"name\":\"Blog KoDDoS\",\"description\":\"Blog KoDDoS est un blog d\u2019information et d\u2019actualit\u00e9 focalis\u00e9 sur le hacking, la cyber criminalit\u00e9, la vie priv\u00e9e et la surveillance.\",\"publisher\":{\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#organization\",\"name\":\"KoDDoS\",\"url\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i1.wp.com\\\/fr.koddos.net\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/logo.png?fit=258%2C55&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i1.wp.com\\\/fr.koddos.net\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/logo.png?fit=258%2C55&ssl=1\",\"width\":258,\"height\":55,\"caption\":\"KoDDoS\"},\"image\":{\"@id\":\"https:\\\/\\\/fr.koddos.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/koddosCom\",\"https:\\\/\\\/x.com\\\/koddoscom\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Une comparaison tr\u00e8s rapide des langages populaires pour l'enseignement de la programmation informatique - Blog KoDDoS","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/","og_locale":"fr_FR","og_type":"article","og_title":"Une comparaison tr\u00e8s rapide des langages populaires pour l'enseignement de la programmation informatique - Blog KoDDoS","og_description":"Dans le d\u00e9partement CS o\u00f9 j&rsquo;enseigne actuellement, j&rsquo;ai r\u00e9cemment particip\u00e9 \u00e0 un d\u00e9bat sur le langage de programmation qui devrait \u00eatre utilis\u00e9 pour enseigner aux d\u00e9butants. Java et C sont les langues les plus couramment utilis\u00e9es dans le d\u00e9partement, et pour beaucoup de sujets c&rsquo;est appropri\u00e9, mais pas (je crois) pour les d\u00e9butants absolus. Je &hellip; Continue reading Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique","og_url":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/","og_site_name":"Blog KoDDoS","article_publisher":"https:\/\/www.facebook.com\/koddosCom","article_modified_time":"2018-02-13T05:14:20+00:00","twitter_card":"summary_large_image","twitter_site":"@koddoscom","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/","url":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/","name":"Une comparaison tr\u00e8s rapide des langages populaires pour l'enseignement de la programmation informatique - Blog KoDDoS","isPartOf":{"@id":"https:\/\/fr.koddos.net\/blog\/#website"},"datePublished":"2018-02-13T04:36:38+00:00","dateModified":"2018-02-13T05:14:20+00:00","breadcrumb":{"@id":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fr.koddos.net\/blog\/comparaison-tres-rapide-langages-populaires-lenseignement-de-programmation-informatique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/fr.koddos.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Une comparaison tr\u00e8s rapide des langages populaires pour l&rsquo;enseignement de la programmation informatique"}]},{"@type":"WebSite","@id":"https:\/\/fr.koddos.net\/blog\/#website","url":"https:\/\/fr.koddos.net\/blog\/","name":"Blog KoDDoS","description":"Blog KoDDoS est un blog d\u2019information et d\u2019actualit\u00e9 focalis\u00e9 sur le hacking, la cyber criminalit\u00e9, la vie priv\u00e9e et la surveillance.","publisher":{"@id":"https:\/\/fr.koddos.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fr.koddos.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/fr.koddos.net\/blog\/#organization","name":"KoDDoS","url":"https:\/\/fr.koddos.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/fr.koddos.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i1.wp.com\/fr.koddos.net\/blog\/wp-content\/uploads\/2018\/02\/logo.png?fit=258%2C55&ssl=1","contentUrl":"https:\/\/i1.wp.com\/fr.koddos.net\/blog\/wp-content\/uploads\/2018\/02\/logo.png?fit=258%2C55&ssl=1","width":258,"height":55,"caption":"KoDDoS"},"image":{"@id":"https:\/\/fr.koddos.net\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/koddosCom","https:\/\/x.com\/koddoscom"]}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9DjzA-2U","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/pages\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":12,"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/pages\/180\/revisions"}],"predecessor-version":[{"id":192,"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/pages\/180\/revisions\/192"}],"wp:attachment":[{"href":"https:\/\/fr.koddos.net\/blog\/wp-json\/wp\/v2\/media?parent=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}