Pistas en los envíos incorrectos Beta
¡Acepta el reto! es utilizado en muchos centros educativos para practicar programación. Por desgracia, el feedback proporcionado por el juez es críptico y a menudo genera frustración debido a su parquedad.
Para paliar este problema, hemos empezado a añadir soporte para pistas de modo que el sistema, en determinadas circunstancias, proporciona ayuda específica que indica el error cometido en un envío. Si bien es una funcionalidad en pruebas ¡esperamos que os guste!
Las pistas son pequeñas explicaciones que ¡Acepta el reto! puede proporcionar para algunos de los errores más habituales en algunos problemas.
Desde que ¡Acepta el reto! se puso en marcha, hemos recibido gran cantidad de envíos que fallan por infinidad de razones. Hemos analizado en profundidad los envíos erróneos de algunos de los problemas, y hemos identificado los fallos más habituales.
Con la información recopilada, hemos "enseñado" al juez a reconocer esos errores en los nuevos envíos, de manera que ahora ¡Acepta el reto! está en disposición de ofrecer explicaciones en aquellas soluciones que vuelven a tropezar en ellos.
No todos los envíos son susceptibles de recibir pistas. Deben cumplir tres condiciones:
- El veredicto recibido debe ser Wrong Answer (respuesta incorrecta).
- El envío debe haber sido hecho a alguno de los problemas que tienen las pistas habilitadas.
- El error cometido debe ser uno de los que hemos considerado frecuentes, de manera que hemos creado una pista para él.
Si tu envío cumple las tres condiciones, en la página con los detalles del envío que verás nada más hacerlo (o si seleccionas su identificador en alguna de las listas de envíos) verás que ¡Acepta el reto! te ofrece ayuda:
Wrong Answer (WA) ¡Dame una pista!
Si pulsas el botón ¡Dame una pista!, se te pedirá confirmación y a continuación ¡verás una explicación sobre tu error!
Si recibes alguna pista en tus envíos, ¡nos interesa tu opinión! Junto a la pista, te aparecerá un enlace para que nos la cuentes. ¡Ayúdanos a mejorar!
¡Acepta el reto! es un juez en línea que, aunque tiene una vocación pedagógica desde el inicio, es utilizado también en contextos competitivos. Hay usuarios que compiten por conseguir puestos altos en el ranking, y en algunos centros se utiliza para competiciones internas o evaluación continua.
Utilizar pistas facilita la resolución de los problemas, y algunos usuarios pueden preferir no recibir esa ayuda para conseguir la satisfacción personal de haberlos resuelto por sí mismos. Si el juez mostrara las pistas directamente, la tentación de leerlas podría ser demasiado fuerte.
De hecho, aunque durante la actual fase de pruebas no hay ningún tipo de repercusión por solicitar (y ver) una pista, estamos valorando diferentes alternativas para diferenciar a los usuarios que resuelven los problemas por sí mismos o con la ayuda de pistas. También estamos analizando el modo de evitar el sobreuso.
Los problemas con pistas son:
- 104 Móviles
- 114 Último dígito del factorial
- 116 ¡Hola mundo!
- 217 ¿Qué lado de la calle?
- 219 La lotería de la peña Atlética
- 242 Erasmús
- 245 Los Dalton
- 246 Búsqueda de polidivisibles
- 295 Elévame
- 304 División euclídea
- 313 Fin de mes
- 335 Pirámide de canicas
- 337 La abuela María
- 341 Reina del súper
- 342 ¡No lo puedes saber!
- 345 Sudokus correctos
- 349 Jan el olvidado
- 350 El triángulo de mayor área
- 401 Trifelios
- 403 En campos de fútbol
- 406 Yonge Street
- 407 Rebotando en el parchís
- 409 Seleccionando castellers
- 410 Dígitos saltarines
- 527 Trozos divisibles
Ten en cuenta que la cantidad de pistas en cada uno es muy variada, y que la disponibilidad de pistas no garantiza en ningún caso que el sistema vaya a poder ayudarte. Solo lo hará si tu error es uno de los que hemos identificado como habituales.
La disponibilidad de pistas exige un análisis previo de los envíos de los problemas, para identificar los errores más habituales, y añadir explicaciones textuales sobre sus causas que ayuden a aquellos futuros usuarios que los cometan. Ese trabajo previo exige mucho tiempo, por lo que hemos preferido poner en marcha la funcionalidad en unos cuantos problemas en lugar de esperar a tener pistas en todos.
Además, la existencia de pistas puede afectar al uso que, en algunos lugares, se hace de ¡Acepta el reto!. Por ejemplo, algunos centros educativos utilizan el juez directamente para pruebas de evaluación o para concursos.
La disponibilidad de pistas puede dañar esos modos de uso, por lo que aún estamos estudiando las mejores alternativas. Queremos que ¡Acepta el reto! sea útil en contextos educativos gracias a características como las pistas, pero sin dañar los usos "competitivos" de los problemas. Si tienes alguna idea de cómo conseguirlo, ¡cuéntanosla!
Desgraciadamente no. Para poder identificar el error cometido por un envío es necesario que termine completamente sin sufrir ningún error de ejecución. Los únicos envíos que garantizan eso son AC, PE y WA. En los primeros no tiene sentido, por razones obvias, incorporar pistas. En los segundos, Presentation Error, el propio veredicto es una pista en sí mismo y no hay mucho más que se pueda añadir. Eso deja a los Wrong Answer como únicos veredictos posibles para recibir pistas con el modelo de funcionamiento actual.
¡Sí! En última instancia, nuestro objetivo es que las pistas sean creadas directamente por vosotros, los usuarios. Cuando se consigue un Accepted tras un Wrong Answer normalmente se sabe perfectamente el motivo del error, y esa información puede ser muy útil para futuros usuarios.
Durante la presente fase de prueba, la forma en la que el sistema recopila las pistas está en un estado embrionario que, esperamos, evolucionará con el tiempo. En particular, si consigues un AC y tenías algún envío WA previo, el sistema se dará cuenta y te animará con un enlace a ir a los detalles del último envío WA realizado para que lo revises y expliques el error.
De hecho, si visitas prácticamente cualquiera de tus envíos WA de ese problema verás, junto al veredicto, un botón para proponer una pista:
Wrong Answer (WA) Proponer pista
Si es ese tu caso, ¡ayuda a otros con tu experiencia recién adquirida! Propón un texto que explique tu fallo y que pueda servir a futuros usuarios que cometan el mismo error.
Ten en cuenta, que, por el momento, las pistas que déis no se registrarán de forma automática. Como el sistema de pistas está en fase de prueba, revisaremos manualmente todas las propuestas de pistas e incorporaremos aquellas que consideremos que verdaderamente tienen sentido, manteniendo, naturalmente, la información de autoría.
¡Estupendo! Gracias por la ayuda
¡Acepta el reto! ofrece pistas en función de los casos de prueba incorrectos, pero no analiza el código. Por tanto, el texto de las pistas debe escribirse pensando en el enunciado y en el problema, no en el código.
Durante el análisis que hemos realizado de gran cantidad de vuestros envíos, hemos visto código diametralmente opuesto (escrito incluso en lenguajes de programación distintos) que, a pesar de eso, cometían exactamente el mismo error desde el punto de vista del problema. Para aumentar la probabilidad de que una pista sea útil a un abanico amplio de usuarios, es importante por lo tanto que se redacte pensando en los casos de prueba que fallaban, en lugar de en el cambio que se ha hecho en el código.
Aquí van algunos ejemplos.
- En este problema, ¡el 1 es considerado primo!
- Los límites del enunciado son muy altos. ¿Estás usando el tipo de datos adecuado?
- Tu solución falla cuando el denominador es negativo.
- Revisa la salida. Parece que te sobra un punto.
- Te has olvidado de los break.
- Me fallaba el caso "45 13".
- Me he equivocado porque he entendido mal el enunciado.
- En C++ el sort() recibe el iterador al siguiente al último.