développement "sur clé USB"

Le problème exposé dans ce sujet a été résolu.

bonjour amis zesteurs!

voilà. j'ai un projet d'animation d'un groupe de collégiens autour de la programmation, avec pour but final, à la fin de l'année pour les élèves, de résoudre en groupe quelques-uns des problèmes les plus faciles du site project euler. Mon soucis c'est que j'ai aucune idée des ressources dont je disposerai une fois l'activité montée. enfin je suis à peu près sûr que j'aurai accès à une salle avec des ordinateurs (encore heureux, parce que sinon, sans, "on est mal", comme on dit).

l'ennui c'est que comme c'est dans un collège que ça va se passer, je sais d'ores-et-déjà que j'aurai des problèmes avec le matériel, enfin plutôt des logiciels utilisés et installés, et je sens que si je dois commencer à installer des trucs, ça va vite virer au cauchemar à la fois pour moi et à la fois pour l' admin.

j'ai donc eu l'idée de chercher un langage pour lequel on a des IDE relativement propres (notepad++ serait suffisant, donc c'est pas là que j'ai du mal), mais aussi de quoi compiler/interpréter le langage, le tout "portable" (dans le sens "on met tout sur une clé USB et roulez jeunesse")

et là j'avoue ne pas trouver grand chose (en vrai, je sais pas quoi mettre dans google pour pas tomber sur des trucs completement hors sujet, parce que portable ça a plein de sens, et USB ça génere plein de problemes liés à la programmation, mais pas à mon probleme). c'est pourquoi je me tourne vers vous, pour voir si quelqu'un a une idée de quelque chose d'existant qui aurait les critères suivants, dans l'ordre de priorité décroissant:

  • la portabilité sur une clé USB
  • IDE un minimum pratique: coloration, auto-complétion (on peut faire sans, mais ça évite pas mal de soucis), numéros de lignes, etc…
  • syntaxe proche du C/C++, Java, ou d'autres langages dans ce style: procédural ou objet, avec au minimum un typage fort imposé (pas trop de "la VM/l'interpréteur choisit" ou de "on fait tout dans des strings", parce que c'est typiquement le genre de choses qui font que des bugs traînent avec moi, et j'ai pas trop envie de buter sur des spécificités du langage)

je sais pas si c'est ici que je dois poser cette question, mais dans le doute, que quelqu'un le dise, je la reposte ailleurs.

EDIT: à tout hasard, je viens d'avoir une idée, mais je sais pas trop qu'en penser: utiliser une carte "type raspberry Pi" (la mienne est un peu plus costaud, cf: cubieboard 2 ) que je configure proprement, ça je sais faire, et faire se connecter les élèves en ssh, voire carrément avec une session VNC. le groupe fera surement moins de 10 élèves, j'aimerais juste savoir si vous pensez que la carte va supporter sans trop ralentir.

+0 -0

bonjour amis zesteurs!

voilà. j'ai un projet d'animation d'un groupe de collégiens autour de la programmation, avec pour but final, à la fin de l'année pour les élèves, de résoudre en groupe quelques-uns des problèmes les plus faciles du site project euler. Mon soucis c'est que j'ai aucune idée des ressources dont je disposerai une fois l'activité montée. enfin je suis à peu près sûr que j'aurai accès à une salle avec des ordinateurs (encore heureux, parce que sinon, sans, "on est mal", comme on dit).

l'ennui c'est que comme c'est dans un collège que ça va se passer, je sais d'ores-et-déjà que j'aurai des problèmes avec le matériel, enfin plutôt des logiciels utilisés et installés, et je sens que si je dois commencer à installer des trucs, ça va vite virer au cauchemar à la fois pour moi et à la fois pour l' admin.

j'ai donc eu l'idée de chercher un langage pour lequel on a des IDE relativement propres (notepad++ serait suffisant, donc c'est pas là que j'ai du mal), mais aussi de quoi compiler/interpréter le langage, le tout "portable" (dans le sens "on met tout sur une clé USB et roulez jeunesse")

