Club programmation en collège

Bonjour à tous,

Suite à ma récente prise de poste, j’aimerais en profiter pour faire faire un peu de programmation avec des élèves dont l’age pourra varier de 13 à 15 ans en moyenne. Parmis eux certains ont un fort intérêt pour la conception de petits jeux vidéos.
À condition que l’administration informatique en ait la possibilité, quels logiciels de développement conseilleriez-vous (sous un environnement windows…)?

Ce serait pour faire du python avec pygame (ça me paraît le plus simple à leur âge).

Au passage, si vous avez des idées pour aborder la chose avec les élèves, voire des idées de projet, n’hésitez pas à m’en faire part :slightly_smiling:

vim/gvim… C’est un excellent IDE !! :think: peut-être pas pour des collégiens…

geany ? notepad++ ?

Je pense que ça peut être pas mal de montrer qu’on peut faire de la prog avec n’importe quee éditeur de texte. Avec mes débuts en auto-didacte et projet d’école d’ingé en Visual Basic/Visual Studio/Delphi, j’ai eu assez de mal à le comprendre. Si tu pouvais leur rendre ce service, ce serait top : découpler l’éditeur de texte, du compilateur, permettre de lire les erreurs depuis la sortie du compilateur sans pré-machage, apprendre à ajouter des « prints » bien sentis pour traquer le bug… L’incontournable c’est la coloration syntaxique.

Framasoft recommande : http://www.framasoft.net/rubrique443.html

Sinon envisages-tu du travail collaboratif avec un gestionnaire de version ? git/svn ? Ça peut être compliqué, mais intéressant, mais compliqué… Je souhaiterais avoir ton avis là-dessus.

Il y a pas mal d’editeurs, voici un liste
wiki.python.org/moin/PythonEditors

je suis de même avis que bobo38. Avec VIM, tu perdra de temps pour leur enseigner comme l’utiliser. en plus c’est fastidieux pour un amateur :mrgreen: .
je propose une editeur avec un GUI comme GEANY, ou ECLIPSE (tu peux lui integrer le python avec py-dev)
mais, si tu insistes sur l’utilisation de terminale, NANO est plus simple .
pour les cours , tu peux t’inspirer des cours présentés sur SITEDEZERO.
Il y a deux autres livres, gratuit sous forme PDF, en anglais sur comment créer un jeux en python
“Making Games with Python & Pygame” du Al Sweigart
“Invent Your Own Computer Games with Python” du même auteur
tu peux les télécharges, ils sont disponnibles sur ce site :
inventwithpython.com/blog/

Il sera peut-être utile de faire une petit introduction sur les algorithmes, Avant même d’introduire le language, ce n’est que mon avis, c’est comme ça qu’on m’a enseigné.
bonne chance

Côté ressources pédagogiques, il y en a aussi en Français, et des libres :
https://fr.wikibooks.org/wiki/Apprendre_%C3%A0_programmer_avec_Python
http://inforef.be/swi/python.htm

