Crédit partiel - Du concept à la mise en œuvre

31 août 2015 | Par

Les salutations! Je m'appelle Colin Fredericks. Je travaille à HarvardX en tant que chef de projet principal, ce qui signifie que la majeure partie de mon travail consiste à aider les professeurs de Harvard à proposer des cours de qualité. Cependant, au cours des derniers mois, j'ai travaillé, principalement pendant mon temps libre, à l'ajout crédit partiel à la plateforme Open edX.

J'aime beaucoup la plate-forme Open edX, mais j'ai toujours été surpris qu'il n'y ait aucun moyen d'attribuer un crédit partiel. Ayant enseigné au collège et au lycée, cela semblait être un oubli si évident que je m'attendais à le voir sur la liste des "fonctionnalités à venir". Après trois ans d'attente, j'ai décidé de prendre enfin les choses en main.

Maintenant, je ne suis pas un programmeur professionnel. (Vous pouvez entendre une musique sinistre jouer en arrière-plan. Nous appelons cela "la préfiguration".) chômeur, mais je n'avais jamais contribué à un effort open-source auparavant. Je n'avais jamais écrit de code de test. Heck, je savais à peine que le code de test existait. (Une ombre tombe sur la caméra. Plus de préfiguration.) J'ai décidé que j'allais ajouter un type de crédit partiel à un seul type de problème, gardez simplement les choses simples pour que je puisse le gérer en une semaine ou deux. (Cela aussi préfigure.)

C'était début avril. J'ai atteint mon objectif initial en deux jours, puis le projet a rapidement atteint son état actuel. J'ai été convaincu de passer d'un seul type de problème à tous ceux que je pouvais raisonnablement gérer, et de rédiger un proposition complète qui a fini par faire 16 pages. 

Lors de l'implémentation de cette fonctionnalité, j'ai découvert ce truc de "code de test", et "vérificateurs de qualité de code", et d'autres choses dont ils (judicieusement) ne parlent pas aux gens dans Computer Science II. je suis parti du Guide du développeur edX, si j'ai bien compris, avec ses joli organigramme. j'ai ouvert un ticket de proposition sur JIRA, a créé un dépôt github pour mon propre code, ouvert mon premier demande de tirage, a fait un peu plus de développement, a reçu beaucoup de bons commentaires (dont j'ai incorporé la plupart), a appris à rebaser correctement, a ouvert un nouvelle et meilleure pull request, et a fait un peu plus de codage. Enfin, après environ 15 semaines de développement, je suis fier de dire que la fonctionnalité est fusionnée dans la branche principale de la plate-forme edx !

Crédit partiel : détails de la fonctionnalité

Voici un bref aperçu de ce à quoi ressemble actuellement cette fonctionnalité. Notez qu'actuellement, les auteurs ne peuvent activer le crédit partiel qu'en modifiant directement la définition OLX d'un problème.

Choix multiple et Déroulante les problèmes ont un type de crédit partiel disponible : la notation de style "Points". L'auteur du cours répertorie certains choix qui valent un crédit partiel et définit éventuellement le crédit qu'ils valent (la valeur par défaut est de 50 %). En tant qu'effet secondaire, les problèmes de liste déroulante ont été mis à niveau afin que plusieurs choix puissent être marqués comme corrects.

Case à cocher les problèmes ont deux types (mutuellement exclusifs) de crédit partiel disponibles : le style "Moitiés", dans lequel une réponse parfaite donne 100 % de crédit et chaque erreur réduit le crédit de moitié, et le style "Chaque décision compte", dans lequel chaque case à cocher tourne efficacement dans sa propre question vrai/faux distincte.

Voici un exemple de la façon dont un auteur de cours activerait le crédit partiel de style "Chaque décision compte" (ou "EDC") dans un problème Studio :

La définition OLX d'un problème de crédit partiel de réponse de case à cocher EDC. Voir la documentation pour plus de détails.

Voici comment le problème apparaîtra aux élèves :

Problème de case à cocher EDC avec 3 vraies réponses et 2 fausses réponses. Cocher une vraie réponse et une fausse réponse donne un score total de 0.4 sur 1 point.

