Corrector Automático para Taller de Programación I (75.42)
Universidad de Buenos Aires - Facultad de Ingeniería
+Este programa requiere el siguiente los siguientes programas y bibliotecas:
+* php4-cli
+* php4-imap
+* php4-pear
+* php4 PEAR DB_DataObject (1.7.2 o superior) (# pear install -a DB_DataObject)
+* make
+* python2.4
+* python2.4-sqlobject (0.6.2 o superior)
+La base de datos a utilizar es a elección, pero se recomienda SQLite, con la
+que fue desarrollado y la única probada, por lo tanto los siguientes paquetes
+son también necesarios en condiciones normales:
+* sqlite (para crear la base de datos y tareas de mantenimiento)
+* php4-sqlite
+* python2.4-sqlite
+
+En el directorio /etc/sercom se encuentran los archivos de configuración,
+debería darle una mirada antes de correr el servidor.
+
+/etc/sercom/log.ini es un poco más complejo y sirve para configurar el nivel
+de log. El formato está descripto en:
+http://docs.python.org/lib/logging-config-fileformat.html
+Se lo provee de una forma bastante razonable, probablemente haya que cambiar
+la sección [handler_mail] para poner un servidor SMTP y direcciones de mail
+válidas solamente.
+
+Los archivos de configuración originales se encuentran en
+/usr/share/doc/sercom/examples, por si fuera necesario recuperarlos.
+
+En /var/lib/sercom están los archivos de datos del programa. Contiene:
+- Makefile de ejemplo ('Makefile' para C y 'Makefile-cpp' para C++).
+- Directorio 'intentos' donde los intentos de entrega que llegan por mail
+ de los alumnos. Su estructura es:
+ intentos/año.cuatrimestre/curso.ejercicio.entrega/padron.intento
+ dentro de cada directorio están los archivos fuente enviados por el alumno.
+- Directorio 'ejercicios' donde los datos sobre los ejercicios deben ser
+ guardados, incluyendo los archivos para casos de prueba. Su estructura es:
+ ejercicios/[id]/Makefile
+ casos_de_prueba/[nombre]/{stdin}
+ {stdout}
+ {stderr}
+ {entradas/[archivo]}
+ {salidas/[archivo]}
+ [algo] significa que algo es una variable. {algo} indica que puede no existir.
+ id: es el identificador de ejercicio en la base de datos.
+ nombre: es el nombre del caso de prueba
+ stdin/stdout/stderr: es la entrada estándar, salida estándar y salida de error
+ esperada (la entrada es la que espera el programa a probar y las salidas son
+ las que espera el corrector para saber si la corrida fue correcta).
+ entradas: los 'archivo's de entradas son los archivos que espera tener
+ presente el programa para correr el caso de prueba.
+ salidas: los 'archivo's de salidas son los archivos que espera que genere (o
+ modifique si estaba presente también en entradas) el corrector y con el que
+ serán comparados dichos archivos generados para evaluar si la corrida fue
+ correcta.
+- Archivo de base de datos: la configuración por omisión espera la base de datos
+ en /var/lib/sercom/corrector.sqlite, con la estructura descripta en
+ /usr/share/doc/sercom/schema.sql. Para crear la base de datos vacía:
+ sqlite /var/lib/sercom/corrector.sqlite < /usr/share/doc/sercom/schema.sql
+ Pero recuerde que también habrá que cargar la base de datos con los datos
+ mínimos para que el corrector funcione (entregas, ejercicios, cursos,
+ docentes, inscriptos, casos de prueba).
+ Para agregar o listas 'objetos' de la base de datos, se puede utilizar el
+ programa sc_dbq, que permite ABMCL sobre la DB de manera simple.
+
+Por omisión el programa guarda el archivo de log en /var/log/sercom.log.
+
+ -- Leandro Lucarella <llucare@fi.uba.ar>, sáb mar 5 22:16:29 ART 2005