D’ailleurs dans le bouquin que m’a donné un pote, l’auteur recommande SciTE : Scintilla Text Editor (coloration syntaxique, auto-complétion et repli de code… L’auteur est enseignant en belgique et semble se servir de cet ouvrage comme support de cours.

Geany : freeware et disponible sur toutes les plate-formes.
Nous avons wing ide à l’école, ils fournissent des licences gratuites pour l’enseignement, suffit d’envoyer un email, mais ça me paraît délicat avec des élèves de collèges.

Pas simple la POO à cet âge, mais si ils sont motivés :slightly_smiling:

Plein, tout plein d’idées, j’enseigne ça depuis des années, mais là je suis sur les genoux, alors ce sera pour ce week-end, désolé.

Merci pour vos réponses!
Alors je précise que ce sont des élèves de collège. Ce sera leur première approche de l’algo, et point de vue informatique ils ne connaissent que Windows très certainement.
Cela excepte donc toute solution d’applications en console, vim, et très certainement l’utilisation d’un gestionnaire de version. Certe, ces outils sont excellents, mais je ne pense pas à la porté des élèves de collège.

Noté pour geany, c’est un logiciel que je connais en plus donc ça devrait aller.
Pour python/pygame, savez-vous si ça s’installe bien sur windows (le conseil général va devoir valider avant…)?

@arnaud_k : Merci beaucoup! Je compte sur toi, repose toi bien en attendant :wink:

[quote=“thuban”]Merci pour vos réponses!
Alors je précise que ce sont des élèves de collège. Ce sera leur première approche de l’algo, et point de vue informatique ils ne connaissent que Windows très certainement.
Cela excepte donc toute solution d’applications en console, vim, et très certainement l’utilisation d’un gestionnaire de version. Certe, ces outils sont excellents, mais je ne pense pas à la porté des élèves de collège.

Noté pour geany, c’est un logiciel que je connais en plus donc ça devrait aller.
Pour python/pygame, savez-vous si ça s’installe bien sur windows (le conseil général va devoir valider avant…)?

@arnaud_k : Merci beaucoup! Je compte sur toi, repose toi bien en attendant :wink:[/quote]

Tu sais, tes éléves ont de la chance d’avoir un enseignant comme toi.
Lors que j’étais au lycée, Ils m’ont enseigné que MS OFFICE, Excel, power point :078 c’est vraimment ennuyeux.
Bon, je ne dis que c’étais inutile :unamused: , mais un cours sur la programmation des jeux aurait me motivé beaucoup plus.

Tu parles de “cours”. À vrai dire je n’envisage pas les choses comme ça tout à fait. C’est censé être un club sur le temps du midi, donc il faut du fun!
Je ne suis pas certifié en informatique mais en physique chimie, du coup je suis sûr de faire des erreurs si je veux leur faire un cours sur la “programmation”. J’aimerais cependant leur montrer que ça peut être très amusant :slightly_smiling:

Hey au fait : FÉLICITATIONS POUR TA PRISE DE POSTE !

J’anime également un club d’informatique dans un lycée, depuis quelques années (enseignants-faire-decouvrir-gnu-linux-t31513.html). Mais contrairement à ton club, la programmation n’est pas au coeur des activités.
Voici ce que je fais avec eux:

  • Qu’est ce que GNU-Linux? démonstration avec live-usb (clé ISN que j’utilise tous les jours pendant mes cours - MERCI fran.b :wink: ) youtube.com/watch?v=zr6qtwJTCQ0

  • installation et utilisation de live-usb (slax, linuxliveusb.com/ et distribution au choix)

  • préparation d’un PC pour installation GNU-linux (partitionnement avec Gparted)

  • installation d’ubuntu sur PC à partir d’un réseau local autonome avec des vieux PC (gerer-un-reseau-sans-internet-t23915.html)

  • administration graphique et en ligne de commande
    et l’année prochaine, je pense introduire Raspberry:

  • media center avec openelec

  • installation de raspbian, administration en ligne de commande, prise à distance par ssh
    ( D’après les premiers echos, Raspberry semble très attractif! :sunglasses:

    La première partie de l’année (live-usb) fonctionne très bien. Par contre, J’essaye de ne pas trop les gaver avec les lignes de commande, car certains décrochent assez vite. je leur montre juste les bases.
    Nous avons également fait un peu de programmation python: cela fonctionne plutôt bien également. Mais ce sont des élèves de Première et de Terminale.
    En ce qui concerne les élèves de collège, penses-tu qu’ils soient assez matures (intellectuellement) pour apprendre la programmation Python)?

    Au fait je suis rémunéré pour le club avec des heures péri-éducatives. Pour cela, il faut monter un dossier que l’on présente au rectorat.

    je suis vraiment heureux que tu te lances dans ce type d’initiative. :041

En fait, l’idée vient des élèves (bien qu’ils ne le sachent pas encore). En début d’année, je leur ai proposé un petit questionnaire à me rendre pour mieux les connaître, et parmis les questions posées, il y avait :
“qu’as-tu envie de connaître que tu ne sais pas encore?”.

Entre toutes mes classes de 5e, 4e et 3e, j’ai relevé quelques “j’aimerais apprendre à programmer” et “j’aimerais savoir faire un jeux vidéo”.
Du coup je me suis dit, pourquoi pas?

Cependant, comme tu le soulignes, niveau maturité, ça risque d’être difficile. J’en ai parlé un peu avec d’autres enseignants, plus chevronnés, dont les enseignants de math. Il semblerait que oui, ça peut être difficile, mais les élèves ont à cette age une curiosité débordante. Du coup, si ça leur plaît, alors j’imagine que ça aidera déjà beaucoup.

Le plus important sera de très vite faire du concret, et apprendre au fur et à mesure des besoins. Pas facile… Déjà le document donné en lien plus haut (inventwithpython.com/IYOCGwP_book1.pdf) propose une approche intéressante (plus de 400 pages par contre, ça va prendre du temps).

Côté rémunération, il y a apparemment un petit geste du FSE. Mais bon, c’est vraiment pour tenter l’expérience, et pouvoir cotoyer les élèves dans un autre contexte.

[quote=“thuban”]
Côté rémunération, il y a apparemment un petit geste du FSE. Mais bon, c’est vraiment pour tenter l’expérience, et pouvoir cotoyer les élèves dans un autre contexte.[/quote]
Je pense que tu pourrais également bénéficer d’heures péri-éducatives, payées par le rectorat, à condition de monter un dossier rapidement. Renseignes-toi, cela peut valoir le coup. Tout travail mérite salaire… tout en sachant que cela n’est certainement pas le moteur de ta motivation. :wink:

Pour les tout petits (cinquième) j’avais travaillé avec scratch du MIT une époque… Ils avaient bien adhéré.
Tu peux essayer ça comme première approche, ça permets d’écrire facilement et simplement des algos sans se prendre la tête avec la syntaxe du langage vu que la syntaxe est pour ainsi dire "visuelle"
Scratch, basé sur squeak:

:doh: Je trouve que tu es bien ambitieux.
Au collège j’utiliserai : algobox, Scratch

un lien que j’aime bien http://www.france-ioi.org/

[quote=“limax”]:doh: Je trouve que tu es bien ambitieux.
[/quote]
Ça je n’en doute pas… :confused:
Merci, c’est un lien très intéressant!

J’avais commencé à répondre hier soir, mais la nuit a été relativement mauvaise, mes enfants étant malades. Mais comme j’avais promis de répondre ce week-end…

Tout comme limax, que je remercie au passage pour son lien intéressant, je crains que ce soit un peu difficile. Enfin bon, c’est difficile d’évaluer le niveau et la motivation des élèves.

Si algobox et scratch permettent de bien travailler le pseudo-code, et si j’ai bien compris tes objectifs, il me semble que ce serait plus réaliste de travailler avec un langage et avoir de réels résultats ( graphiques ). Personnellement je me suis tourné vers python et je ne regrette pas.
Comme dit plus haut, nous travaillons avec geany et wing ide à l’école ( sous xubuntu ).

Prenons l’un des jeux les plus simples que je connaisse : deviner un nombre entre 1 et 1000.
Rien que pour ça en mode console il faut connaître le test conditionnel, la boucle et l’utilisation du module random. Pas simple pour un collégien.
Avec un autre jeu, par exemple le pendu, toujours en console, il faut rajouter l’utilisation des chaînes de caractères.
Pour une interface graphique, tkinter ou pygame probablement, il faut encore apprendre manipuler les objets, théorie exclue bien entendu.

Personnellement, je pense qu’aborder pygame est utopique, et que tu pourras largement te contenter de tkinter. Mais bon, si je me trompe, je serai content d’avoir un retour en fin d’année et voir tes projets réalisés :slightly_smiling:
N’empêche que même avec tkinter, faut aborder deux notions essentielles pas évidentes :

  1. le mouvement des éléments avec modification au clavier ou souris,
  2. la collision des éléments.

Voici un livre que j’ai acheté pour m’intéresser aux jeux en python ( avec tkinter ), parce que je trouvais que je faisais des exercices trop théoriques ( bref, y a pas que les maths dans la vie ) : amazon.fr/Apprendre-Programm … 2729877827

Je n’adhère pas spécialement à la “pédagogie” développée dans le livre, mais il déborde de motivation, d’exercices et d’idées de projets, ce qui donne envie de tenter l’expérience avec des élèves.

A partir du moment où les élèves connaissent l’utilisation de random, tu peux simuler tous les jeux de dés. Et si en plus ils manipulent les listes et chaînes de caractères, tu peux y ajouter les jeux de cartes ( par exemple chaque joueur tire une carte au hasard et la plus grande valeur gagne ).
Tu peux aussi, toujours en mode console, simuler une roulette de casino, une machine à sous.
Bref, il y a déjà pleins d’idées de ce côté là pour commencer à comprendre l’utilisation des tests et boucles.

Ensuite, pour chacun de ces jeux, il est possible de rajouter une couche graphique, plus ou moins évoluée. Cela permet aux élèves de s’approprier un nouveau module.

L’un des premiers jeux en graphique que je fais est le tirage aléatoire de 4 couleurs, symbolisé par 4 carrés : si il y a trois couleurs identiques, 50 points, si il y a quatre couleurs différentes, 100 points, si il y a deux couleurs identiques, 20 points, si la couleur noire apparaît, -30 points, etc…

Et après on arrive au Graal : bouger des formes.
Je commence en général par leur faire dessiner un carré de couleur sur fond noir qu’il faut faire bouger au clavier dans toutes les directions, puis je rajoute un autre carré d’une autre couleur pour leur apprendre à gérer les collisions et afficher un texte si il y a collision.
Conjointement avec le module random, tu peux alors faire “tomber” des carrés de couleurs de manière aléatoire, et le joueur, avec une barre rectangulaire au bas de la fenêtre, doit éviter toutes les couleurs sauf une de ton choix.

Tout ça c’est déjà pas mal de boulot, mais ce n’est pas tout, car tu peux faire un peu d’interdisciplinarité avec la physique en réalisant des projets avec le raspberry, ce que je trouve intéressant et motivant pour les élèves.
Par exemple simuler un système feu rouge ( forum.pcinpact.com/topic/165594- … des-trucs/ )

Désolé si je suis parti un peu dans tous les sens, j’avoue avoir autre chose en tête là.

Ne sois pas désolé arnaud, c’est déjà super sympa, et très riche :slightly_smiling:

Je ne doute pas me lancer dans un projet qui risque d’être compliqué. Cependant je ne vais pas le cacher aux élèves avant qu’ils s’inscrivent à ce club.
J’espère aussi réussir à mélanger toutes vos bonnes idées pour rendre les choses plus simples pour eux.

C’est vrai qu’en y repensant, pygame, c’est pas super évident… Ou alors ça m’impose de leur préparer les choses de mon côté en avance, chose que je n’aurais pas forcément le temps pendant mon année de stagiaire.

Quoi qu’il en soit, un grand merci à tous!

arnaud : file t’occuper de tes petits bouts, je ne voulais pas te mettre une telle pression :wink:

[quote=“thuban”]En fait, l’idée vient des élèves (bien qu’ils ne le sachent pas encore). En début d’année, je leur ai proposé un petit questionnaire à me rendre pour mieux les connaître, et parmis les questions posées, il y avait :
“qu’as-tu envie de connaître que tu ne sais pas encore?”.

Entre toutes mes classes de 5e, 4e et 3e, j’ai relevé quelques “j’aimerais apprendre à programmer” et “j’aimerais savoir faire un jeux vidéo”.
Du coup je me suis dit, pourquoi pas?[/quote]
Ne présume pas trop de leur motivation. Faire des jeux, je connais un tas de gens qui voulaient faire ça de leur vie et qui ont arrêté leurs études d’informatique un peu trop tôt pour pouvoir aller chez ubisoft.

Les premiers cours ne peuvent que difficilement être du jeu vidéo. Personnellement j’ai commencé à apprendre la programmation seul avec ma TI82 entre les mains et mes algo de maths sur la table. Implémenter un pgcd c’est toucher aux variables, aux boucles et aux conditions tout en restant dans les entiers. Bon j’ai toujours adoré les maths…

Sinon comme jeux graphique, simple, il y a le gaufre empoisonnée. Il y a une grille qui représente la gauffre, la case en bas à gauche est empoisonnée, pour manger la gaufre on clique sur une case (x, y) et ça mange toutes les cases (i<=x, j<=y).

C’est clair. Le “jeu video”, ça sera en fin d’année, et ce sera très modeste. Ils seront tout de suite prévenus que ce n’est pas un club de graphisme.

[quote]
Sinon comme jeux graphique, simple, il y a le gaufre empoisonnée. Il y a une grille qui représente la gauffre, la case en bas à gauche est empoisonnée, pour manger la gaufre on clique sur une case (x, y) et ça mange toutes les cases (i<=x, j<=y).[/quote]
Je ne suis pas sûr de bien comprendre. Le but est de manger la gauffre en entier, sauf la case empoisonnée?

[quote=“thuban”][quote]
Sinon comme jeux graphique, simple, il y a le gaufre empoisonnée. Il y a une grille qui représente la gauffre, la case en bas à gauche est empoisonnée, pour manger la gaufre on clique sur une case (x, y) et ça mange toutes les cases (i<=x, j<=y).[/quote]
Je ne suis pas sûr de bien comprendre. Le but est de manger la gauffre en entier, sauf la case empoisonnée?[/quote]
Tu as déjà regardé fort boyard ? Dans les jeux il y en a un où le joueur est face à une « maître du temps » et un paquet de batonet chacun leur tour ils doivent prendre 1, 2 ou 3 batonnet mais ils perdent s’ils prennent le dernier.

Là c’est le même principe comme tu mange tout ce qui est en haut à droite de la case sélectionnée et que la cas empoisonnée est en bas à gauche, c’est forcément la dernière case mangée.