ZEP-10 Module d'exercices

Car apprendre c'est bien, pratiquer, c'est mieux !

a marqué ce sujet comme résolu.

Y'a ça sachant que la liste me semble furieusement pas à jour. Je crois que certains projets ont été abandonnés.

Après si tu me trouves un truc propre à installer (partout), sans avoir besoin de 95 dépendances à installer à la main, qui cloisonne proprement l'environnement, qui soit "invocable" depuis un langage que je connais et qui donne des résultats propres moi ça me va complètement ! Je plug une API dessus et roulez jeunesse.

+0 -0

Bonjour à tous !

je me sens bien de prendre en charge cette ZEP MAIS il me faudra quelqu'un quoi qu'il arrive (et si possible quelqu'un qui n'est pas actuellement sur une zep.

J'ai envie de la prendre en charge mais j'ai surtout une sorte de "plan d'attaque" pour mettre cela en place et augmenter la force de zds dans le monde de l'opensource (tout ça compris).

étape numéro 1 Embrace and extend

Mon principe est simple : on va faire une application django à part qui sera une extension et qui ne fera pas partie du coeur de zds. Pourquoi cela? Gérer le projet de manière indépendante en donnant une porte d'accès au monde de l'open source à ce projet. En effet, le projet zds est trop complexe, trop gros et il fait peur (en plus d'être francophone). Ici on fera donc un truc assez large.

Cette extension sera elle-même développée selon un mode coeur + plugin. Du moins je pense que c'est la meilleure manière de faire car là on a trop d'idées pour être crédible. L'expérience de la zep 12 qui a une gestation de 1 an m'a fait dire qu'il faut absolument qu'on sorte des bouts de module Rapidement. Donc voilà le principe de base :

  1. Création du coeur, c'est à dire la logique qui permet le concept d'exercice, avec une note à la fin et un processus de correction (processus qui peut être automatique, manuel, pair à pair…) estimation : 2 mois
  2. Création du premier plugin : QCM estimation 2 semaines
  3. Création du second plugin : réponse ouverte avec correction manuelle puis avec correction automatique estimation 2 semaines

Etape numéro 2 : killer feature

ICI on aura besoin des gens du front pour commencer l'intégration à zds

  1. intégration des exercice JSFiddle : estimation : 1 mois
  2. Intégration d'exercices à correction automatique multi techo estimation 4 mois
  3. intégration d'exercices à correction par les pairs estimation 2 mois

Vous vous demandez peut-être pourquoi le sixième est la correction par les pairs?

  • car il suppose une intégration au système de membre qui va plus loin que les autres
  • car il suppose beaucoup d'interaction utilisateur et que l'UX est un domaine sur lequel zds manque de compétences
  • car il suppose beaucoup de vulnérabilités de sécurité
  • car il suppose un certain nombre de personnes l'utilisant pour qu'il soit réaliste, zds manque de membres actifs pour le rendre utile

Qu'en dites-vous?

+4 -0

Je trouve ce premier cahier des charges assez cohérent même si le chiffrage est un peu difficile à établir. LE fait de voir ça comme un module est une excellente idée. Vraiment, ça ne peut qu’apporter du positif dans le sens où ça peut être utilisé par d'autres projets.

Ce qui en revanche me fait un peut peur et que tu n'as pas chiffré c'est la possibilité d'intégrer ça dans zds tout en faisant un module accessible à d'autres. Aujourd'hui tout est ultra dépendant dans nos applications, tu en supprimes une et out se casse la figure et c'est quelque chose d'impossible ici.

Sinon c'est un grand plaisir que je t'aiderai mais sans m'impliquer officiellement là dedans car j'aimerai réaliser la ZEP-13 dans un premier lieu (et je suis sur deux autres projets qui me prennent un peu de temps aussi).

+0 -0

Comme gustavi, j'ai un peu du mal à imaginer le fait d'avoir un module indépendant de zds, et puis ensuite l'intégrer à zds (c'est probablement du au fait que j'ai zéro expérience dans ce domaine).

Après, je suis opposé à l'idée même d'avoir des notes. On est pas là pour évaluer les gens ou bien pour qu'ils se comparent sur leurs notes. A l'époque de sdz, le QCM était bien, mais la note à la fin était juste bidon.

Je n'ai pas trop compris la troisième étape (correction manuelle et automatique), tu pourrais détailler ?

Ce qui en revanche me fait un peut peur et que tu n'as pas chiffré c'est la possibilité d'intégrer ça dans zds tout en faisant un module accessible à d'autres.

c'est une partie que je suis actuellement incapable de chiffrer. Pourquoi? sur la zep-12 certaines parties "complexes" ont été intégrées en une heure, certaines parties "simples" ont subi une vingtaine d'heure de debug et le déplacement des parties a à lui seul côté une quarantaine d'heures tellement je galérais.

Donc là je ne sais pas. Et ce n'est pas le fait qu'on décorelle l'intégration du développement backend qu'on va vraiment voir des grosses différences.

Je n'ai pas trop compris la troisième étape (correction manuelle et automatique), tu pourrais détailler ?

Le besoin tel qu'il est décrit demande juste qu'on ait un exercice et qu'il soit corrigé.

A partir de là, on peut se dire que la correction peut être "manuelle", c'est à dire qu'un humain vient valider ou invalider les choses. D'ailleurs on peut tout à fait parler de "validation/invalidation" à la place de "notes" si vous avez peur que ça fasse chier le monde.

Si l'humain peut le faire, il peut le faire seul ou à plusieurs (p2pa) mais aussi avec l'aide d'une machine (opérateur virtuel, correction automatique).

Salut !

Je me demandais si des exercices corrigés automatiquement (outre des QCM) étaient absolument nécessaires ? Parce que d'après ce que j'ai compris en parcourant le sujet, c'est quand même assez complexe à mettre en place. Et si le but d'un tel système, c'est de forcer le débutant à réfléchir sans correction, il y a quand même plus simple.

Par exemple, ce qui serait peut-être possible (je sais pas trop techniquement, mais ca me parait quand même moins complexe :p), ce serait des exos dont la correction ne serait accessible qu'après un certain délai, fixé par l'auteur en fonction de la difficulté de l'exo (un délai raisonnable, s'agit pas de faire fuir l'utilisateur).

Et puis, ce que j'ai aussi compris, c'est que corriger automatiquement ne marcherait sûrement que sur des exos rrelativement simples (dites moi si je me trompe). Du coup une correction, associée à quelques entrée/sortie attendue pour qu'on puisse vérifier l'exo devrait suffire ?

Mais sinon de mon point de vue de débutant, l'idée d'une section d'exercices est excellente, surtout qu'on sait pas nécessairement toujours quoi coder pour s'entrainer, et si on a assez de connaissances.

Je me demandais si des exercices corrigés automatiquement (outre des QCM) étaient absolument nécessaires ?

c'est pour ça que c'est vraiment l'évolution à très long terme. Pour l'instant, pas besoin, les QCM et les formulaires ouverts avec affichage de la correction ou évaluation de la proximité de la réponse avec celle donnée (dérivé de la distance de levenstein) c'est la priorité pour générer de l'intéraction.

Et puis, ce que j'ai aussi compris, c'est que corriger automatiquement ne marcherait sûrement que sur des exos rrelativement simples (dites moi si je me trompe). Du coup une correction, associée à quelques entrée/sortie attendue pour qu'on puisse vérifier l'exo devrait suffire ?

en fait, il faut comprendre qu'au départ zds vient du sdz qui était un site d'informatique. JE pense que dans l'esprit des gens, la killer feature serait la correction automatique de codes simples à coup de "tests unitaires". De même qu'une forte intégration de jsfiddle ou de toute autre outil (les jvm par exemple) qui permettrait d'avoir un rendu visuel pour le débutant semble plutôt cool. Mais c'est complexe et ça sera très long à mettre en place, même si ça enverrait du pâté.

De mémoire, codingame propose régulièrement des défi de code sur une soirée/journée, qui sont corrigé automatiquement. Quelqu'un sait-il comment ils font en pratique (sachant que c'est une correction automatique).

+0 -0

C'est pas vraiment pareil. C'est comme Prologin, ils lancent ton code et font des tests avec des entrées différents. Si ton code passe c'est bon, ils checkent la performance, si ton code renvoie une erreur c'est pas bon.

+0 -0

Salut a tous

Petit déterrage de discussion.

Pour mon cours C++, je souhaite proposer des exos aux apprenants, de façon proposer une formation la plus complète possible. Pour le moment, ce que je prévois :

  • le plus autonome possible (correction automatique via des tests, outils de verifications, etc)
  • quizz/QCM, écriture de tests unitaires, écrire de code qui doit passer des tests, puis projets (plus dur à automatiser)
  • pouvoir valoriser le travail fait (par exemple que les exos soient sur un GitHub, que l’apprenant peut mettre sur son CV)

(Trop de boulot a faire :) )

