Organiser des défis/exercices de programmation

a marqué ce sujet comme résolu.

Salut,

On peut aussi de temps à autre ajouter des ateliers un peu plus complexes comme implémenter une idée jusqu'au bout. Mais ça sera plus long aussi bien pour l'organisation que la réalisation.

Sorrow

On peut deja faire des choses assez complexes et utiles avec les notions citees. Quand est-ce qu'un algorithme glouton est optimale ? Ce qui oblige a parler d'ensemble d'independance et de matroide par exemple. Pour les algorithmes de parcours de graphe il y aussi plein de questions sympathiques.

Je dois avoir pas mal de choses la dedans, qui mele a la fois exercices pratiques et questions theoriques sous forme d'exercice.

Je pense qu'il faut s'accorder sur le type d'exercice recherche. Soit de la programmation (connaissance et pratique d'un langage), soit de l'algorithmie (on peut avoir un bon algo sans rentrer dans les détails d'un langage). Du coup le but recherche n'est pas tout a fait le même, même si les deux sont liés.

Perso je suis plus partisan d'exercice funky et programmatique que d'exercice oriente algo. Pourquoi ?

Tout simplement parce que un exercice facile peut attirer beaucoup de monde car le niveau d’entrée n'est pas effrayant MAIS les plus expert pourront toujours s'amuser a sortir des solutions exotiques qui leurs auront fait chauffer les neurones. Cela implique que l'exercice n'est pas fondamentalement base sur de l'algorithmie mais bien de la programmation (après on peut varier au cours du temps).

Quelques exemples :

+0 -0

Ou peux-être l'idée serait alors d'envisager plusieurs parcours possibles ? Chaque mois, deux types d'exercices sont proposés :

  • un qui est pour le fun, juste de la programmation
  • un autre qui est un peu plus théorique et qui demande ou fait découvrir une nouvelle notion

Pour des exemples:

Il y a aussi toujours les grands classiques : les jeux à deux de type puissance 4, morpion, tic-tac-toe. La version de base permet à deux joueurs de jouer. Les versions évoluées permettent de gérer des joueurs qui sont ailleurs (réseau, ou IA). Et pour les IA il y a les extrêmement classiques min-max/negamax avec alpha-beta, ou des trucs plus dédiés quand une solution ultime est connue – ce qui réduit à néant l'intérêt quand on veut faire s'affronter des IA.

Après il peu y avoir des jeux de société moins classiques (p.ex. Mr Jack Pocket est sympa à la base) et qui vont demander plus de modélisation (malgré l'utilisation des grands classiques dérivant du minmax), mais là, attention aux droits (ce qui exclut toute publication d'une réalisation logicielle de Mr Jack Pocket)

Et il y a un moment je pensais proposer un solveur pour Ricochet Robot. Cependant, ce n'est pas abordable pour les débutants : une part non négligeable de modélisation est requise.

@lmghs : Pour le coup, je trouve que tes exemples se rapprochent plus de petits projets assez classiques et je ne vois pas en quoi le fait de créer un cadre serait intéressant. Le puissance 4 a d'ailleurs été tenté, et il y a eu peu de réponses.

Cependant, cela peut aussi être intéressant de proposer des mini-projets à réaliser.

On en arrive à un point où il y a eu différentes idées intéressantes mais concrètement c'est encore difficile de savoir ce qui sera adopté par la communauté. Probablement qu'il faudra faire des tests.

Ce que je retiens à ce stade :

  • Faire un topic qui recense les exercices proposés
  • Proposer des exercices intéressants de façon régulière
  • Proposer différents types d'exercices. Certains plus axés sur la programmation, donc probablement des exercices centrés sur des paradigmes de programmation (fonctionnel, objet, impératifs) ; mais aussi des exercices axés un peu plus algorithmiques
  • Pour des exercices un peu longs, proposer une découpe en plusieurs étapes/niveaux

J'ai peut-être oublié des points importants, mais c'est ce qui me vient en tête. Merci de signaler des oublis si vous en voyez ou bien tout simplement si vous n'êtes pas d'accord avec ce petit résumé.

Pour des exercices un peu longs, proposer une découpe en plusieurs étapes/niveaux

Je dirais même qu'à moins d'un exercice du style jeu de la vie où en fait c'est difficile de faire des niveaux de difficultés, il faudrait s'obliger a faire plusieurs niveaux

Salut à tous, Je serais intéressé pour organiser des défis/exercices. Je pense que zds pourrait creer une section spécifique pour ne pas encombrer les autres forums et donner une bonne visibilité aux sujets. En ce qui concerne les exos on pourrait reprendre des choses simples déjà existantes et proposer en exercice de l'ameliorer (un peu comme pour space bitton) avec ou non un code donne (le problème est la variété des langages qui serait réduite).

