Saltar al contenido
VeriCode Iniciar sesión

Python · C · C++

Exámenes de programación en línea, con ejecución segura y detección de similitud

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.

3 lenguajes
Python 3.11, C17 y C++17 en el mismo examen.
1 contenedor
por ejecución, sin red y con límites de recursos.
Casos ocultos
La calificación usa todos los casos, no solo los de ejemplo.
Revisión docente
Cada alerta de similitud la decide un profesor.

Funciones

Todo el examen en un solo lugar, de la creación a la revisión

Para docentes

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.

Generación con IA

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.

Grupos con invitación

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.

Monitoreo en vivo

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.

Resultados y calificaciones

La calificación se calcula sola con los casos aprobados. Consulta resultados por examen y las calificaciones de cada grupo.

Alertas de similitud

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.

Para alumnos

Editor en el navegador

El mismo editor de VS Code, con resaltado para Python, C y C++. No hay nada que instalar.

Compilar y probar

Con un botón o Ctrl+Enter ejecutas tu código contra los casos de ejemplo y ves la salida de cada uno.

Tiempo justo

El servidor lleva el tiempo del examen, así que es el mismo para todos y no depende del reloj de tu equipo.

Autoguardado

Mientras presentas, tu código se guarda automáticamente en el navegador, por problema y por lenguaje.

Únete con un código

Entra al grupo con el código o el enlace que comparte tu profesor y ahí aparecen tus exámenes.

Tu calificación

Al entregar, tu código se califica en segundo plano y la calificación aparece en cuanto termina.

Cómo funciona

De la clave de acceso a la alerta de similitud

Así viaja una entrega por el sistema. La respuesta al alumno es inmediata; lo pesado ocurre en segundo plano.

  1. 1

    Iniciar

    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.

  2. 2

    Probar

    Cada “Compilar y probar” crea un contenedor aislado que corre el código contra los casos de ejemplo y devuelve la salida.

  3. 3

    Entregar

    Al entregar, o al acabarse el tiempo, el código queda guardado en la base de datos en el mismo momento.

  4. 4

    Calificar

    Una cola de calificación ejecuta la entrega contra todos los casos, incluidos los ocultos. Si el servidor se reinicia, retoma las pendientes.

  5. 5

    Preprocesar

    Al calificar, cada respuesta pasa por el servicio de similitud y su huella numérica (embedding) se guarda para después.

  6. 6

    Analizar

    Cuando el profesor presiona “Analizar plagio”, se comparan las huellas y los pares que superan el umbral se vuelven alertas.

Detección de similitud

Compara la estructura del programa, no el texto

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.

  1. 01

    Normaliza. Quita comentarios, espacios y estilo de indentación, y cambia nombres y literales por marcadores.

  2. 02

    Renderiza. Dibuja el código como imagen, con un tono por tipo de token, y la divide en fragmentos.

  3. 03

    Codifica. Una red convolucional (CNN) convierte cada fragmento en un vector.

  4. 04

    Compara. Combina la similitud coseno global y la de cada fragmento en un puntaje calibrado de 0 a 1.

  5. 05

    Alerta. Los pares sobre el umbral quedan como alertas pendientes, y el profesor decide si hubo plagio.

Alumno A
def promedio(lista):
    # suma y divide
    total = 0
    for x in lista:
        total += x
    return total / len(lista)
Alumno B
def media(valores):
    s=0
    for v in valores:
        s+=v
    return s/len(valores)
Las dos, ya normalizadas idénticas
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

0.94

Integridad y seguridad

Código ajeno corriendo en el servidor, con las puertas cerradas

Sandbox de ejecución

  • Un contenedor nuevo por ejecución, sin acceso a la red.
  • Corre como usuario sin privilegios, sin capabilities y con no-new-privileges.
  • Límites de memoria, CPU, procesos y tamaño de archivos.

Integridad del examen

  • Detecta cuando el alumno sale de la ventana o presiona Impr Pant.
  • El servidor lleva la cuenta y, al llegar al límite, entrega el examen.
  • Marca de agua con el nombre y la matrícula del alumno sobre el examen.

Cuentas y accesos

  • Roles de alumno, maestro, coordinador y administrador con sesión JWT.
  • Límites de intentos en el login, las claves de acceso y las ejecuciones.
  • Cambiar la contraseña invalida las sesiones anteriores.

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

Cinco piezas, cada una con un trabajo

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.

  • React 19
  • Vite
  • Tailwind CSS
  • Monaco Editor
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Docker
  • PyTorch
  • ONNX Runtime

¿Ya tienes cuenta?

Entra con tu correo institucional. Las cuentas las entrega tu institución; no hay registro público.

Iniciar sesión