Estoy enseñando un curso de Introducción a la Informática, donde hacemos principalmente programación en C. Me han asignado un laboratorio para impartir el curso, pero hay más alumnos que ordenadores disponibles. Además, no tengo control sobre esas PC allí, y casi todos los estudiantes tienen derechos de administrador sobre ellas. También es común que los estudiantes traigan su computadora portátil al salón de clases y se conecten al Wi-Fi del campus, que no tengo ningún control.
Los exámenes son pequeños algoritmos para resolver, e inicialmente estaba planeando, al igual que otros profesores en el curso, permitir el uso de una computadora (del laboratorio o la suya propia) para que los estudiantes verifiquen la corrección de sus algoritmos. Sin embargo, en el estado actual de las cosas, creo que es bastante fácil hacer trampa para los estudiantes: podrían usar Facebook, correo electrónico o cualquier herramienta de Internet para intercambiar código fuente o información.
¿Existen herramientas de software que puedan ayudar a permitir el uso de una computadora y aún así evitar la colaboración no autorizada?
En mi universidad en el Reino Unido tenemos dos tipos de evaluación para los cursos de programación. 'Prácticas' de aprobación/reprobación en las que a los estudiantes se les asignan tareas de programación y se les permite explícitamente discutirlas entre ellos y buscar en línea. Cuando el estudiante esté listo para enviar su solución, un demostrador la revisará y hará preguntas, etc. para asegurarse de que el estudiante comprenda por qué escribió el código que escribió. Los estudiantes no obtienen una calificación por esto que cuente para su calificación general del año, pero se les exige que "aprueben" las prácticas para poder aprobar el año.
Luego están los exámenes escritos sin acceso a la computadora. Hay preguntas del tipo 'escriba algún código que resuelva este problema', y también más conceptuales '¿por qué es este el caso? ¿Cuándo usarías eso? preguntas. Para los bits de 'escribir código', los marcadores deducirán muy pocos puntos por errores de sintaxis simples y cosas por el estilo. La pregunta no es tanto '¿puede el estudiante escribir un programa que se compile en el primer intento?' como '¿puede el alumno idear un buen algoritmo que resuelva el problema y proporcione una expresión razonable del mismo en código?'. Tenga en cuenta que estos cursos (en mi universidad) nunca son para idiomas específicos; son cursos como 'programación funcional' o 'programación orientada a objetos' o 'aprendizaje automático', cada uno de los cuales utilizará un lenguaje particular,
Esto también alienta a los estudiantes a aprender formas de diseñar y escribir programas comprobablemente correctos: si pueden razonar sobre los programas en un nivel más profundo que la intuición, entonces escribir programas en papel es una mejor prueba de esto que permitirles experimentar y probar hasta el resultado. se ve bien' por las entradas que le han dado.
Esta parece ser una buena manera de evitar hacer trampa en las calificaciones importantes y fomentar una comprensión sólida del material importante del curso. Dicho esto, ¡muchos estudiantes odian tener que escribir código en papel sin acceso a SO o un compilador!
:)
Si vas a preguntar "¿Por qué ___ hace ___?" tipo de preguntas, por favor hágalas en un formulario que solo tenga una respuesta específica.Considere dos cosas que son (casi) exclusivas de la informática:
investigar métodos de programación en Internet es una práctica estándar, siendo stackexchange.com el número 1 para muchas búsquedas. Requerir que alguien memorice los detalles no es una práctica de la industria. No consideraría aceptar un trabajo de programación en ningún lugar que diga "sin acceso a Internet". Y presiono las referencias de función 10 veces al día para verificar cosas como nombre_función versus nombre_función o reemplazar (aguja, pajar) / reemplazar (pajar, aguja) dolores de cabeza.
Es bastante probable que 10 estudiantes devuelvan resultados casi idénticos para algoritmos simples. Simplemente no hay muchas formas de responder "escribir una función para promediar los valores en una matriz". Veamos: bucle, suma, cuenta. vars i, s, c. Si enseñó el formato de código estándar, es muy posible que obtenga 8/10 respuestas absolutamente idénticas pero cero trampas. Este es un problema común para los procesadores de trampas/plagios que no están ajustados para CS.
Buena suerte, y vuelve con cualquier solución que te haya resultado.
En una de mis asignaturas de programación, nos permitieron los apuntes de clase, nuestros propios ejercicios resueltos e internet; pero no hay comunicación con otros estudiantes (correo electrónico, facebook...). Realmente no había nada que los bloqueara, solo el profesor deambulando.
Realmente, no es tan difícil de verificar: un estudiante debe estar la mayor parte del tiempo trabajando en el IDE, y solo navegando esporádicamente. Si alguien parece navegar demasiado, puede hacer una inspección más cercana. GMail o Facebook brillarán descaradamente en la pantalla.
Por supuesto, puede ser más astuto, como usar Lynx para ingresar su correo. Pero realmente, si puedes hacer eso, probablemente puedas escribir un algoritmo simple sin hacer trampa.
Aunque es posible que no cuente esto como una herramienta de software: una distribución en vivo de Linux personalizada, que se inicia directamente desde un medio extraíble y contiene solo las herramientas de desarrollo necesarias (sin navegador, tal vez incluso elimine los controladores de ethernet/wifi) lo haría; solo haz que lo arranquen para el examen.
(Si alguien es capaz, dentro del límite de tiempo y con las herramientas provistas, de escribir los controladores y un navegador, no solo obtiene una calificación aprobatoria sino también una oferta de trabajo).
La solución empleada por mi profesor es permitir el libro de texto en el aula (o cualquier otra hoja de papel), pero sin acceso a Internet; ni siquiera el acceso a la computadora. Todo el examen fue en papel.
El examen en sí era para desarrollar algunos algoritmos, o tal vez crear algunas clases; cosas para las que el libro de texto es inútil, pero aún así te da la oportunidad de buscar nombres y conceptos básicos.
Como estudiante, creo que no hay nada de malo en este método. Por supuesto, otros pueden estar en desacuerdo.
Las facultades de derecho han estado resolviendo este problema durante muchos años al hacer que los estudiantes compren software para exámenes que bloquea sus sistemas y solo les permite usar el software de examen durante el tiempo de examen. Sin embargo, ha habido problemas . Además, los exámenes de la facultad de derecho son generalmente ensayos u otras preguntas no funcionales, mientras que un examen de programación también podría requerir un compilador. No tengo conocimiento de una versión de esto que exista para permitir un editor de texto, terminal y compilador.
¿Existen herramientas de software que puedan ayudar a usar una computadora y evitar el plagio?
No puedo responder a la pregunta anterior y me sorprendería la efectividad de tal herramienta. Entonces, sugiero otra solución: haga los exámenes en papel, escanee los documentos al final de los exámenes, envíe las copias a los estudiantes y déles un par de días para depurar sus programas. Las diferencias entre la versión en papel y la de trabajo pueden así tenerse en cuenta para decidir la nota final.
Bueno, no he comprobado si existen herramientas de software reales para eso, pero les diré lo que solía hacer. El número de aproximaciones a una solución correcta es bastante limitado; si se trata de un problema de tipo examen, debe esperar recibir muchas respuestas casi idénticas, o incluso realmente idénticas, como señala @Peter . Pero
el ingenio del error es infinito, y la creatividad de los descarriados es ilimitada...
Así que errores + copiar = fácil de atrapar. Si desea mecanizar, verifique si hay errores de análisis/compilación iguales o similares, o opciones idénticas de identificadores de programas que no se compilan o ejecutan como se esperaba.
Dos de estos programas son MOSS y JPlag:
http://theory.stanford.edu/~aiken/moss/
Moss (para una medida de similitud de software) es un sistema automático para determinar la similitud de los programas. Hasta la fecha, la principal aplicación de Moss ha sido la detección de plagio en las clases de programación. Desde su desarrollo en 1994, Moss ha sido muy eficaz en este papel. El algoritmo detrás de moss es una mejora significativa con respecto a otros algoritmos de detección de trampas (al menos, con respecto a los que conocemos).
JPlag es un sistema que encuentra similitudes entre múltiples conjuntos de archivos de código fuente. De esta manera puede detectar el plagio de software. JPlag no solo compara bytes de texto, sino que conoce la sintaxis del lenguaje de programación y la estructura del programa y, por lo tanto, es robusto frente a muchos tipos de intentos de disfrazar similitudes entre archivos plagiados. JPlag actualmente es compatible con Java, C#, C, C++, Scheme y texto en lenguaje natural.
Se usaron herramientas similares a estas (no estoy seguro exactamente de cuáles) en las dos escuelas en las que he estado. Los estudiantes fueron atrapados y penalizados incluso después de que cambiaron el nombre de las variables y cambiaron el orden de las funciones en el archivo.
299792458
entusiasmo
410 desaparecido
terrícola
ff524
farap
JeffE
JeffE
Rafael
usuario22098
o0'.
aplicar
chad robinson
Josué
protocolo desconocido
Falcó
marcos catherine blanco