我们如何评估学生在计算科学课程中的表现?


10

作为必须教授计算机科学课程的人,我面临着一个古老的问题:我如何评估学生学习一门学科的能力,该学科取决于难以使用“标准”测试方法进行测试的应用程序(笔试或口试)?本课程的一部分确实取决于对抽象水平的理论和方法的理解,为此,我想继续对这些概念使用笔试。但是,测试对这些方法的实际使用的理解需要另一种方法

鉴于自然挑战不仅与不同平台(用于MATLAB,Modelica,Mathematica和其他语言)的泛滥相关,而且还与Internet连接和测试安全性相关,因此,我将对新的或原始的方法感兴趣,以实际评估学生对以下方面的理解:数值方法。(增强测试安全性的功能是特别可取的。)

编辑:我还应该提到,我所教的课程是入门级课程,因此学生的工作基础相对较小。


1
是否允许他们从事自己选择的(小型?)项目,编辑/严格审查诸如PLASMA / MAGMA / LAPACK / ScaLAPACK之类的开源代码?我是从学生的角度讲的。
Inquest 2012年

感谢您的评论,它使我想起了我忘记提及这是一门入门课程的过程,因此,我不应该引入诸如并行编程和性能优化之类的概念,而只是关注基本的数值方法和算法。
aeismail 2012年

Answers:


5

这是我作为学生和助教看到的东西:

  • 编程和数值方法方面的项目很好,可以将很多概念融合在一起,并迫使我和其他学生发挥创造力。但是,对于计算项目,可能值得花一点时间在软件木工上技能,使学生编写更有条理的代码。当我还是一个本科生并且不了解任何更好的东西时,我有粘贴和粘贴意大利面条的代码,这可能对平地机来说很糟糕。您可能想通过教他们一些好的做法来避免这种命运。另外,如果您给每个人足够相似的项目(例如,计算一组化合物的给定列表中的所有热力学性质,则是本科生热力学班的一个学期项目;后来,这是一个为期一周的作业) (在研究生热力学方面),基本上希望它们能够相互复制并调试彼此的代码。
  • 每周或每两周一次的家庭作业是学习新方法和新概念的最佳短期方法。一周之内就可以编写一些东西,这比较容易。再一次,期望他们或多或少地互相复制并调试彼此的代码。
  • 除了几个简短的方法或分析问题外,测验对其他任何事情都没有真正的好处。您不能对测验进行任何编程,但我的意思是协作应该减少作弊。您还可以在测验中测试铅笔和纸上的编码,这对基本概念很有用,但对高级概念或需要非常专业化命令的任何事物来说可能不公平,因为如果学生在计算机上进行编码,则可以访问文档。
  • 如果考试是在课堂上进行的,则考试与测验大致相同,但时间更长,难度更大。我上过课,参加计算工作的实地考试,在这种情况下,您可以提出更多面向计算的问题,并期望他们编程解决问题。但是,带回家的考试与家庭作业和本科生项目一样存在同样的问题,在这种情况下,如果您为带回家的考试建立更为严厉的协作政策,可能会更好。我已经进行了一些非常好的复习考试,所以我认为如果教师有足够的创造力,这些考试会很好地发挥作用。
  • 计算实验室的效率不及科学课程中类似的湿实验室,因为在您面前的计算机上,算起来容易得多。我班上有几个人总是在计算实验室里玩在线扑克。如果您有足够的助教在实验室中漫游,并确保有人得到帮助并且没有人在网上乱搞,那么这些实验室可能是最有效的演示或作为计算科学实践技能的监督课程。

5

我已经讲授,教授或协助了各种与数值和计算方法有关的课程,从高年级本科生到高级研究生。以下是我发现对教师有帮助的要素:

研究项目

对于高级班,研究项目(包括数值研究,通常是一些软件开发,以及一篇论文)是学生将研究与学术课程联系起来的一种很好的方式。我认为在研究生水平的课程中应该强制执行一个项目,但对于本科生,最好用更具指导性的工作代替。

