Este sistema automatiza la corrección, retroalimentación y gestión de entregas de estudiantes mediante Google Forms, Google Drive y Google Sheets, ideal para cursos que usan notebooks de Jupyter (.ipynb) en Google Colab.
El script procesa cada entrega, verifica el archivo, corrige las respuestas, calcula la nota, guarda resultados y envía retroalimentación personalizada al estudiante.
- ✅ Corrección automática de respuestas en notebooks.
- ✅ Validación de entregas: detecta si el archivo fue modificado.
- ✅ Límite de intentos (hasta 2 por estudiante).
- ✅ Retroalimentación detallada por actividad.
- ✅ Registro en hoja de cálculo (puntaje, nota, intentos, retroalimentación).
- ✅ Respaldo automático de archivos en Google Drive.
- ✅ Soporte para estudiantes: mensaje de contacto ante errores.
- ✅ Alertas al profesor en caso de fallos.
- ✅ Mensajes claros en español.
El código está dividido en tres archivos para mejor organización:
| Archivo | Descripción |
|---|---|
const.gs |
Constantes globales y por tarea (correos, IDs, respuestas correctas). |
onFormSubmit.gs |
Función principal que se ejecuta al enviar el formulario. |
funcAuxiliar.gs |
Todas las funciones auxiliares (corrección, validación, envío de correos, etc). |
Actualiza los siguientes valores:
const TEACHER_EMAIL = "tu-correo@tu-universidad.cl";
const BACKUP_FOLDER_ID = "ID_CARPETA_BACKUP_ENTREGAS_ESTUDIANTES";
const SHEET_ID = "ID_DE_GOOGLE_SHEET";
const TASK_FOLDER_ID = "ID_FOLDER_CON_ENTREGAS_BASE";
const SUPPORT_EMAIL = "soporte-ayudantia@tu-universidad.cl";🔗 Para obtener un ID de carpeta o archivo, abre el elemento en Drive y copia el ID del URL:
https://drive.google.com/drive/folders/kajsdhsljk394n23482349nasfdlkj
Cambia solo estas líneas por cada práctica:
const CURRENT_TASK_NAME = "Práctico 1"; // ← Cambia solo esta línea
const CORRECT_ANSWERS = { ... }; // Respuestas correctas
const MAX_SCORE = 8; // Número de actividadesLos estudiantes deben:
- Descargar el archivo base (ej.
T1.ipynb) de la carpeta de tareas. - Abrirlo en Google Colab o Jupyter.
- Responder usando el formato:
# @title Actividad 1 respuesta = "34944" # @param
- Subir el archivo
.ipynb(no un enlace) en el formulario. - Asegurarse de que el archivo tenga permisos:
"Cualquiera con el enlace puede ver".
El sistema guarda los resultados en una hoja de cálculo con estas columnas:
| Columna | Encabezado | Uso |
|---|---|---|
| D | Correo | Identificación del estudiante |
| F | Puntaje | Número de respuestas correctas |
| G | Intento | Número de envíos (máx. 2) |
| H | Nota | Calificación final (1.0 – 7.0) |
| I | Retroalimentación | Detalles por actividad |
✅ La primera fila se completa automáticamente.
Cada archivo entregado se copia a una carpeta de respaldo con el formato:
[Backup] Práctico 1 - Nombre Estudiante - 2025-04-05
El script se ejecuta automáticamente al enviar el formulario.
- Abre el proyecto en Google Apps Script.
- Haz clic en el ícono de reloj ⏱️ ("Desencadenadores").
- Crea uno nuevo:
- Función:
onFormSubmit - Evento: Desde formulario → Al enviar formulario
- Función:
El formulario debe tener:
- ✅ Un campo de texto o lista con "Nombre" en el título.
- ✅ Un campo de subida de archivos (permite
.ipynb). - ✅ Configurado para recopilar correos electrónicos (opcional, pero recomendado).
El sistema envía correos automáticos con:
- ✅ Puntaje y nota.
- ✅ Retroalimentación por actividad (✅ / ❌).
- ✅ Número de intento.
- ✅ Instrucciones para corregir errores.
- ✅ Contacto de soporte si cree que hubo un error.
| Error | Acción |
|---|---|
| Falta archivo | Se pide volver a enviar |
| Permiso denegado | Se instruye a cambiar permisos |
| Archivo sin modificar | Se rechaza la entrega |
| Más de 2 intentos | No se aceptan más envíos |
| Error técnico | Se alerta al profesor y al estudiante |
Todos los errores incluyen:
"Si crees que esto es un error, escribe a [soporte@...] con tu situación."
La nota se calcula linealmente:
- 0% – 50% del puntaje máximo → escala de 1.0 a 4.0
- 50% – 100% → escala de 4.0 a 7.0
Ejemplo: con MAX_SCORE = 8, 4 puntos = 4.0, 8 puntos = 7.0.
📦 Sistema-Correccion-Automatica
├─ const.gs → Constantes
├─ onFormSubmit.gs → Función principal
├─ funcAuxiliar.gs → Funciones auxiliares
└─ README.md ← Este archivo
- Este sistema está diseñado para ----------.
- Es fácil de reutilizar para nuevas tareas: solo cambia
CURRENT_TASK_NAMEyCORRECT_ANSWERS. - Usa Google Workspace sin necesidad de servidores externos.