Les exos sont sous licence Creative Common, de façon à ce que toux ceux qui veulent peuvent ajouter/modifier les exos. Pour cette raison, je n’ai pas trop envie d’utiliser une plateforme d’exercices pro existante (france ioi, coding game, etc). Pour le moment, je suis parti sur l’idée d’un projet GitHub à forker, les exos sont des tests unitaires C++, et passer par travis pour la compilation/exécution/vérification des exos.

Du coup, quelques questions :

  • quel est le statut de cette ZEP ? (je sais que les ZEP n’existent plus, mais est-ce qu’il y a des travaux en cours ?)
  • comment fonctionne le dev sur ZdS ? (si je me souviens, c’est just-do-it en mode Agile, plutôt que discuter pendant 10 ans ?)

Merci

+0 -0

Ok, merci. Je vais y réfléchir et rassembler de la doc, pour voir ce qui se fait ailleurs, s’il y a des formats open-sources existants, des APIs, etc.

Si je me lance dans ce projet (pas encore décidé), ca sera pas avant janvier. Je ferais une issue principale pour centraliser les autres issues, voir les besoins (en prioritisant les miens en premier, of course) et un canal sur le discord de lynix pour discuter.

EDIT : question en plus : je ne sais pas si vous utilisez les issues de GitHub uniquement pour les PRs ou si vous l’utiliser aussi pour gérer les boulots en amont ? (creation des uses cases, creation du design, creation des tests, etc)

