技术文章和通讯

利用MATLAB和MOOC向各地的学生教授计算机编程

范德比尔特大学迈克·菲茨帕特里克和伊科斯·莱德齐


几年前,我们写了一篇题为用MATLAB和电子书教一年级工科学生计算机编程“,它讲述了我们在范德比尔特大学开设的编程入门课程CS 103的故事。该课程现在重新编号为CS 1103,自那时以来规模翻了一番。随着越来越多的学生认识到编程是一项基本的工作技能,它的受欢迎程度不断提高。

基于我们在范德比尔特的课程的成功,我们决定通过创建一个大规模的在线开放课程(MOOC),让所有人都能免费获得这些材料。我们把我们的MOOC命名为MATLAB编程简介.虽然我们预计它的受众将超过每年注册的300名范德比尔特学生,但参加MOOC的人数已经超过了我们最疯狂的预期。

在第一年提供的三个课程中,超过80000名注册学生观看了200多万次讲座,并提交了100000多个习题集进行评分。在注册学生中,通过习题集得分完成课程的人数大约是完成课程总数的两倍在过去的15年里,我们在范德比尔特开设了课程。据MOOC列表和学生评论的策展人Class Central说,MATLAB编程简介在2015年最佳在线课程排行榜上排名第二,在撰写本文时,在该网站有史以来的6000个MOOC中排名第五。

为什么要用MATLAB教授计算机编程?

MATLAB编程简介是一门入门级大学课程,教学生如何应用计算机科学的原理、词汇和结构,用MATLAB解决科学和工程问题®.

许多涵盖介绍性编程的MOOC使用通用语言,如C++、java。®、和Python®。我们决定使用MATLAB,因为它用途广泛且易于学习。此外,该语言的设计使我们能够用几行代码编写一个功能强大的程序(图1)。虽然问题可能相对复杂,但解决这些问题的MATLAB程序比用通用语言编写的等效程序简单得多。最后但并非最不重要的一点是,MATLAB被广泛应用于各种领域,包括自然科学、金融以及工程,并且在工业中大量使用。许多我们的MOOC之所以吸引学生,仅仅是因为它使用了MATLAB。

图1。一个关于在MATLAB中绘图的视频讲座,演示了如何使用两行MATLAB代码创建螺旋的3D绘图。

制作视频讲座

该课程提供了40多个视频讲座,涵盖矩阵和运算符、函数、绘图和调试、选择(条件语句)、循环、数据类型和文件输入/输出。根据主题的不同,讲座的长度从几分钟到近一小时不等。在这些讲座中,我们鼓励学生查阅我们基于MOOC的电子书,我们强调学生通过实践而不是观看来学习编程。然而,我们花费了大量时间我们没有时间制作视频,因为我们希望讲座尽可能引人入胜、内容丰富。

我们在很大程度上依靠多年的课堂教学经验来克服所有教育工作者在制作教学视频时面临的挑战:即,我们不了解我们的观众,我们无法在教学过程中观察他们的反应,我们在课堂上也没有收到即时反馈。此外,我们必须考虑目标受众的多样性,不仅包括大学生,还包括中学生和大学毕业生。

在视频中,我们慢慢地阅读课程材料,并尽可能清晰地表达想法(图2)。我们还加入了幽默,希望为讲座增添活力。这本身就是一个挑战:当你不知道观众是否会笑时,在无声的演播室里对着摄像机讲笑话需要勇气。谢天谢地,在这一点上,反馈一致是积极的。这些评论很典型:“我喜欢他的幽默感。”“他也很有趣,让你很投入。”“老师使用幽默,让我保持微笑,享受课程!”至少他们在微笑!

图2.Fitzpatrick教授在MATLAB中讲授数据类型的视频讲座。

事实上,这些视频总体上受到了学生们的好评。一位总结了许多学生的共同主题的学生说:“我欣赏这些视频看起来是多么干净、流畅和专业,我也非常感谢你的解释非常透彻和清晰……每一个视频对我来说都有一个‘开心时刻’。对于科学家来说,开心时刻非常少,这对我来说是一件大事。”

开发作业和自动评分器