Numérique les problèmes ont également deux types disponibles : le style "Liste", où l'auteur répertorie les réponses qui comptent pour un crédit partiel (par exemple, dans un problème de mathématiques, les réponses à crédit partiel peuvent être celles qui résultent de l'absence d'un signe négatif ou de l'inversion d'une fraction), et Style "fermé", qui élargit la tolérance donnée pour permettre une approche "fers à cheval et grenades à main". Comme les deux styles sont compatibles, vous pouvez les utiliser tous les deux dans le même problème si vous le souhaitez.

Voici comment un auteur de cours peut définir un problème numérique avec un crédit partiel de style « liste » :

Voici comment le problème apparaîtra aux élèves :

Un problème de crédit partiel à réponse numérique. La bonne réponse est 93*10^6 miles ; accepté pour un crédit partiel est la valeur en kilomètres. Cela donne une valeur totale de points de 0.5 sur 1 point.

Enfin, des Python personnalisé les problèmes peuvent désormais renvoyer non seulement une valeur en points, mais un indicateur indiquant si le problème est considéré comme totalement ou partiellement correct.

Pour plus de détails sur la façon d'ajouter un crédit partiel à vos problèmes, voir la documentation de crédit partiel.

Je suis très content de la façon dont tout cela est sorti. Le projet a pris plus de temps que je ne le pensais, mais il est aussi beaucoup plus puissant. Il fournit un cadre qui facilite l'ajout d'un crédit partiel à d'autres types de problèmes à l'avenir, ce dont j'espère vraiment que les gens profiteront. 

Qu'est-ce qui arrive dans la v2 ? 

Eh bien, d'abord, j'ai prévu une v1.5 qui nettoie certains des environnant code, afin que les futurs contributeurs au module Capa n'aient pas autant de mal que moi. Après cela – plus de types de problèmes, bien sûr ! J'envisage également de rendre cette fonctionnalité disponible pour les problèmes courants sans utiliser XML, c'est-à-dire de donner aux instructeurs la possibilité d'utiliser cette fonctionnalité à partir de l'éditeur de démarquage de Studio. Il y a une généralisation de code supplémentaire qui pourrait être faite. Quelque part dans le futur, il y a aussi la possibilité d'ajouter une notation basée sur les tentatives… mais prenons les choses une étape à la fois.

Je ne peux pas en dire assez sur la façon dont tous les gens d'edX ont été merveilleux et utiles tout au long de ce processus. Je suis arrivé avec quelques connaissances en Python et Javascript, et j'en suis sorti avec des compétences beaucoup plus solides et une compréhension de ce que c'est que de contribuer à un projet open source. Sarina Canelake, Leslie Gerhat, Piotr Mitros, Mark Sadecki, Marco Morales, Ben Patterson, Diana Huang, Mark Hoeber et d'autres ont pris le temps de leurs journées chargées pour m'aider à mieux comprendre et peaufiner mon code. J'ai hâte de le voir utilisé dans la nature.

Je ne me considère toujours pas comme un programmeur professionnel, mais grâce à ce travail, je me rapproche.

Colin Fredericks est chef de projet principal chez HarvardX. Dans le reste de son temps libre, il aime cuisiner, écrire des jeux de rôle, et être amis avec tous les animaux.

 

chargement

Il est temps d'en savoir plus ? Consultez les articles ci-dessous.

Résoudre les problèmes ensemble : le développement de plateformes piloté par la communauté
Développer les compétences et l'avenir à la conférence Open edX
Ateliers pour développeurs de la conférence edX ouverte
Reprendre le contrôle de notre avenir numérique : pourquoi j’ai rejoint le groupe Open Renaissance
Rejoignez la conférence Open edX 2026 !

La conférence Open edX 2026 présentera des cas d'utilisation innovants pour l'un des meilleurs systèmes de gestion de l'apprentissage en ligne open source au monde, la plateforme Open edX, et découvrira les dernières avancées en matière de conception pédagogique, de constellation de cours et de méthodes d'exploitation et d'extension de la plateforme Open edX. , y compris des technologies de pointe, telles que l’IA générative.