Exámenes con casos de prueba
Arma el examen con varios problemas, cada uno con casos visibles para que el alumno pruebe y casos ocultos que solo cuentan al calificar.
Python · C · C++
El alumno programa en el navegador y prueba su código con casos de ejemplo. VeriCode ejecuta y califica cada entrega en contenedores aislados, y compara las entregas entre sí para que el profesor revise los casos sospechosos.
Funciones
Arma el examen con varios problemas, cada uno con casos visibles para que el alumno pruebe y casos ocultos que solo cuentan al calificar.
Pide un examen a Claude o a una IA compatible con OpenAI. Su solución de referencia se ejecuta en el sandbox para obtener las salidas esperadas, y tú lo revisas antes de guardarlo.
Cada grupo tiene un código o enlace de invitación para que los alumnos se unan solos. Si se filtra, lo regeneras y el anterior deja de servir.
Sigue el avance y los eventos de cada alumno mientras presenta. Desde ahí das tiempo extra, perdonas una salida de la ventana o entregas su examen.
La calificación se calcula sola con los casos aprobados. Consulta resultados por examen y las calificaciones de cada grupo.
Analiza un examen con un clic y revisa cada par sospechoso con el código lado a lado, además de reportes con la distribución de similitud.
El mismo editor de VS Code, con resaltado para Python, C y C++. No hay nada que instalar.
Con un botón o Ctrl+Enter ejecutas tu código contra los casos de ejemplo y ves la salida de cada uno.
El servidor lleva el tiempo del examen, así que es el mismo para todos y no depende del reloj de tu equipo.
Mientras presentas, tu código se guarda automáticamente en el navegador, por problema y por lenguaje.
Entra al grupo con el código o el enlace que comparte tu profesor y ahí aparecen tus exámenes.
Al entregar, tu código se califica en segundo plano y la calificación aparece en cuanto termina.
Cómo funciona
Así viaja una entrega por el sistema. La respuesta al alumno es inmediata; lo pesado ocurre en segundo plano.
El alumno escribe la clave de acceso que le da el profesor. El servidor la valida, abre la sesión y fija la hora de cierre.
Cada “Compilar y probar” crea un contenedor aislado que corre el código contra los casos de ejemplo y devuelve la salida.
Al entregar, o al acabarse el tiempo, el código queda guardado en la base de datos en el mismo momento.
Una cola de calificación ejecuta la entrega contra todos los casos, incluidos los ocultos. Si el servidor se reinicia, retoma las pendientes.
Al calificar, cada respuesta pasa por el servicio de similitud y su huella numérica (embedding) se guarda para después.
Cuando el profesor presiona “Analizar plagio”, se comparan las huellas y los pares que superan el umbral se vuelven alertas.
Detección de similitud
Cambiar nombres de variables, comentarios o espacios no oculta una copia. VeriCode convierte el código en una imagen de su estructura y la compara con una red neuronal entrenada para eso.
Normaliza. Quita comentarios, espacios y estilo de indentación, y cambia nombres y literales por marcadores.
Renderiza. Dibuja el código como imagen, con un tono por tipo de token, y la divide en fragmentos.
Codifica. Una red convolucional (CNN) convierte cada fragmento en un vector.
Compara. Combina la similitud coseno global y la de cada fragmento en un puntaje calibrado de 0 a 1.
Alerta. Los pares sobre el umbral quedan como alertas pendientes, y el profesor decide si hubo plagio.
def promedio(lista):
# suma y divide
total = 0
for x in lista:
total += x
return total / len(lista)
def media(valores):
s=0
for v in valores:
s+=v
return s/len(valores)
def v1(v2):
v3 = N
for v4 in v2:
v3 += v4
return v3 / len(v2)
Puntaje de ejemplo
Supera el umbral: queda como alerta pendiente
Integridad y seguridad
Las protecciones del examen corren en el navegador: disuaden y detectan, pero no son infalibles. Por eso las salidas quedan registradas para el profesor y la similitud siempre la revisa una persona.
Arquitectura
Navegador
Frontend
React, Vite, Tailwind y el editor Monaco.
API
FastAPI
Autenticación, exámenes, cola de calificación y límites de uso.
PostgreSQL 15
Usuarios, exámenes, entregas y embeddings.
Sandbox (Docker)
Python 3.11, gcc y g++, un contenedor por ejecución.
ImageWorker
Embeddings con ONNX Runtime y similitud coseno.
Entra con tu correo institucional. Las cuentas las entrega tu institución; no hay registro público.
Iniciar sesión