Si les PO d'un exo détiennent la solution (ou une solution) qu'il n'hésitent pas à le faire savoir quelques semaines/mois après la publication du sujet de l'exo.

Dans la démarche, ça me fait penser à ça : http://rosettacode.org/wiki/Category:Solutions_by_Programming_Task

Le nombre d'exos est impressionnant, de tout niveau, et sur tout les sujets.

En tout cas excellente initiative !

+0 -0

Bonjour,

Ce qui est important à mon sens pour rendre un exercice intéressant et attractif pour le plus grand nombre, c'est de laisser un maximum de choix aux participants : choix du niveau, mais aussi du langage, du type de réalisation, etc. Ceci permet à chacun de trouver l'approche qui l'intéresse sur un thème donné, et d'apporter sa contribution de façon originale.

Les exercices trop directifs sont moins intéressants et sans doute beaucoup moins attractifs à mon sens. Je pense que le concept d'atelier est préférable.

Hello

J'ai pas lu toutes les réponses, mais à mon avis créer des événements de façon récurrentes demande beaucoup de boulot et surtout une communauté importante. Dans l'état actuel des choses ça me parait un peu lourd pour pas grand choses.

Par contre des ateliers comme celui d'Eskimon ça ma parait sympa : quelques règles de base avec plusieurs choix derrière quand même.

Le petit plus aussi, qui peut être intéressant : ne pas donner de délais, mais plutôt récompenser les meilleurs créations quand il y a un panel suffisant de nouveautés. Par exemple tous les 10-15 participants on élit le meilleur parmi ceux-ci, tout en autorisant les anciens à participer de nouveau (avec une nouvelle version évidemment).

Ça permet de garder une base cohérente d'ateliers, tout en s'autorisant à les renouveler de temps en temps (parce que bon, au bout de six mois on tourne vite en rond) quand même. Et surtout ça fait moins de travail que de créer un projet nouveau de façon régulière tout en changeant de thème.


Edit : Bon, en me relisant je me dis que c'est peut-être pas super clair ce que je raconte. Donc si vous comprenez pas, c'est normal. ^^

Je ne suis pas sûr mais ton idée se rapprocherais du dernier atelier qu'il y a eu sur le forum C de openclassroom ? C'était sur un automate cellulaire. Normalement prévu pour un mois il est toujours là plus d'un an après ^^

Je pense que tu as raisons, la communauté n'est pas suffisamment importante. Ceux qui veulent s'exercer le font déjà seul. En revanche quelque chose que j'avais bien aimé et que l'on pourrait démocratiser est de participer à des jeux de codding tous ensemble. Le meilleur exemple reste LeekWars, mais sur CodinGame entre autre je pense que l'on pourrait faire des choses sympa !

Je déterre ici parce que l'idée était vraiment intéressante. Il y a toujours des motivés pour organiser des sessions d'exos/défis ? Si oui, n'hésitez pas à contacter quelqu'un de la comm' (Taguan, elyppire ou moi-même) pour donner un peu de visibilité au truc (liens sur FB/Twitter, mise en avant sur la page d'accueil…). :-)

+0 -0

C'est vraiment une bonne idée. Si des personnes sont intéressés, on pourrait lancer les Défis de Clem, comme suggéré plus haut. Je veux bien me charger dans un premier temps de l'ouverture du topic/présentation si c'est nécessaire.

Il y a en effet plein d'idées d'exercices à mettre en place, comme par exemple un algo pour résoudre/générer des sudokus, qui pourrait faire écho à l'article de yoch récemment publié sur le sujet.

Oui, ce serait un plus pour la communauté !

Emeric, en plus j'ai une correction très sympa (et très tordu) pour le Sudoku !

Je veux bien t'aider à faire le premier, par contre je pars en vacances pendant 2 semaines là. Et puis la fréquentation pendant les grandes vacances est moins grande (je suppose) qu'à la rentrée. Mais je suis motivé pour faire les défis de clems !

Ça me parait pas mal. Donc ce serait 1 défi par mois à partir de la rentrée. J'étais aussi en train de me questionner sur le format le plus approprié.

Si on utilise le forum, il y a deux grandes possibilités :

  • un seul et même topic où sont regroupés tout le défis. Le désavantage de cette solution c'est qu'après quelques mois, le topic risque de devenir assez long, donc plus difficile de s'y retrouver.

  • ou alors, un sujet pour chaque défi. Ça permettra de ne pas mélanger les discussions, et de pouvoir continuer à en parler même après la date limite d'un mois. Pour permettre de s'y retrouver, il faudrait créer un topic qui regroupe les liens vers tous les défis.

Perso, je pencherais vers la deuxième solution.

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