每一系列关于特定主题的视频讲座之后都会有一个分级作业。总共有六个作业,每个作业有八个问题,学生必须通过编写MATLAB程序来解决。随着课程的进行,作业变得更具挑战性。例如,在最后一组中,要求学生编写一个函数,将罗马数字转换为阿拉伯数字,另一个函数计算保龄球分数。

我们很早就意识到,由于数千名学生提交了数万个习题集,因此不可能手动为所有作业评分。为了应对这一挑战,我们在MATLAB中开发了一个自动评分器,一旦学生准备好测试完成的作业,就可以立即提供反馈。作业可以完成d直接在MATLAB中或通过网络浏览器在线使用MATLAB。对于每个作业,学生编写一个MATLAB函数来解决一个问题。

在MATLAB中开发函数后,学生使用自动分级机检查每个函数,自动分级机检查函数的输出以获得一系列输入。除了测试学生解决方案的功能外,评分员还确保学生在编写解决方案时遵守某些限制。例如,在逻辑索引分配上,我们不允许使用对于虽然循环。分级器扫描提交的代码以强制执行这些规则。

就像学生对视频讲座的反馈一样,对作业和评分系统的反应都是积极的。正如一位学生所说,“作业非常好地测试了一个人对主题的理解。”另一位学生评论道,“作业[是]这是本课程最精彩的部分。作业详细、准确、富有挑战性,足以给自己留下深刻印象。”

自2016年初以来,Fitzpatrick博士和Ledeczi博士采用MATLAB Online作为MOOC平台。

Fitzpatrick博士说:“我喜欢MATLAB在线。”。“这是我25年前开始使用MATLAB以来看到的最激动人心的新增功能。它为我提供了与我的研究工作所依赖的功能相同的强大功能,我们MOOC中的学生几乎可以立即获得相同的功能。你所需要的只是一个web浏览器和一个登录,而且不到一分钟e、 您可以使用最新版本的MATLAB进行云计算。”

建立在线社区

MOOC成功的最后一个关键因素是,随着课程的进展,学生和志愿者组成的在线社区走到了一起。我们MOOC的Coursera论坛就授课材料和习题集进行了生动的讨论。三名社区教学助理(称为Coursera导师)他们全天不停地回答学生的问题,并自愿帮助测试和改进自动分级机。最忙的导师在论坛上每人发表了1000多篇帖子。两名MathWorks工程师还定期检查论坛,回答有关MATLAB安装和MATLAB环境使用的问题T

我们每天查看论坛,但经常发现当天所有学生的问题都已经得到了同学、导师或MathWorks工程师的回答。我们只是对这个在线社区的响应能力、耐心和慷慨感到惊讶。

下一步

我们目前正在连续第二年运行MOOC。我们更新了一些讲座,并制定了一套全新的作业。去年完成这门课程的几位学生告诉我们,他们今年将再次参加这门课程,因为他们希望在新的习题集上获得挑战和乐趣。

在让这么多学生告诉我们,他们对这次MOOC帮助他们实现目标的方式感到非常高兴,并且注意到我们的MOOC在2015年仅次于第一次MOOC之后,幸福和充实的生活,我们想对我们的课程做最后一次修改:将其名称改为用MATLAB编程快乐与充实!

致谢

我们要感谢我们孜孜不倦的课程导师布兰登·阿姆斯特朗、凯特·布雷迪、李·拉弗蒂、阿蒂什·库马尔、雷阿尔·拉布里、保罗·米尔克和马特·蒂尔。我们感谢MathWorks提供学生执照和财政支持,并感谢范德比尔特数字学习学院(VIDL)用于视频制作和其他后勤帮助。金宝app

关于作者

迈克·菲茨帕特里克是范德比尔特大学计算机科学名誉教授。他在大学任教35年,教授计算机科学29年,用MATLAB教授计算机编程11年后,于2011年退休。他拥有物理学学士学位和北卡罗来纳大学教堂山分校计算机科学硕士学位,博士学位。佛罗里达州立大学物理学系。20多年来,他一直在计算机辅助外科研究中使用MATLAB。

KOS Le DeCZI是范德堡大学计算机科学系的教授,也是布达佩斯计算机科学研究生导师,他用Matlab教计算机编程已经八年了,他在美国理工大学拥有电机工程硕士学位,并从Vanderb获得电气工程博士学位。他的研究兴趣包括模型集成计算和无线传感器网络。

2016年出版-93056v00

查看相关功能的文章