¡Saludos! Mi nombre es Colin Fredericks. Trabajo en HarvardX como líder de proyecto sénior, lo que significa que la mayor parte de mi trabajo consiste en ayudar a los profesores de Harvard a crear cursos de calidad. Sin embargo, durante los últimos meses he estado trabajando, sobre todo en mi tiempo libre, en agregar crédito parcial a la plataforma Open edX.
Me gusta mucho la plataforma Open edX, pero siempre me sorprendió que no hubiera forma de otorgar crédito parcial. Habiendo enseñado en la universidad y la escuela secundaria, parecía un descuido tan obvio que seguía esperando verlo en la lista de "próximas funciones". Después de tres años de espera, decidí finalmente tomar el asunto en mis propias manos.
Ahora, no soy un programador profesional. (Es posible que escuche música siniestra de fondo. A esto lo llamamos "prefiguración".) Aprendí Applesoft BASIC en cuarto grado, programación TI-4 en la escuela secundaria, C++ en la universidad, Python mientras trabajaba en el MIT y Javascript cuando era estudiante. desempleado, pero nunca antes había contribuido a un esfuerzo de código abierto. Nunca había escrito código de prueba. Diablos, apenas sabía que existía el código de prueba. (Una sombra cae sobre la cámara. Más presagios.) Decidí que iba a agregar un tipo de crédito parcial a solo un tipo de problema, simplemente simplificar las cosas para poder manejarlo en una semana o dos. (Esto también es un presagio).
Eso fue a principios de abril. Logré mi objetivo original en dos días y luego el proyecto se infló rápidamente hasta su estado actual. Estaba convencido de expandirme de un solo tipo de problema a tantos como pudiera manejar razonablemente, y de escribir un propuesta completa que terminó siendo 16 páginas.
Mientras implementaba esta función, descubrí este tema del "código de prueba" y los "verificadores de calidad del código" y otras cosas que (sabiamente) no le cuentan a la gente en Ciencias de la Computación II. comencé desde el Guía del desarrollador de edX, como mejor lo entendí, con su bonito diagrama de flujo. abrí un ticket de propuesta en JIRA, hice un repositorio de github para mi propio código, abrió mi first solicitud de extracción, hice un poco más de desarrollo, obtuve muchos buenos comentarios (la mayoría de los cuales incorporé), aprendí a reorganizar correctamente, abrí una nueva y mejor solicitud de extracción, e hizo algo más de codificación. Finalmente, después de aproximadamente 15 semanas de desarrollo, ¡me enorgullece decir que la función se fusionó con la rama maestra de la plataforma edx!
Crédito parcial: detalles de funciones
Aquí está el resumen rápido de cómo se ve esta función actualmente. Tenga en cuenta que, actualmente, los autores solo pueden habilitar el crédito parcial editando directamente la definición OLX de un problema.
Opción múltiple y Menú Desplegable los problemas tienen un tipo de crédito parcial disponible: calificación estilo “Puntos”. El autor del curso enumera ciertas opciones que valen crédito parcial y, opcionalmente, establece cuánto crédito valen (el valor predeterminado es 50%). Como efecto secundario, los problemas desplegables se han actualizado para que se pueda marcar más de una opción como correcta.
Casilla de Verificación (Checkbox) Los problemas tienen dos tipos (mutuamente excluyentes) de crédito parcial disponibles: el estilo de "Mitades", en el que una respuesta perfecta otorga el 100 % del crédito y cada error reduce el crédito a la mitad, y el estilo "Cada decisión cuenta", en el que cada casilla de verificación se vuelve en su propia pregunta separada de verdadero/falso.
Este es un ejemplo de cómo el autor de un curso habilitaría el crédito parcial del estilo "Todas las decisiones cuentan" (o "EDC") en un problema de Studio:

Así es como les aparecerá el problema a los estudiantes:

Numérico los problemas también tienen dos tipos disponibles: estilo "Lista", donde el autor enumera las respuestas que cuentan para crédito parcial (por ejemplo, en un problema de matemáticas, las respuestas de crédito parcial pueden ser las que resultan de omitir un signo negativo o invertir una fracción), y Estilo “cerrado”, que amplía la tolerancia dada para permitir un enfoque de “herraduras y granadas”. Dado que los dos estilos son compatibles, puede usarlos en el mismo problema si lo desea.
Así es como el autor de un curso puede definir un problema numérico con crédito parcial estilo "lista":

Así es como les aparecerá el problema a los estudiantes:

Finalmente, Pitón personalizado los problemas ahora pueden devolver no solo un valor de punto, sino un indicador de si el problema se considera total o parcialmente correcto.
Para obtener más detalles sobre cómo agregar crédito parcial a sus problemas, consulte la documentacion de credito parcial.
Estoy muy contento de cómo salió todo esto. El proyecto tomó más tiempo de lo que pensé, pero también es mucho más poderoso. Proporciona un marco que facilita agregar crédito parcial a otros tipos de problemas en el futuro, algo que realmente espero que la gente aproveche.
¿Qué viene en v2?
Bueno, primero, tengo planeado un v1.5 que limpia algunos de los circundante código, para que los futuros colaboradores del módulo Capa no tengan tantos problemas como yo. Después de eso, ¡más tipos de problemas, por supuesto! También estoy pensando en hacer que esta función esté disponible para problemas comunes sin usar XML, es decir, dar a los instructores la capacidad de usar esta función desde el editor de rebajas de Studio. Hay alguna generalización de código adicional que se podría hacer. En algún momento en el futuro también existe la posibilidad de agregar calificaciones basadas en intentos... pero vayamos paso a paso.
No puedo decir lo suficiente sobre lo maravillosas y útiles que fueron todas las personas de edX durante este proceso. Entré con conocimientos básicos de Python y Javascript, y salí con habilidades mucho más sólidas y una comprensión de lo que es contribuir a un proyecto de código abierto. Sarina Canelake, Leslie Gerhat, Piotr Mitros, Mark Sadecki, Marco Morales, Ben Patterson, Diana Huang, Mark Hoeber y más se tomaron el tiempo de sus días ocupados para ayudarme a comprender mejor y pulir mi código. No puedo esperar a verlo usado en la naturaleza.
Todavía no me considero un programador profesional, pero gracias a este trabajo me estoy acercando.
Colin Fredericks es líder sénior de proyectos en HarvardX. En el resto de su tiempo libre le gusta cocinar, escribir juegos de rol, y ser amigo de todos los animales.
![]()