¿Cómo podemos evaluar el desempeño de los estudiantes en los cursos de ciencias computacionales?

10

Como alguien que tiene que impartir cursos en ciencias computacionales, me enfrento a la antigua pregunta: ¿cómo evalúo la capacidad de los estudiantes para aprender una materia que depende de aplicaciones que son difíciles de evaluar con métodos de evaluación "estándar"? exámenes escritos u orales)? Parte del curso depende de comprender la teoría y los métodos en un nivel abstracto, y para eso, me gustaría continuar usando una prueba escrita para esos conceptos. Sin embargo, probar la comprensión del uso práctico de estos métodos requiere un enfoque diferente

Dados los desafíos naturales asociados no solo con la proliferación de diferentes plataformas (para MATLAB, Modelica, Mathematica y otros idiomas) sino también con la conectividad a Internet y la seguridad de las pruebas, me interesarían métodos nuevos u originales para evaluar prácticamente la comprensión de los estudiantes sobre métodos numéricos. (Las características que promueven la seguridad de las pruebas son particularmente deseables).

EDITAR: También debo mencionar que la clase que estoy enseñando es un curso de nivel introductorio, por lo que los estudiantes tienen una base de conocimiento relativamente pequeña para trabajar.

aeismail
fuente
1
¿Permitiéndoles trabajar en un (mini?) Proyecto de su elección, editando / revisando críticamente códigos de código abierto como PLASMA / MAGMA / LAPACK / ScaLAPACK? Estoy hablando desde la perspectiva de un estudiante.
Investigación
Gracias por el comentario, me recordó que olvidé mencionar que este es un curso introductorio, por lo que no se supone que traiga conceptos como programación paralela y optimización del rendimiento, solo un enfoque en los métodos y algoritmos numéricos básicos.
aeismail

Respuestas:

5

Esto es lo que he visto como estudiante y asistente de enseñanza:

  • Los proyectos de programación y métodos numéricos fueron buenos en términos de reunir muchos conceptos y obligarnos a mí y a otros estudiantes a ser creativos. Sin embargo, con proyectos computacionales, probablemente valga la pena dedicar un poco de tiempo a la carpintería de softwarehabilidades para que los estudiantes escriban código más organizado. Cuando era estudiante universitario y no sabía nada mejor, tenía un código de espagueti para cortar y pegar que probablemente era un infierno para los calificadores. Es posible que desee evitar ese destino enseñándoles algunas buenas prácticas. Además, si le da a todos proyectos lo suficientemente similares (por ejemplo, calcular todas las propiedades termodinámicas en una lista dada para un conjunto de compuestos fue un proyecto a largo plazo en una clase de termodinámica de pregrado; más tarde, fue una tarea de tarea de una semana de duración) en termodinámica de posgrado), básicamente espere que prácticamente se copien y depuren el código del otro.
  • Las tareas , semanales o quincenales, fueron el mejor método a corto plazo para aprender nuevos métodos y conceptos. Es más fácil programar algo, dado una semana para hacerlo. Nuevamente, espere que se copien más o menos entre sí y depuren el código del otro.
  • Las pruebas no eran realmente buenas para nada más que un par de métodos cortos o preguntas de análisis. No puede hacer ninguna programación en las pruebas, pero también debería haber menos trampa , es decir, colaboración. También puede probar la codificación con lápiz y papel en las pruebas, lo cual es bueno para los conceptos básicos, pero probablemente injusto para los conceptos avanzados, o cualquier cosa que requiera comandos muy especializados, porque los estudiantes tendrían acceso a la documentación si estuvieran codificando en una computadora.
  • Los exámenes fueron más o menos lo mismo que los cuestionarios, si se dieron en clase, pero más largos y más difíciles. He tenido clases que dan exámenes para llevar a casa en trabajo computacional, en cuyo caso puede hacer más preguntas orientadas a la computación y esperar que programen para resolver problemas. Sin embargo, los exámenes para llevar a casa tienen el mismo tipo de problemas que las tareas para el hogar y los proyectos de tipo universitario, en cuyo caso, probablemente sea mejor si establece una política de colaboración más draconiana para los exámenes para llevar a casa. He tenido algunos buenos exámenes para llevar a casa, así que creo que pueden funcionar bien si el instructor es lo suficientemente creativo.
  • Los laboratorios de computación son menos efectivos que los laboratorios húmedos análogos en las clases de ciencias, porque con una computadora frente a ti, es mucho más fácil hacer el tonto. Había algunos tipos en mis clases que siempre pasaban tiempo en laboratorios de computación jugando póker en línea. Es probable que estos laboratorios sean más efectivos como demostraciones o como lecciones supervisadas sobre habilidades prácticas en ciencias computacionales si tiene suficientes asistentes de enseñanza para recorrer el laboratorio y asegurarse de que las personas obtengan ayuda y que nadie esté jugando en línea.
Geoff Oxberry
fuente
5

He dado conferencias, enseñado o asistido en una variedad de cursos relacionados con métodos numéricos y computacionales, desde el pregrado de nivel superior hasta el nivel de posgrado avanzado. Estos son los elementos que he encontrado útiles como instructor:

Proyectos de investigación

Para las clases avanzadas, un proyecto de investigación (que incorpora investigación numérica, generalmente un poco de desarrollo de software y una redacción) es una forma muy agradable para que los estudiantes vinculen su investigación con su trabajo académico. Creo que un proyecto debería ser obligatorio en los cursos de posgrado, pero para los estudiantes de pregrado, es mejor reemplazarlos con un trabajo más dirigido.