et là j'avoue ne pas trouver grand chose (en vrai, je sais pas quoi mettre dans google pour pas tomber sur des trucs completement hors sujet, parce que portable ça a plein de sens, et USB ça génere plein de problemes liés à la programmation, mais pas à mon probleme). c'est pourquoi je me tourne vers vous, pour voir si quelqu'un a une idée de quelque chose d'existant qui aurait les critères suivants, dans l'ordre de priorité décroissant:

  • la portabilité sur une clé USB
  • IDE un minimum pratique: coloration, auto-complétion (on peut faire sans, mais ça évite pas mal de soucis), numéros de lignes, etc…
  • syntaxe proche du C/C++, Java, ou d'autres langages dans ce style: procédural ou objet, avec au minimum un typage fort imposé (pas trop de "la VM/l'interpréteur choisit" ou de "on fait tout dans des strings", parce que c'est typiquement le genre de choses qui font que des bugs traînent avec moi, et j'ai pas trop envie de buter sur des spécificités du langage)

je sais pas si c'est ici que je dois poser cette question, mais dans le doute, que quelqu'un le dise, je la reposte ailleurs.

EDIT: à tout hasard, je viens d'avoir une idée, mais je sais pas trop qu'en penser: utiliser une carte "type raspberry Pi" (la mienne est un peu plus costaud, cf: cubieboard 2 ) que je configure proprement, ça je sais faire, et faire se connecter les élèves en ssh, voire carrément avec une session VNC. le groupe fera surement moins de 10 élèves, j'aimerais juste savoir si vous pensez que la carte va supporter sans trop ralentir.

remace

Hey! Alors, l'idée qui me vient la tout de suite c'est Python.

Il doit y avoir des versions portables de l'interpréteur qui traînent (et si tu utilises un raspberry ou quoi, python est dans les dépôts de la plupart des distributions «civilisées»). Par contre, c'est un langage à typage dynamique, mais il ne faut pas que ça te rebute, c'est un bon langage pour débuter (et il est relativement amusant à apprendre et à utiliser, ce qui est un plutôt bon point pour les grands débutants). Et la syntaxe n'est pas trop rebutante (il faut juste utiliser un éditeur qui gère bien l'indentation, mais sinon… ^^).

+0 -0

merci de cette réponse ultra-rapide!

python j'y avais pensé, mais c'est vrai que je connais très peu (trop peu, même…). malheureusement, c'est justement ce langage là qui m'a fait ne pas aimer (du moins ne pas apprécier à leur juste valeur, certains diront) les langages trop permissifs et/ou autonomes avec le typage. c'est donc précisément ce type de langages que je voulais éviter, parce que vu que c'est moi qui anime le groupe, j'aimerais bien être à l'aise avec les ressources que je suis censé apporter.

ceci dit, l'interpréteur portable existe et fonctionne. et sinon, il me semble que python est intégré à la distribution que j'utilise sur ma carte embarquée, donc ce que tu dis est une bonne idée, à part que j'y connais rien en python…

donc je garde quand même ta solution en attendant qu'un autre éventuel sauveur passe et propose quelque chose qui m'ira mieux.

j'avais aussi pensé à processing, mais l'IDE est vraiment dégueu', et surtout je sais pas si y'a une version portable (ça doit nécessiter un JRE pour marcher, vu que c'est fortement basé sur java, mais ça me parait possible qu'ils aient fait un truc autonome).

+0 -0

Ce serait dommage d'éliminer trop vite python, c'est simple à apprendre et à faire des choses avec (donc pour les collégiens et leur attention difficile à capter c'est ptet mieux). En plus ca oblige à faire propre puisque l'indentation est nécessaire.

Après sinon pourquoi pas avoir un jeu de live USB avec une distrib' pas trop lourde comme XUbuntu ou LUbuntu ?

+4 -0

Que tu partes sur une session ssh ou un jeu de LiveUSB, dans les 2 cas tu as très très facilement gcc (donc C/C++/Ada/Objective-C, notamment). Après, niveau éditeur, si tu es parti sur du notepad++, gedit permettra de faire la même chose (mais suppose que tu es avec des LiveUSB ou que tu as plein de sessions X dans un tunnel ssh).

Après, vu comme ça, j'irais bien dans le sens d'eskimon, mais ça dépend de tes contraintes.

Aussi, on ne sait jamais, ceci pourrait servir, enfin en tout cas il m'a rendu de fier service une paire de fois (tu claques ça sur un clé USB (la tienne peut-être ?) comme ça tu ne sort pas de la salle info pour la dev), tant pour servir de "presse-papier cloud" (olala, c'est moche comme nom !), que pour pouvoir, ponctuellement, développer le même module à plusieurs.

Bonne soirée !

+0 -0

Eskimon: justement, c'est pas python, le probleme, c'est moi. et comme l'animation est censée commencer dans pas longtemps, j'ai pas trop le temps de m'y mettre sérieusement, sans même compter les spécificités du langage (l'indentation importante aussi, ça me gène :P j'ai jamais su indenter mon code proprement, et si y'a des bugs qui apparaissent à cause de ça, je vais mettre longtemps à les voir…)