编程作业分配

任何计算科学课程的核心都是可访问的编程作业。对于没有编程经验的学生,您需要通过对编程环境的一些介绍性会议来备份您的作业,并且最好是由您的部门或学生组织(例如SIAM)提供某种“帮助室”。允许多种框架和编程语言可能很困难,我接受用任何语言编写的程序,但仅支持一种环境,通常可以在大学计算机实验室免费使用(操作系统,编辑器,shell,解释器等)。

测验

我非常喜欢每周或隔周一次的10-15分钟的课堂小测验。这是一个很好的双向反馈:学生们看到他们的表现违背了我的期望并与彼此背道而驰,我看到了他们正在碰到和错过哪些概念。这种评估方式在欧洲不是很普遍,我认为这是一种耻辱。

考试内容

考试采用铅笔和纸笔,并分析算法,代码片段和数学技巧。作为学生或讲师/评估员,我从未参加过计算机实验室考试。我认为我所看到的最接近的要求学生证明自己的作业或项目,并回答有关设计或实施的问题。

不诚实的约束

无论是作为学生还是作为指导老师,我都已经在学术体系中看到足够的不诚实,可以避免依靠荣誉获得学生超过50%的成绩。这意味着诸如项目和作业之类的评估不能获得超过50%的课程成绩,在这些评估中,获取外部资源可能导致学术不诚实。


我认为最后一点特别重要-我仍将进行笔试,课堂考试,以涵盖该格式可测试的要点。我认为,这至少是三年级的三分之二。我还将确保在课堂外项目中附上一篇论文,以使学生们至少要花一些时间来学习这些材料。我可能还会对输入进行一些随机化处理,并更改问题以减少诱惑和作弊能力。
aeismail 2012年

@AronAhmadia:尽管完全独立,但每周两次的测验在德国各系大学都是标准的。
Deathbreath 2012年

@aeismail:美国人对窃的理解非常狭窄(在某些情况下是荒谬的)。第一年也许可以阻止学生进行协作,但是接下来的几年,Fachschaft将对您的作业进行分类,并且提出来的问题将变得越来越困难,而这些问题在过去几年中还没有得到实质性的解决。
死息2012年

@Deathbreath :(对Aron而言)在亚琛,每周的测验不是标准的,至少在机械工程中不是。我什至不知道我是否可以给他们。(不是我想要的。)
aeismail 2012年

@Deathbreath :(对我来说)如果学生使用过去的考试来学习方法,我很乐意让他们使用它们。我更担心他们会学习如何使用这些工具。就是说,我每年都在改变课程的内容,因此,任何在旧课程中取得完美成绩并在新课程中获得鹅蛋的人都可能有点怀疑过分依赖Fachschaft
aeismail 2012年

5

其他一些答案则建议个性化的项目。我在有限元软件课程中这样做,这很有趣。我相信这对学生也很有帮助。同时,这也是非常耗时的:上一次我有18个学生,整个学期监督这些项目几乎是一个全职工作。因此,必须有一个足够小的班级才能使这项工作成功进行。


为了记录在案,我已经写了我的经验,在这出版物#39在math.tamu.edu/~bangerth/publications.html#x-reviewed
沃尔夫冈Bangerth

2

坦率地说,我认为最终的考验是将您的知识应用于陌生领域。我将提出一些应用项目,这些项目旨在测试学生选择有效模型,离散化,逼近/求解器方法,可利用的并行性,误差估计和数值分析的能力,以及描述特定计算兴趣的物理现象的可视化方法。我会进一步要求学生根据问题的大小/预期的准确性来证明每个选择的合理性。关键是要知道在所研究现象的约束下哪种方法合适。学生可以选择自己选择的现象。但是,如果您想使其更具挑战性,请给每个学生分配一个与他们的论文研究无关的计算项目。


我的学生是大学二年级的本科生,所以距离他们的论文研究领域还有很长的路要走。:-)但是这种想法绝对值得赞赏。
aeismail 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.