Programación de tareas

El núcleo de cualquier clase de ciencias computacionales son las tareas de programación accesibles. Para los estudiantes sin experiencia en programación, deberá respaldar sus tareas con algunas sesiones introductorias al entorno de programación, e idealmente algún tipo de "sala de ayuda" ofrecida por su departamento o una organización estudiantil como SIAM. Permitir múltiples marcos y lenguajes de programación puede ser difícil, acepté programas escritos en cualquier idioma pero admití solo un entorno, generalmente disponible gratuitamente en los laboratorios de computación de la Universidad (sistema operativo, editor, shell, intérprete, etc.)

Cuestionarios

Realmente me gustan los cuestionarios cortos de 10-15 minutos en clase una vez por semana o cada dos semanas. Es una buena respuesta bidireccional: los estudiantes ven cómo les va en contra de mis expectativas y entre ellos, y yo veo qué conceptos están golpeando y perdiendo. Este estilo de evaluación no se usa con mucha frecuencia en Europa, y creo que es una pena.

Exámenes

Los exámenes son a lápiz y papel, con análisis de algoritmos, fragmentos de código y técnicas matemáticas. Nunca he participado en un examen de laboratorio de computación, ya sea como estudiante o como instructor / evaluador. Creo que lo más cercano que he visto es pedirle a un estudiante que demuestre su tarea o proyecto, así como que responda preguntas sobre diseño o implementación.

La restricción de la deshonestidad

Tanto como estudiante como instructor, he visto suficiente deshonestidad en el sistema académico para evitar depender del honor por más del 50% de la calificación de un estudiante. Esto significa que evaluaciones como proyectos y tareas, donde el acceso a recursos externos podría conducir a la deshonestidad académica, no contribuyen a más del 50% de la calificación del curso.

Aron Ahmadia
fuente
Creo que el punto final es especialmente importante: aún tendré un examen escrito en clase para cubrir los puntos que se pueden probar en ese formato. Eso será al menos dos tercios de la calificación, creo. También me aseguraré de que haya una redacción que acompañe el proyecto fuera de clase, de modo que los estudiantes tengan que pasar al menos un tiempo participando en el material. También podría hacer algo de aleatorización de entradas y cambiar el problema para reducir la tentación y la capacidad de hacer trampa.
aeismail
@AronAhmadia: los cuestionarios semanales son estándar en las universidades alemanas en todos los departamentos a pesar de su total independencia.
Deathbreath
@aeismail: los estadounidenses tienen una comprensión muy estrecha (que limita con lo ridículo en algunos casos) del plagio. El primer año puede evitar que los estudiantes colaboren, pero los años siguientes, el Fachschaft habrá catalogado sus tareas y se volverá progresivamente más difícil plantear problemas que no se han resuelto en un grado sustancial en años anteriores.
Deathbreath
@Deathbreath: (a Aron) Las pruebas semanales no son estándar aquí en Aachen, al menos no en Ingeniería Mecánica. Ni siquiera sé si se me permite darlos. (No es que quisiera)
Aeismail
@Deathbreath: (para mí) Si los estudiantes usan exámenes pasados ​​para aprender la metodología, me alegra dejar que los usen. Me preocupa más que aprendan a usar las herramientas. Dicho esto, estoy cambiando el contenido del curso de año en año, por lo que cualquiera que obtenga una puntuación perfecta en las cosas viejas y un huevo de gallina en las cosas nuevas probablemente sospeche que confía demasiado en el Fachschaft .
aeismail
5

Algunas de las otras respuestas sugieren proyectos individualizados. Lo estoy haciendo en mi clase de software de elementos finitos y es muy divertido; Creo que también es realmente instructivo para los estudiantes. Al mismo tiempo, también requiere mucho tiempo: la última vez que tuve 18 estudiantes y fue prácticamente un trabajo de tiempo completo durante todo el semestre supervisar estos proyectos. Por lo tanto, uno debe tener una clase lo suficientemente pequeña como para que funcione correctamente.

Wolfgang Bangerth
fuente
Para el registro, he escrito mis experiencias sobre esto en la publicación # 39 en math.tamu.edu/~bangerth/publications.html#x-reviewed
Wolfgang Bangerth
2

En mi sincera opinión, creo que la prueba definitiva es aplicar sus conocimientos en un territorio desconocido. Propondría proyectos aplicados diseñados para evaluar la capacidad de los estudiantes para seleccionar modelos efectivos, discretización, métodos de aproximación / resolución, paralelismo explotable, estimaciones de errores y análisis numérico, así como métodos de visualización para describir un fenómeno físico particular de interés computacional. Yo iría más lejos al pedirles a los estudiantes que justifiquen cada elección en función del tamaño del problema / precisión esperada. La clave es saber qué métodos son apropiados bajo las restricciones de los fenómenos bajo investigación. Los estudiantes pueden optar por seleccionar un fenómeno de su elección. Pero si desea hacerlo aún más desafiante, asigne a cada estudiante un proyecto computacional en un campo no relacionado a su investigación de tesis.

Paul
fuente
Mis estudiantes son estudiantes de segundo año, por lo que están muy lejos de tener un campo de investigación de tesis. :-) Pero la idea es definitivamente apreciada.
aeismail