le live USB permet de garder tes données sur la clef? (encore faut-il arriver à booter dessus, mais c'est une bonne idée que je garde, et qui simplifie pas mal mon probleme)

dosmpm: comme je l'ai surement dit, c'est pas l'éditeur qui me manque, c'est l'interpréteur/compilateur/VM. j'essaye etherpad quand même, et je te dis mieux. edit: tu connaitrais des modules "d'aide à la programmation" (coloration syntaxique, autocomplétion, etc…) pour cet éditeur?

+0 -0

encore faut-il arriver à booter dessus

Les PCs auront quel âge ? On pourrait t'orienter sur quelque chose qui devrait marcher tout seul (ou pas :p …)

tu connaitrais des modules "d'aide à la programmation" (coloration syntaxique, autocomplétion, etc…) pour cet éditeur?

Alors, tu vois, j'ai toujours utilisé etherpad en "vanilla", donc avec mon code comme sur notepad. J'avais jamais pensé qu'il y avait des extensions !! Quel boulet je fais. Bref, j'ai cherché sur la page d'admin des plugins, et codepad m'a l'air très adapté : coloration syntaxique, auto-indentation, une petite dizaine de langages dispos.

Un petit screenshot:

Etherpad avec extension codepad, coloration Cpp

+0 -0

Je pense que le c++ est une bonne option avec le java. Mais dans les deux cas tes élèves vont ramer sans ide.. (pas de debugger pratique :/) Du coup… J'avais penser à javascript mais bon, je ne le connais que de vu.. Je sais pas si c'est une bonne idée :/

Sinon pour l'éditeur, il y a SublimeText que j'aime pas mal, en plus tu peux gérer plusieurs fichier, il y a une coloration de la syntaxe pas mal, etc. Tu peux même compiler mais pas de debugger non plus ^^. Et sublime fonctionne avec tout les langages inimaginable, et si tu prends un langage chelou, tu peux télécharger des trucs avec le package controller (je t'invite à googler).

Bonne chance !

Mais c'est pas "vraiment" typé

Pour avoir été obligé de faire mon projet d'ISN en js, oui, c'est pas "vraiment" typé, effectivement.

En fait, le js n'est pas si mal pour faire de la prog', d'autant plus que s'ils veulent aller un peu plus loin et faire un beau site avec du zoli CSS, des zolis zimages, etc, c'est bien pratique, puisque leurs connaissances du js est directement utilisable (= ils n'ont pas à apprendre les bases du js en plus de faire la dev du site en question).

Ce n'est pas le sujet de ce topic, mais, d'après mon expérience, j'ai un reproche objectif à faire au js (le reste des reproches, c'est nettement plus subjectif :p ) : vu comme le langage est fichu, ça peut inciter les jeunes programmeurs à prendre de mauvais réflèxes.

