2009-02-12 10 views
8

Este semestre estoy impartiendo una clase en una universidad local. Hasta el momento, les pedí a los estudiantes que entreguen sus asignaciones de programación enviándome un correo electrónico. Pero hay muchas molestias al sacar 20 soluciones de los correos electrónicos.Cómo usar las herramientas de control de origen para que los estudiantes entreguen las tareas

¿Alguien ha usado alguna vez una herramienta de control de fuente para que los estudiantes entreguen proyectos? ¿Qué usaste y cómo se configuró?

+0

Idea interesante. No estoy seguro si funciona, pero enseña una valiosa lección. –

Respuesta

5

En mi universidad, la Escuela de Informática y Ciencias de la Información se ejecuta un servidor CVS estudiante. Cada sujeto (que elige usarlo) obtiene un repositorio, con cada alumno inscrito en el tema obteniendo una carpeta allí. Las cuentas de administrador obviamente tienen acceso a todo el lote, mientras que cada estudiante solo puede pagar en su propia carpeta.

Por ejemplo, tomemos el tema Sistemas Operativos (He enseñado en el pasado):

/cis_os_2009 
    |-studentID1 
      |-assignment1 
      |-assignment2 
      |-prac1 
    |-studentID2 
    |-etc 

En las especificaciones de asignación que damos instrucciones para la presentación de las tareas.

Me gusta más el sistema de envío de CVS que los correos electrónicos y el sistema de envío web que utilizan otras áreas de la universidad. Enseña a los estudiantes a usar un sistema de control de versiones. Puede borrar casi por completo la excusa "mi unidad flash USB fue extraviada/rota/robada" para los estudiantes que no entregan las tareas, ya que los estudiantes deben hacer commits regulares en el repositorio (en algunos temas, las marcas se asignan para corregir el uso de CVS).

El inconveniente es que no se puede suponer que los estudiantes sepan cómo usar CVS/SVN al comienzo del semestre. La mayoría de los sujetos aquí dedican la práctica de la primera semana a un tutorial de CVS para que la gente pueda asegurarse de que a) los administradores del sistema hayan configurado sus cuentas correctamente, yb) que puedan agregar y confirmar los archivos correctamente. También significa que tienes que ser un poco indulgente con los envíos de la primera asignación.

Todo lo que necesita hacer para marcar es revisar el repositorio tal como existía en la fecha/hora de vencimiento de la tarea. Si ejecuta scripts para automatizar parcialmente el marcado, el repositorio lo hace muy fácil. Usted sabe exactamente cuál debería ser la estructura de la carpeta y dónde deben ubicarse todos los archivos. En las asignaturas que he enseñado, tenemos un archivo de calificaciones con un resumen de las calificaciones de los estudiantes y comentarios sobre por qué se dedujeron las calificaciones. Verificamos este archivo en el repositorio y los estudiantes pueden obtener sus calificaciones inmediatamente haciendo una actualización de cvs.

1

Creo que una forma común es crear directorios para cargas ftp. Algún trabajo cron puede verificar los envíos y ejecutar automáticamente hacer y luego ejecutar pruebas.

Usar el control de fuente parece mucho trabajo pero se puede hacer.

Cuando escuché un podcast de pregrado de Berkeley CS para un curso que estaban usando algo, llame a un "autograder" = muy probablemente un elemento interno que permite presentaciones y luego ejecuta compilaciones y pruebas.

¿qué hay aquí:

http://www.users.muohio.edu/helmicmt/autograder/index.php

http://prisms.cs.umass.edu/mcorner/autograder

1

Dado que el código de Google es compatible ahora con Mercurial, esto debería ser posible utilizando el código de Google o utilizando http://bitbucket.org para alojar el código de forma abierta. Creo que sería una gran herramienta para que cualquiera pueda aprender, una herramienta de control de versiones distribuidas es tan esencial para facilitar el desarrollo.

Recomendaría git, pero es un poco alto en el departamento de curva de aprendizaje.

0

Voy a intentar usar Google Docs en mi clase de informática AP este año. Parece que funcionará muy bien.

Haré que cada alumno se registre para obtener una cuenta de Google y haga que copien & peguen su código fuente en un nuevo documento de Google, asegurándose de que usan una fuente monoespaciada. Luego, simplemente compartirán el documento con la cuenta de Google que me preparé.

Google Docs me permitirá escribir comentarios directamente en sus documentos, que podrán ver la próxima vez que inicien sesión. Crearé una carpeta diferente para cada tarea para mantener todo organizado.

No estoy seguro si esta es la MEJOR solución, pero es gratis, y MUCHO mejor que hacer que el estudiante imprima todo como lo hice el año pasado.

1

No lo he probado en ningún curso (no enseño en estos días) pero he usado una configuración de SC mientras superviso a los estudiantes que hacen su año en el trabajo, con un efecto similar.

Subversion sería mi elección; CVS tiene muchas fallas y Git tiene una desagradable curva de aprendizaje para el principiante. Somos una tienda Win para que los estudiantes puedan usar TortoiseSVN/AnkhSVN para la integración de GUI; obviamente esto puede no ser cierto en tu caso.

Establecí un único repositorio por curso, con una carpeta en el nivel base para cada alumno y el arreglo de repositorio habitual dentro de él. En SVN es muy fácil configurar los permisos de acceso por carpeta en la configuración de repo, por lo que los estudiantes solo pueden enviar y recibir informes en su propio directorio, pero puedes ver todo.

Cuestiones relacionadas