Como muchos ya han mencionado, esta es una gran idea; y como muchos han mencionado, muy correctamente, que enseñar el control de versiones a un curso introductorio general de CS crea una ofuscación innecesaria del contenido del curso realmente importante.
Aquí hay algunos puntos adicionales que aún no se han tocado.
Como mencionó Anon, las herramientas basadas en la comparación como MOSS son extremadamente efectivas y no requieren que los estudiantes tomen ninguna acción específica. Generalmente son capaces de detectar la similitud incluso después de intentos maliciosos de ofuscación novata, como renombrar, reordenar, descomponer, etc., que generalmente se encuentra en los cursos introductorios de CS.
Si realmente quieres aprovechar al máximo el control de versiones para atrapar trampas, ¿por qué no presionas los cambios todo el tiempo ? ¿Como minuciosamente ? De hecho, ¿qué tal si configuramos algo para insertar código automáticamente, tal vez como un complemento en el IDE utilizado por el curso? Entonces, un amigo mío, Chris Piech, después de obtener el permiso de los estudiantes, usó un complemento Eclipse para empujar automáticamente el Árbol de sintaxis abstracta (AST) compilado por Eclipse a un repositorio git en cada guardado. Luego utilizó modelos gráficos para analizar la riqueza de datos, y descubrió que los estudiantes a menudo tomaban caminos comunes para llegar al producto final terminado, y que ciertos caminos generalmente conducían a mejores productos finales que otros. Esto es obviamente cierto en la codificación de la vida real: un programador tomará decisiones importantes de diseño clave en unos pocos puntos, y luego el resto del código generalmente se colocará en su lugar con pequeñas variaciones. Sin embargo, con estos datos, también podría elegir valores atípicos. Y dado que tiene el AST completo en cada guardado (que a menudo es así, ya que Eclipse fuerza un guardado antes de cada ejecución, por lo que debe guardar si quiere probar), puede ver casi exactamente lo que cambió casi minuciosamente. Podrías adaptar esto fácilmente para detectar automáticamente posibles tramposos, y luego seleccionarlos manualmente para determinar rápidamente con bastante certeza los que hicieron trampa.
- ¿Qué es la enseñanza?
- Si los maestros pudieran ser la solución a muchos de los problemas educativos de hoy, ¿cómo sería esa solución?
- ¿Qué necesitas para obtener la certificación ESL en el estado de Nueva York?
- ¿Se pueden enseñar comportamientos sostenibles a través de un juego?
- ¿Cuál es el mejor programa para aprender chino en Beijing?
Sin embargo, creo que esta es una muy, muy mala idea . Creo que este método potencial de detección de tramposos al mirar constantemente constantemente por encima del hombro de los estudiantes es exageradamente exagerado, es una violación de lo hablado (en el caso de las escuelas con códigos de honor) o una confianza tácita entre el instructor y el estudiante, y resta valor a Un buen ambiente de aprendizaje centrado, en primer lugar, en el contenido del curso y motivando el material. He descubierto que la mejor manera de disuadir a las trampas es diseñar un curso desafiante, pero accesible e inspirador.
Los estudiantes generalmente hacen trampa de dos maneras: (1) es trampa maliciosa y premeditada. Nunca me he encontrado con un estudiante interesado y motivado que participe en este tipo de trampas de docenas con las que he estado involucrado de una forma u otra. Por lo tanto, tener una buena clase y tener buenas relaciones entre instructor y alumno parece ser, con mucho, el mejor elemento de disuasión. (2) un estudiante se está volviendo loco en el último minuto porque la tarea no está completa el día en que se debe entregar la tarea, y por lo tanto, apresuradamente copia el código de alguien, haciendo algunos cambios para encubrir el trabajo. Este tipo de casos generalmente se detectan fácilmente con herramientas basadas en la comparación como MOSS. Entonces, por la pequeña ganancia que algo como esto le daría, y el tiempo que tomaría implementar y monitorear, además de los problemas éticos y de confianza, generalmente tiene más sentido dedicar tiempo a trabajar en el contenido y la presentación del curso.