qui tournera sur des PC à la ramasse

Tout dépend, bien entendu, de ce que tu fais derrière.

+0 -0

thunderseb: pour js, même inconvénient que python, je connais pas très bien, mais HTML et CSS vont me donner un peu de temps pour regarder de plus près le langage, du coup ça se tente. en fait, j'avais prévu de leur laisser le choix entre développement web et "application locale" (console/windowsForms, suivant ce qui est possible et ce qui ne l'est pas).

dosmpm: ok merci! au pire j'amenerai un PC portable qui a tout ce dont j'ai besoin, et je ferai les compilations moi-même.

+0 -0

Commencer la prog par le JS, je suis pas sur que ce soit une idée de ouf (même google essaye de s'en débarasser, notamment avec dart)

CheapSeth

Au contraire, JS est plus que jamais sur le devant de la scène : AngularJS, Node.js, extensions pour Chrome/Firefox, PhoneGap… Je pense qu'apprendre le JS n'est pas une mauvaise chose, car c'est assez polyvalent.

ET comme le dit dosmpm, faire une interface en HTML est très facile/rapide, donc si son projet se destine à des néophytes, c'est un plus. Faire des applis console, c'est franchement pas le truc le plus fun qui puisse exister.

Attention avec les live USB : si les PC de l'établissement sont bien configurés, ils ne devraient pas booter dessus (pour des raisons de sécurité).

Bibibye

c'est là que je voulais en venir avec "pour un peu qu'on puisse booter dessus"

Faire des applis console, c'est franchement pas le truc le plus fun qui puisse exister.

Thunderseb

oui, mais c'est aussi le seul truc "efficace dans le temps" de possible quand on part de 0.

bon sinon, je passe le sujet en résolu, j'ai quelques réponses qui me vont, j'ai un peu regardé toutes vos propositions, je verrai après avec les élèves ce qu'ils préferent, et ce qui est possible, et on verra ensemble.

dans l'ensemble, je pense que je vais me tourner vers les langages web (de toute façon, y'a de grandes chances que ça fasse des résultats plébiscités sans même que j'aie à truquer), parce que ça leur laissera aussi de quoi présenter leurs résultats, éventuellement pour les journées portes ouvertes sur un PC en local, ou même faire un "big site" diffusé sur internet pour ça.

+0 -0

Est-ce-qu'une "web console" pourrait résoudre certains de tes soucis ?

Soit ils codent dans un éditeur de texte (mais ça t'auras aucun soucis à en trouver une version portable) et ils copient / collent dans un textarea et cliquent sur "Run". Soit ils codent directement dans une interface web (pas très pratique pour les tabulations parfois, mais on doit pouvoir trouver un truc qui fonctionne). Donc pour IDE / éditeur => ça sera pas le soucis

Exit les applications graphiques, ça fonctionnera sans doute pas.

Moindre effort pour toi si tu récupères une webconsole "toute faite". Ça peut être intéressant de développer toi-même la webconsole cela dit si ça t'amuse. Dans tout langage qui "embarque" son propre interpréteur

Ça dépend complètement de ce que tu veux leur faire faire.

Pour donner des exemples je suis allé taper du côté de ce que je connais donc voilà pour un exemple en Groovy et c'est pas très compliqué à développer avec ce langage. Je suis certains que plein de langages te permettront de faire ce genre de trucs. Reste à voir si ça remplit tous tes besoins.

+0 -0

Dans tous les cas, pour projecteuler.net, tu peux toujours utilisé ideone.com ou encore codepad.org. Pour le projet Euler c'est souvent suffisant, tu as juste besoin de compiler un code et c'est exactement ce qu'on te propose.

Sinon, ça reste une solution de secour.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte