英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
为物理学生开设计算机辅助仪器课程:使用LabVIEW和Arduino平台
Wen-Hsuan Kuan Chi-Hung Tseng Sufen Chen Ching-Chang Wong
摘要:为让物理系新生建立计算机编程的基本能力,提出了一门综合课程。从Scratch到LabVIEW的graphical接口的实现,再到Arduino在LabVIEW课程的“计算机辅助设备设计中的物理实验室”中,将严谨的算法和语法协议与想象、通信、科学应用和实验创新结合在一起。通过对问卷的统计分析、访谈反应、物理专业学生人数的增加以及比赛中的表现来评价课程的有效性。结果提供了量化的支持,课程消除了在文本环境中出现的编程障碍,帮助学生获得编程和仪器的知识,增强了学生学习物理和计算机语言的信心和动力。
关键词: 课程设计 基于图形的平台 LabVIEW Arduino 仪表
1. 引言
计算机编程对科学和工程的各个方面都有着广泛而深远的影响。对于物理学家来说,数值分析方法的发展(SIAM 2016)促进了从宏观天文学和气象学到微观粒子物理学的探索,从经典牛顿力学,流体力学到半导体和新材料的电光量子力学。例如,GPU和MPI技术的快速发展(NVIDIA公司,2015年)。与以往任何时候相比,它提高了计算能力,帮助物理学家探索复杂的自旋动力学和相变;通过量子蒙特卡罗方法(Anderson 1986)或密度矩阵法(Kohn 1996)的方法来研究Garcia-March。在科技时代,我们的科学家们对量子计算机的发明寄予厚望。计算机程序设计离我们不远。实际上,在我们的日常生活中,它就像密码学应用于通信协议标准,以保护机密信息的转移。对我们来说,计算机编程的巨大贡献是人工智能,它催生了机器人技术、机器学习、数据挖掘和3D可视化技术。所有这些应用都使我们的生活方式多样化,丰富了我们的生活方式。
近几十年来,网络技术的进步给信息系统的计算、编程和管理带来了革命性的变化。物联网的梦想已经实现,并继续发展无线传输、微控制器、传感器和监控设备的集成。这些成就一方面表明了计算机语言和现代技术的联系,另一方面又建立了一个新的平台或寻找有许多有趣想法的人,并希望编写他们的程序不只是为了好玩。这一前所未有的景象改变了人们的思维和学习的方式;计算机编程的力量为下一代科学标准中高度强调的科学和工程实践提供了启示(National Research Council 2012)。正如奥巴马总统告诉全世界的,每个人都应该学会如何编码,他自己也成为了第一个编写程序的总统。难道这不足以让年轻人掌握这些工具,以确保他们仍处于领先地位吗?我们很幸运地目睹了工业的第四次演变。物理学系的学生永远不会太年轻,不能参加科技盛宴,也不会太天真,不能成为优秀的设计师。相反,在良好的培训中,他们将在跨学科领域发挥重要作用。(Adams et al. 2011; Zhan et al. 2014).
由于作者的理论研究背景,计算机编程对物理学生的重要性已经深深地印在我们的脑海中。因此,我们设计了一个3年的计算课程教学大纲。我们选择C语言为初学者,二年级的学生,因为C语言是众所周知的已经发展了严谨和结构的内置语法。此外,它也被称为特别灵活、广泛、高效和便携。这些特点意味着C在固态电路、图像处理或现代光学设计的发展中经常被采用,我们的学生将来可能会从事这些领域。在实际使用中,对于学生来说,获得授权的实用工具(包括编译器、库和友好的用户界面)是非常重要的。从这些观点来看,所有的Linux操作系统都支持gcc编译器,并且窗口系统的Dev-C 提供一个集成开发环境(IDE)。
由于作者的理论研究背景,除了方便的硬件结构,计算机编程的重要性之外,还有丰富的软件补充(Press et al. 1992;周边学者国际课程2015;2015年物理模拟算法和库;张量分解与分析实验室2015)帮助解决前沿科学问题。然而,一些令人沮丧的经历困扰了过去几年的学生和老师:
(1)学生们对计算机结构一无所知;
(2) 90年代出生的学生从未听说过DOS或UNIX,因此他们不得不花更多的时间去适应基于文本的环境和命令;
(3)逻辑与算法容易混淆,找出因果关系并不容易;
(4)指针的操作是困难的,内存错误总是会导致严重的中断;
(5)确定打开文件和访问数据的正确路径的规则是复杂的;
(6)错误消息包括令人困惑的术语;
另外,还需要额外的脚本用于实时绘图。我们面对的是一个令人沮丧的事实,许多学生甚至在成为高年级学生的时候都倾向于放弃学习编程的知识;他们认为他们永远无法为简单的计算写出一个正确的程序。我们不愿意看到这种情况发生,如果这些内容对我们的在高考中名列前学生来说太难的话,我们会开始检查这个工具是否不合适。要想知道这些谜题是否可以同时进行系统和方法的解决,就成为了一个紧急的问题。因为教育是为了建设,我们的第一个目标是改变对编程的刻板印象,给学生提供信心和乐趣。这是CADPL课程发展的初衷。此外,我们想知道,如果我们从大一开始,而不是在大二开始训练,是否会减少不适当的情况。一个交互式和易于使用的图形由麻省理工学院媒体实验室开发的IDE提供了图纸和相当大的自由空间的目录命令砖,使孩子和父母一起享受编程,我们开始为新生组织一个基于图形编程课程。我们知道训练的目的是为了加强计算机编程和物理,并帮助新生完成一些精细的实验,我们最终设计了一个三相图形接口插槽,从Scratch到LabVIEW再到Arduino的LabVIEW。调查的目的是探索CADPL课程能否成功地帮助学生阅读和编写简单的程序,进行数据访问和分析,甚至可以通过LabVIEW实现远程仪器控制。
本文的重要意义在于,通过一个图形化的平台,阐述了课程CADPL开发的初衷和具体的进展,以提高物理系学生的编程能力。下面的段落着重于展示我们的课程设计,包括入门培训主题,以帮助学生尽快熟悉新材料。我们还提供了一些例子来说明和验证学生的进步。在第三部分,我们介绍了一种通过前测和后测问卷进行疗效评价的方法,以及回顾性访谈。通过长期的定量和定性研究,我们能够观察到在CADPL中实现的基于图形的环境和跨平台工具包是否确实给学生编程带来了信心,并提高了他们对物理和计算机应用的学习动机。最后,对我们的工作做了简要的总结和展望。
2.课程设计
2.1图形化编程的优点
虽然可以很容易的使用MATLAB或C进行繁琐的计算,但学生可能需要花更多的时间来识别这些基于文本的开发环境的算法和语法。为了帮助没有任何编程背景的学生将计算机语言与物理和电子仪器结合起来,使用基于图形的平台可能是切实可行的。为了验证我们的猜想,我们在我们的项目中提出了三个主题:Arduino的Scratch、LabVIEW和LabVIEW。为初学者提供图形化编程的主要优点如下:
-易于理解:当用户在屏幕上拖动可视化组件时,他们已经决定了程序执行的顺序。- Visual和straight forward: LabVIEW在其虚拟面板上提供了大量可视化组件,如米、幻灯片和灯光指示器。学生可以根据不同的功能要求设计和调整面板。这个功能可以帮助学生在将来获得必要的仪器技能。可视化编程组件的另一个优势是,在图形化编程语言的帮助下,学生可以更好地理解数据如何从一个模块流到另一个模块的概念。-最小的调试努力:图形化编程语言利用了颜色和形状,这为用户提供了清晰的提示,让用户在几个小时内设计出不同的场景或动画。用户也可以通过连线进行数据传输,但不能在LabVIEW中使用文本变量。这样,它们就不会被困在基于文本的环境的严格语法中,而是能够相对较快地构建程序。
-适用于数据记录和分析:在LabVIEW的图形环境的帮助下,学生可以更好地了解设备的过程,从与设备建立通信,持续记录数据,关闭连接。此外,LabVIEW还为用户提供了丰富的库和模块,用户可以直接使用它们来处理数据。
-易于理解:当用户在屏幕上拖动可视化组件时,他们已经决定了程序执行的顺序。- Visual和straight forward: LabVIEW在其虚拟面板上提供了大量可视化组件,如米、幻灯片和灯光指示器。学生可以根据不同的功能要求设计和调整面板。这个功能可以帮助学生在将来获得必要的仪器技能。可视化编程组件的另一个优势是,在图形化编程语言的帮助下,学生可以更好地理解数据如何从一个模块流到另一个模块的概念。
-最小的调试努力:图形化编程语言利用了颜色和形状,这为用户提供了清晰的提示,让用户在几个小时内设计出不同的场景或动画。用户也可以通过连线进行数据传输,但不能在LabVIEW中使用文本变量。这样,它们就不会被困在基于文本的环境的严格语法中,而是能够相对较快地构建程序。
-适用于数据记录和分析:在LabVIEW的图形环境的帮助下,学生可以更好地了解设备的过程,从与设备建立通信,持续记录数据到关闭连接。此外,LabVIEW还为用户提供了丰富的库和模块,用户可以直接使用它们来处理具有数学功能的数据,但不会对衍生集成、过滤或非线性拟合等高级数学技能感到困惑。
虽然初学者对图形平台很容易理解,但对于专业的设计者来说可能不是最好的,因为它们往往成为复杂代码的蜘蛛网,在结构上不适合精确的科学计算。尽管有这些小的限制,学生仍然可以从潜在的指导中获益。17周的教学材料遵循了基本执行、语法、算法和人机界面的学习目标。首先,学生们会从编码中获得更多的自信和快乐。
3. 课程项目
在表1中,我们展示了一个完整的课程设计,其中每个阶段都被执行了3到4周。2小时每周的课程不仅包括紧凑和基本的训练,还包括高级的介绍和任务,通过综合材料实现全面的学习。每次运行的程序包括:(a)引入新组件、演示和分析示例程序;(b)继续进行课程,着重于新元素的整合和应用;(c)根据当天的材料执行一项课程内的挑战;(d)讨论并分享课堂练习;(e)说明课后作业。此外,每个阶段的内容都被组织起来,与具体的学习目标紧密相关,以提供从阶段到另一个阶段的密集和广泛的指令。
第一阶段:划痕
在这个阶段,学习的目标是帮助学生写出他们的第一个项目,激发他们的想象力和创造力,将元素组合成化合物。在这一阶段的最后,演示时间旨在使学生的沟通能力更加丰富。把它的命令分类在功能上,这样就可以让小孩子在半小时内用不同形状和颜色的拼图来构建他们的第一个程序,这是玩Scratch的真正好处。由于我们选择Scratch作为编程学习的第一个和特殊的平台,我们花了一些时间来简单介绍编程的本质,并在编程中强调基本的概念和命令。学生必须让猫不只是站在那里,而是要发起行动。因此,我们首先对他们印象深刻,“演员是一种变量”。“那么,我们自然会问lsquo;我们如何才能继续采取行动?rsquo;”下一个问题是,如果hellip;hellip;这些问题往往激发了人们想知道如何将不同的条件带入行动的欲望,以及学习循环的强烈动机,并将if-else条件结构和事件纳入循环中。为了达到这个目的,学生们可以理解一个程序执行的本质,并且期望能够设计一个微型的交互式游戏。在这里,可以自由地注入和强化充分的想象力,通过先进的技能,交互,可以被看作是仪器的初步概念,通过获取用户的鼠标或键盘来控制演员的属性。图2展示了一个由学生制作的一个动画游戏,该游戏被指定用于实现集成。
从制作动画开始,Scratch平台证明了它至少有两种优势:(i)它将需要更长的时间,并且需要更高级的技能来在基于文本的平台上创建相同的场景,例如,Java; (ii)它不需要花费任何努力,并且建议将场景3作为检测材料移植到第3阶段,因为Arduino-Scratch接口的兼容性。这些经验将指导学生学习如何在现实世界中获取信号,使用微控制器,Arduino,从而实现对第三方设备的进一步控制。
图1
图2非线性拟合的数据在一个正弦近似的分布。
第2阶段:LabVIEW和Arduino。
尽管Scratch成功地将学生带入了计算机编程的仙境,但对于作者来说,下一个问题是“什么计算机语言能给物理专业的学生带来科学应用?”这是引入LabVIEW的动机,这是一个强大的基于图形的平台,从第2阶段开始,发展到对编程的全面了解。在这个阶段,理解语法和算法是最重要的学习目标。为了实现这些目标,我们组织了一个4周的时间表来介绍基本概念,从数据类型、数据流逻辑、条件结构到数组和子vi。这些构成了编程的全部基本知识。由于实践导致了进步,定量练习显然是实际的,而且是迫在眉睫的问题。
因此,应用于数学系列、几何图形或物理公式生成的练习,将会使科学新生的质量进步成倍增加。在图3中我们展示了一些学生的作品。斐波那契数列生成器强调移位寄存器和表示累积的逻辑。一个多边形发生器将离散的点变成几何形状,随机行走和统计的概念由蒙特卡罗弹射器传递。在LabVIEW介绍的最后,项目设计被作为知识应用的集成实践实现。两种方法,素数生成器和数据插值,旨在帮助整合结构、案例结构、逻辑元素和数组。前者倾向于聚合嵌套判断和过滤策略。虽然在数据分析中管道插值和排序技术的困难经常涉及到基于文本的环境中的高级数值方法,但是从后面的项目中可以避免使用LabVIEW。在图4和图5中,我们展示了学生的作品。总的来说,在LabVIEW平台上,对新生进行多层次的思考和设计是很有可能的。
图3斐波那契序列发生器强调移位寄存器和表示积累的逻辑图
从科学实验的观点来看,电子实践在仪器仪表中扮演着不可或缺的角色。因此,我们安排了第2阶段的时间表,介绍Arduino平台,用于数字和模拟电路的基本设计和控制。此外,使用Arduino IDE将带来另一种编程经验,可以将其作为向基于c的环境转移的准备。因此,在本节中,我们尝试通过非常基本的电子操作来连接计算机和电路元件之间的通信。我们期望控制LED的操纵杆的经验将打开LabVIEW补充剂的先
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[24555],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。