Como podemos avaliar o desempenho dos alunos nos cursos de ciências computacionais?

10

Como alguém que tem que ministrar cursos em ciências computacionais, sou confrontado com a antiga questão: como avalio a capacidade dos alunos de aprender um assunto que depende de aplicativos difíceis de testar com métodos de teste "padrão" ( exames escritos ou orais)? Parte do curso depende da compreensão da teoria e dos métodos em um nível abstrato e, para isso, eu gostaria de continuar usando um teste escrito para esses conceitos. No entanto, testar a compreensão do uso prático desses métodos requer uma abordagem diferente

Dados os desafios naturais associados não apenas à proliferação de plataformas diferentes (para MATLAB, Modelica, Mathematica e outras linguagens), mas também à conectividade à Internet e à segurança de testes, eu estaria interessado em métodos novos ou originais para avaliar praticamente a compreensão dos alunos sobre métodos numéricos. (Os recursos que promovem a segurança do teste são particularmente desejáveis.)

EDIT: Também devo mencionar que a turma que estou ministrando é um curso de nível introdutório, para que os alunos tenham uma base de conhecimento relativamente pequena para trabalhar.

aeismail
fonte
11
Permitindo que eles trabalhem em um (mini?) Projeto de sua escolha, editando / revisando criticamente códigos de código aberto como PLASMA / MAGMA / LAPACK / ScaLAPACK? Estou falando da perspectiva de um aluno.
Inquérito
Obrigado pelo comentário - lembrei-me de que esqueci de mencionar que este é um curso introdutório, por isso não devo trazer conceitos como programação paralela e otimização de desempenho - apenas um foco nos métodos e algoritmos numéricos básicos.
aeismail

Respostas:

5

Aqui está o que eu vi como estudante e assistente de ensino:

  • Projetos em programação e métodos numéricos foram bons em termos de reunir muitos conceitos e forçar a mim e a outros alunos a serem criativos. No entanto, em projetos computacionais, provavelmente vale a pena dedicar um pouco de tempo à carpintaria de softwarehabilidades para que os alunos escrevam um código mais organizado. Quando eu estava na graduação e não sabia nada melhor, eu tinha o código de espaguete recortado e colado que provavelmente era um inferno para as alunos. Você pode evitar esse destino ensinando-lhes algumas boas práticas. Além disso, se você der a todos projetos semelhantes o suficiente (por exemplo, calcular todas as propriedades termodinâmicas em uma determinada lista para um conjunto de compostos, um projeto de longo prazo em uma aula de termodinâmica de graduação; mais tarde, foi uma tarefa de casa durante uma semana na termodinâmica de pós-graduação), basicamente esperam que eles praticamente se copiem e depurem o código um do outro.
  • A lição de casa , semanal ou quinzenal, era o melhor método de curto prazo para aprender novos métodos e conceitos. É mais fácil programar algo, com uma semana para fazê-lo. Novamente, espere que eles copiem mais ou menos uns dos outros e depurem o código um do outro.
  • Os testes não eram realmente bons para outra coisa senão alguns métodos curtos ou perguntas de análise. Você não pode fazer nenhuma programação em testes, mas também deve haver menos trapaça , quero dizer, colaboração. Você também pode testar a codificação de lápis e papel em questionários, o que é bom para conceitos básicos, mas provavelmente injusto para conceitos avançados ou qualquer coisa que exija comandos muito especializados, porque os alunos teriam acesso à documentação se estivessem codificando em um computador.
  • Os exames eram mais ou menos o mesmo que os testes, se fossem ministrados em sala de aula, mas mais longos e mais difíceis. Eu tive aulas para fazer exames em casa no trabalho computacional; nesse caso, você pode fazer mais perguntas orientadas para a computação e esperar que elas programem para resolver problemas. No entanto, os exames para levar para casa têm o mesmo tipo de problemas que os trabalhos de casa e os projetos de graduação; nesse caso, provavelmente é melhor se você estabelecer uma política de colaboração mais draconiana para os exames para levar para casa. Eu fiz alguns exames realmente bons, então acho que eles podem funcionar bem se o instrutor for suficientemente criativo.
  • Os Laboratórios Computacionais são menos eficazes do que os laboratórios molhados análogos nas aulas de ciências, porque com um computador à sua frente, é muito mais fácil brincar. Havia algumas pessoas nas minhas aulas que sempre passavam algum tempo em laboratórios de computação jogando poker online. Esses laboratórios são provavelmente mais eficazes como demonstrações ou como lições supervisionadas sobre habilidades práticas em ciências computacionais, se você tiver assistentes de ensino suficientes para percorrer o laboratório e garantir que as pessoas estejam recebendo ajuda e que ninguém esteja brincando on-line.
Geoff Oxberry
fonte
5

Eu lecionei, lecionei ou auxiliei em uma variedade de cursos relacionados a métodos numéricos e computacionais, desde a graduação do nível superior até o nível avançado de pós-graduação. Aqui estão os elementos que considero úteis como instrutor:

Pesquisar projetos

Para aulas avançadas, um projeto de pesquisa (incorporando pesquisa numérica, geralmente algum desenvolvimento de software e uma redação) é uma maneira muito agradável de os alunos vincularem suas pesquisas a seus cursos acadêmicos. Penso que um projeto deve ser obrigatório nos cursos de pós-graduação, mas para os graduandos é melhor substituí-los por um trabalho mais direcionado.

Programação de tarefas de casa

O núcleo de qualquer aula de ciências computacionais são tarefas de programação acessíveis. Para alunos sem experiência em programação, você precisará fazer backup de suas tarefas com algumas sessões introdutórias no ambiente de programação e, idealmente, algum tipo de "sala de ajuda" oferecida pelo seu departamento ou por uma organização estudantil como o SIAM. Permitir várias estruturas e linguagens de programação pode ser difícil, aceitei programas escritos em qualquer idioma, mas suportava apenas um ambiente, geralmente disponível gratuitamente nos laboratórios de informática da Universidade (sistema operacional, editor, shell, intérprete, etc.)

Testes

Eu realmente gosto de testes de 10 a 15 minutos em sala de aula uma vez por semana ou a cada duas semanas. É um bom feedback bidirecional: os alunos vêem como estão indo contra as minhas expectativas e uns contra os outros, e vejo quais conceitos estão atingindo ou perdendo. Esse estilo de avaliação não é muito usado na Europa e acho que é uma pena.

Exames

Os exames são lápis e papel, com análise de algoritmos, fragmentos de código e técnicas matemáticas. Eu nunca participei de um exame de laboratório de informática, como aluno ou como instrutor / avaliador. Acho que a coisa mais próxima que vi foi exigir que um aluno demonstrasse sua lição de casa ou projeto, além de responder a perguntas sobre design ou implementação.

A restrição da desonestidade

Tanto como estudante quanto como instrutor, tenho visto desonestidade suficiente no sistema acadêmico para evitar confiar na honra de mais de 50% da nota de um aluno. Isso significa que avaliações como projetos e trabalhos de casa, onde o acesso a recursos externos pode levar à desonestidade acadêmica, não contribuem para mais de 50% da nota do curso.

Aron Ahmadia
fonte
Acho que o ponto final é especialmente importante - ainda terei um exame escrito em sala de aula para cobrir os pontos testáveis ​​nesse formato. Isso será pelo menos dois terços da série, eu acho. Também assegurarei que haja um artigo que acompanhe o projeto fora da sala de aula, para que os alunos tenham que passar pelo menos algum tempo se engajando no material. Eu também poderia fazer algumas randomizações de entradas e mudanças no problema para reduzir a tentação e a capacidade de trapacear.
precisa saber é
@AronAhmadia: Os questionários semanais são padrão nas universidades alemãs entre os departamentos, apesar de sua total independência.
Death Breath
@aeismail: os americanos têm uma compreensão muito estreita (em alguns casos, ridícula) de plágio. No primeiro ano, você poderá impedir que os alunos colaborem, mas nos anos seguintes, a Fachschaft catalogará suas tarefas e ficará progressivamente mais difícil colocar problemas que não foram resolvidos em um grau substancial nos anos anteriores.
Death Breath
@ Deathbreath: (para Aron) Os testes semanais não são padrão aqui em Aachen - pelo menos não na Engenharia Mecânica. Eu nem sei se posso dar a eles. (Não que eu queira.)
aeismail
@ Deathbreath: (para mim) Se os alunos usam exames anteriores para aprender a metodologia, fico feliz em deixá-los usá-los. Estou mais preocupado que eles aprendam a usar as ferramentas. Dito isto, estou mudando o conteúdo do curso de ano para ano, para que qualquer pessoa que tenha uma pontuação perfeita nas coisas antigas e um ovo de ganso nas coisas novas provavelmente seja suspeita de confiar demais no Fachschaft .
precisa saber é
5

Algumas das outras respostas sugerem projetos individualizados. Estou fazendo isso na minha aula de software de elementos finitos e é muito divertido; Eu acredito que também é realmente instrutivo para os alunos. Ao mesmo tempo, também é muito demorado: da última vez que tive 18 alunos, foi praticamente um trabalho de período integral durante todo o semestre supervisionar esses projetos. Portanto, é preciso ter uma turma pequena o suficiente para que esse trabalho funcione com sucesso.

Wolfgang Bangerth
fonte
Para que
conste
2

Na minha opinião sincera, acho que o teste final é aplicar o seu conhecimento em território desconhecido. Eu proporia projetos aplicados projetados para testar a capacidade dos alunos de selecionar modelos eficazes, discretização, métodos de aproximação / resolução, paralelismo explorável, estimativas de erro e análise numérica, bem como métodos de visualização para descrever um fenômeno físico específico de interesse computacional. Eu iria além, pedindo aos alunos que justificassem cada escolha com base no tamanho do problema / precisão esperada. A chave é saber quais métodos são apropriados sob as restrições dos fenômenos sob investigação. Os alunos podem optar por selecionar um fenômeno de sua escolha. Mas se você quiser torná-lo ainda mais desafiador, atribua a cada aluno um projeto computacional em um campo não relacionado à sua pesquisa de dissertação.

Paulo
fonte
Meus alunos são alunos do segundo ano do ensino médio, e estão longe de ter um campo de pesquisa na dissertação. :-) Mas o pensamento é definitivamente apreciado.
precisa saber é