EDIT2 : en fait, comme je peux créer des issues sur mon fork, je vais utiliser les issues pour planifier le boulot. La question est donc plutot de savoir si je créées toutes issues sur le github de ZdS ou si je créées seulement les issues pour les PRs.

+0 -0

Pour info, j’ai créé un fork pour bosser sur les exos. J’ai commencé a lister les besoins/possibilités. Ca se passe sur le wiki du fork de ZdS sur mon GitHub : https://github.com/GuillaumeBelz/zds-site/wiki

Pour le moment, je regarde tout ce qui pourrait etre fait (types d’exos) et les approches pedagogiques. N’hésitez pas a participer si vous voulez

+2 -0

Hello gbdivers,

sur ton wiki, je vois que tu proposes cette syntaxe markdown :

1
2
3
'''qcm

'''

je ne suis pas sûr que ça soit un moyen "simple" de créer ça.

Je propose ceci

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[[q]]
| De quelle couleur est le cheval blanc de napoléon?

- () jais
- (x) blanc
- () orange
- () rose, comme toutes les licornes invisibles

[[q]]
| Qui gagne?

- [x] Superman
- [ ] San Goku (il me semble que j'ai mal orthographié, du moins j'espère)
- [x] Giratina
- [ ] Olivier Aton avec la catapulte infernale

`

Lorsque tu as une liste avec des () alors ça veut dire que les éléments de la liste sont des choix uniques.

Lorsque tu as une liste avec des [] alors ça veut dire que les éléments de la liste sont des choix multiples.

lorsque le symbole (()ou []) est vide alors ça veut dire que si le lecteur répond une de ces réponses elle sera considérées comme fausse. si le symbole possède un x alors ça serait une bonne réponse.

Il suffira ensuite d’ajouter un bouton pour "valider le formulaire" et avec un petit script JS on compare les réponses données à celles attendues et on a les QCM/QCU qui sont implémentées.

Le xml c’est rarement une bonne idée, surtout pour faire quelque chose qui n’est pas par nature hiérarchique.

En soi je pense que pour les exercices, il faut faire petit à petit. Les QCM c’est facile, les autres ça l’est moins mais on peut trouver des moyens.

Je ne connais pas ce discord (en fait je n’en connais aucun) il parle de quoi?

C’est le discord "officieux" de ZdS et OC :) C’est celui où on fait le club de lecture, où Lynix fait son projet Nazara et ses lives twitch, etc.

il faut faire petit à petit

Je ne sais pas si j’ai été clair, mais ce qui est décrit sur le wiki n’est pas tout ce que je vais implémenter. Pour le moment, je veux avoir une vue d’ensemble de ce qu’on aimerait avoir sur ZdS, ce qui est possible de faire ou ce qui n’est pas pertinent. De façon faciliter le design ensuite.

HS : question de pédagogie, avez vous connaissances d’etudes sur la pédagogie en ligne, les avantage et défauts par rapport a la pédagogie hors ligne, les nouvelles pédagogies possible en ligne, etc ? Bref, ce qu’il est possible de faire en ligne.

+0 -0

Attention avec le petit à petit en terme de syntaxe, c’est souvent un cauchemar parce qu’on veut garder la compatibilité descendante.

Autant pour le code et autres petit à petit c’est très bien, autant augmenter une syntaxe petit à petit c’est très pénible.

+1 -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