没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记178(2007)111-119www.elsevier.com/locate/entcs工程和物理中的程序和算法可视化迈克尔·布鲁斯-洛克哈特1 西奥多·S Norvell2工程纪念大学圣天气-约翰扬尼斯·科特罗尼斯3雅典电信大学信息学系希腊雅典摘要我们在这里报告我们的经验,使用程序动画工具,教学机,为程序在两所大学中,为工程和物理学生提供了算法可视化:纪念大学,自1999年以来一直用于教授工程专业的学生,雅典大学,2005年被采用来教授物理专业的学生。1引言我们在这里报告我们的经验,使用教学机(TM)的程序和算法可视化的工程和物理学的学生在两个不同的网站:纪念大学,在那里它已被用于自1999年以来的教学工程- ING学生,和雅典大学,在那里它是在2005年通过教物理学的学生。第二部分讨论了程序动画系统中应该建模什么第三节是一个短1电子邮件:mpbl@engr.mun.ca2电子邮件:theo@engr.mun.ca3电子邮件:cotronis@di.uoa.gr1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.01.040112M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111TM的介绍。第四章和第五章分别是纪念大学和雅典大学的经验报告。第6节是一个总结。2建模问题给定一个系统T,诺曼[7]将M(T)定义为该系统的特定用户所持有的心理模型,C(T)定义为概念模型,一种诺曼明确表示T代表一个物理系统(在他的论文中是计算器)。Yehezkel [11]在介绍EasyCPU时指出,如果用学习模型L(T)替换实际系统,学生得到的M(T)可能与他们与原始系统交互时得到的M(T)不同。尽管EasyCPU代表Intel 80x86,但T仍然是一个物理系统。在早期程序设计课程的教学中,我们希望学生发展有效的思维模式的T是什么在开发TM的过程中[8,9],我们对这个问题进行了很多思考。我们在实验室里与较弱的学生一起工作,发现了很多迷信的行为:他们会把一行代码扔到一个问题上,就好像它们是咒语一样,几乎没有理解他们的意思。我们发现自己鼓吹每一行代码都有特定的意义和目的,它是机器的指令。 发展中在学生中,一个有效的机器心智模型对教会他们对自己编写的代码进行推理大有帮助。我们正在编程的那台机器T(我们希望学生理解它)并不是真正的计算机,至少在传统意义上是这样。考虑以下简单的C++代码:intx =5; inty =12; int z;z=y/5+3.1;在编程语言中,我们说,有四条指令要执行。什么指令,由什么来执行当然,但T肯定不是硬件。前三个“指令”实际上是给编译器的我们将它们视为内存分配请求,如果它们是内部声明,则在堆栈中,如果是外部声明,则在静态存储第四个是矿场。有一个截断和两个自动类型转换。 如果你真的想让学生理解它,你需要能够解释表达式并看到转换,但这些通常是由编译器插入的。CPU操作包括获取y的值(无论是在寄存器还是内存中),执行各种计算,并将最终值写回z。我们将T定义为我们向其提供源代码级指令的抽象机器。也就是说,T在很大程度上是由语言定义的;它是一个抽象,结合了计算机、编译器和内存管理方案的各个方面。然后,TM被设计成一种向学生展示这台机器如何工作的手段,这样他们就可以编写程序来控制它。M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111113Fig. 1. 教学机3、教学机器TM已经在其他地方描述过[8,9],所以我们将非常简短地回顾它。TM解释C++或Java中的源程序,同时显示程序和抽象机器状态的可视化:当前求值的表达式、内存(堆栈和堆)、符号表和I/O控制台在TM之前,我们使用调试器来获得良好的效果。我们相信,和其他人一样[2],调试器本身就是一个强大的可视化工具;所以我们在调试器的比喻上构建了TM。 由于我们希望学生在实验室中继续使用调试器,因此减轻了他们学习两种工具的负担截至2006年,TM支持C++和Java。对于每种语言,模型都由编译器、解释器和抽象机器状态的模型组成。编译器将源代码转换为高级机器代码,然后进行解释。使用抽象机器的高级机器代码允许我们保留诸如表达式的树结构、数据的树结构和每个数据对象的数据类型教学机读取标准的C++或Java文件,通常使用传统的工具准备。它可以处理的内容有一些限制,因为这两个编译器都不是完整的实现。例如,我们既没有在Java中实现线程,也没有在C++中实现模板。然而,支持的子集很大,符合标准,并且在使用TM图1中显示了TM执行一个简单的程序, 第一年编程课程。源文件显示在窗口中(左上角)。一个单独的窗口(右下角)显示(堆栈)内存的内容114M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111图二. 链接视图有一个窗口显示正在计算的表达式(中上部)。此显示称为表达式引擎,类似于Jeliot 3 [6]的表达式计算区域。有一个控制台输入和输出的显示屏(左下)。所有视图都随着程序的执行而动态用户可以在不同的时间粒度上单步执行程序:一次操作、一次表达式或一次子例程。一个非常有用的功能是,任何数量的执行步骤可以撤消。图2显示了TM,因为它可能适合更高级的课程。堆和堆栈存储显示在不同的窗口中。最后是一个链接视图(底部),它以类似于LJV工具[5]的方式自动生成数据结构的图形解释。4在纪念大学的在纪念大学,TM用于电气和计算机工程的三门课程:结构化编程(ENGI-2420),高级编程(ENGI-3891)和数据结构(ENGI-4892)。ENGI-2420教授所有工程专业学生编程的基础知识,而3891强调使用 并引入了指针和堆分配。ENGI-4892强调递归和链接结构,如链表和树。3891中TM的使用经历了两个转变:• 从1999年到2001年,我们继续使用我们的旧讲座,但转移到TM来说明具体的兴趣点。 TM的使用超过调试器,因为它可以显示调试器不能显示的结构。 我们花在黑板上画画的时间少了,花更多的时间和学生讨论例题。然而,使用TM,会让我们看到不同的例子。其使用M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111115正在微妙地改变我们所教的东西。我们发现我们的幻灯片和例子很快就不同步了。• 2002年,为了在讲座中提供完全集成的体验,并让学生在讲座后访问交互式笔记,我们利用TM是一个Java applet的事实,将其直接集成到笔记中,并以HTML重写。我们意识到,我们必须让教师尽可能容易地编写这种交互式笔记,所以我们创建了WebWriter++[1],这是一组带有几个附加小程序的javascript。平滑的整合大大增加了在TM中运行示例所花费的演讲时间ENGI4892在下一学年采用了相同的格式,主要使用链接视图。不时进行学生调查。表1显示了ENGI-3891学生的三个连续队列的结果。2001年的队列(55名学生中的51项调查)以独立模式获得了TM,样本较少。 2002年的队列(63人中的42人)得到了整合,但在研究中制定了说明。2003年的队列实际上是在2004年的4982年底进行调查的,当时对同一组学生进行了单独的调查(44人中有26人做出了回应,其中23人做了3891);因为结果非常相似,所以将两者合并。对于每个问题,3代表中立的回答,5和4代表非常和有点积极的回答, 1和2是非常负的。该表报告了缺失值的百分比,缺失值表示“不适用”或根本没有答复。所有三个队列要么根本没有看到TM,要么在他们的第一个编程课程ENGI-2420中看到它的使用非常有限,因此能够比较其有效性与其他手段(问题2和3)。 问题4询问了技术备忘录对问题12则问及学生对使用范例的理解程度,而问题12则问及学生对自己在网上运行范例的理解程度的评价(在2001年,只有9/51名学生在网上运行范例,当时网上的范例很少; 2002年,42名学生中有23名; 2003/2004年,49名学生中有34名)。可以看出,随着与课程笔记的整合变得更加紧密,结果变得更加积极。教师评分是独立调查的。图3显示了3891在过去五年中的结果,使用相同的教师。2003年是目前所教课程的成熟版本。长期以来,学生们认为这是电气和计算机工程中最困难的课程之一,每周分配四个小时的教学时间,而不是三个小时。学生的满意度上升到相当高的水平,以至于在2004年,工程学院决定将这门课程削减到每周三个小时。批准下降到历史水平,但课程使用的讲座减少了25%,同时涵盖了相同的材料,对结果没有影响。有了这个证据,TM被认为是(和是)由学院成功地改善交付3891。 2004年决定将其移入ENGI-2420。2420年的TM的影响很难衡量,但由于混淆因素,如部分大小增加一倍,超过200和课程的变化为了在这么大的场地里尽可能地让他的笔记和讲座变得易懂,这位讲师(布鲁斯-洛克哈特)陷入了一个经典的陷阱。学生们得到了116M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111队列ENGI-3891 2001ENGI-3891 2002响应54321543212. e.自动化与人工手段3149124248267203.电子计算机手段10651622334510204.理解实例166516203845102012.在线理解示例11562211030481390队列ENGI-3891 2004响应543212. e.自动化与人工手段59354203.电子计算机手段51374004.理解实例554320012.在线理解示例35411206表1调查结果。结果以受访者的百分比图三. 教师质量评分为3891。 2=一般,3=良好,4=非常好,5=极好。养成让老师做所有工作的习惯。 在进化的分类学中在2002年的编程可视化研讨会[10]上,我们集体陷入了第二阶段:查看。虽然TM的设计是为了让学生自己学习例子,3891和4892的学生似乎就是这样做的,但这个信息并没有正确地传递给2420名学生。作为一种临时措施,整个班级被带到实验室,并通过传递值与传递引用的新鲜例子。 目标是让他们自己使用TM,并将他们带到能够预测下一步会产生什么的地步(第三阶段,反应)。现在说真正的影响还为时过早,但许多学生后来找到了老师M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111117表达对该技术的认可,并建议将其作为课程的常规特征,但要早得多5在雅典的在雅典大学,作者之一在过去的六年里一直在教授编程语言和编程技术的原理,作为物理学和信息学电信系之间的联合硕士学位课程的一部分。这是一个著名的和备受尊敬的转换方案,其中大多数物理毕业生从一些希腊大学报名参加。课程分为三个部分:第一和第二部分分别讨论语法(正则表达式,BNF)和编程语言的计算方面;第三部分讨论编程技术(结构化编程,自顶向下的程序开发)。TM在2005年秋季学期引入,增加了第二部分也是最长部分的教学,即计算方面。我们的教学方法是分析性的,而不是经验性的,旨在让学生接触到反复出现的概念在编程语言,而不是教一个特定的语言;学生分别遵循每周两个小时的课程C。过去三年的教材是基于Fisher [4]第二部分的六个计算章节,这与我们的教学方法非常吻合。学生们得到了一些小的课程作业练习,其目的是实践和建立概念。虽然学生们对课程感到满意,并认识到它的重要性,但他们无法完成所有练习,他们只是“通过”了最后的书面论文。造成这种情况的原因有很多,最重要的是物理学和计算机科学文化之间的差异:大多数物理学学生认为编程与世界的定律,理论和模型相比“简单”。因此,由于他们不容易相信存在一个更复杂的编程世界,他们对程序如何工作保持误解。我们相信,一个可视化工具将有助于澄清概念,并提出他们的误解,一个工具,将可视化程序执行以上的编译器的水平。 在教授编译器多年之后,我们不想要一个可视化编译器的工具,而是作为抽象出编译器细节的语言的操作语义。在网上搜索时,我们遇到了TM,它被证明是我们所需要的工具,至少在抽象层次上是这样。TM显示内存(静态,堆栈和堆),其中对象的值以十进制和二进制表示,显示它们实际使用的地址和空间;以及符号表的堆栈实现。 TM有三个层次的可视化程序执行(过程、语句和表达式),所有这些都具有回溯功能。它还有一个链接视图(对象和指向它们的指针实际上被描述为图形),这确实是一个意想不到的有价值的特性。我们发现,TM并没有强加在我们的教学方法,而是补充它。我们实施了几十个小程序来展示程序-118M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111∗在费雪的精神中,明概念[4]。 TM可以描述每个焦点。 我们能够展示原则、后果和一些“意料之外”的行为。让我们举几个值得注意的例子。使用双精度和双精度的(二进制)表示来表明(1)。0/n)n可能不是1(这对物理学家来说是一个非常令人惊讶的事实),或者我们可以108. 结果表明,大多数学生对一对一的概念,将变量名与内存中的对象关联是一种误解。 我们依靠TM的表达式执行,以证明C++中的表达式可能是unfined并返回奇怪的结果。我们演示了参数通过(指针)值传递和通过引用传递之间的区别;这不仅是学生们的误解,也是许多编程书籍中的误解大多数程序都在课堂上演示过,但是,由于学生们有一个副本,他们可以在家里进行自己的编程实验,并且经常在课堂上提出问题。我们相信,大多数(如果不是全部的话)Felder [3]提出的学习风格可能会从TM的使用中受益。主动学习者(AL)倾向于通过做一些积极的事情来最好地保留和理解信息;反应学习者(RL)更喜欢 先静静地想一想AL可以尝试他们自己的编程“实验”,而RL有机会使用TM复习课堂上展示的材料。感觉型学习者倾向于学习事实,而直觉型学习者(IL)则倾向于发现可能性和关系。TM只帮助IL,每个人都是有时感觉有时直觉。视觉学习者(ViL)通过演示记忆最好。显然,教学机器强烈地面向ViL。语言学习者(VeL)从书面和口头解释中获得更多。虽然视觉学习可能受益较少,但人们认为,当信息以视觉和语言的方式呈现时,每个人都能学到更多。顺序学习者(SL)倾向于以线性步骤获得理解,每一步都是前一步的逻辑后续;全局学习者(GL)倾向于以大跳跃的方式学习,几乎随机地吸收材料,没有看到联系,然后突然“明白了”。教科书和课程基本上有利于SL,因为每个教学主题都侧重于编程的特定方面。 由于TM是演示所有编程主题的独特工具,GL也会从中受益,因为6总结教学方法已证明在提供各种课程方面是有用的。 能力处理物理和抽象模型的能力,成功地帮助工程和物理学生理解了编程语言所定义的抽象机器。在一个案例中,它帮助减少了教授课程所需的资源。它对编译器和处理器如何交互的深入建模使其能够以原始设计者没有预料到的方式在雅典使用。它是否有助于学生发展有效的心理模型:M(T)近似于M. Bruce-Lockhart等人/理论计算机科学电子笔记178(2007)111119教师C(T)?轶事证据支持这一结论:一个匿名的回应纪念调查是告诉。“教学机器提供了一个可视化软件内部机制和操作的好方法。当我编写代码时,我会想象教学机器将如何翻译它。最后,我们已经认识到,TM是一个坚实的平台,为新的发展。它易于使用,健壮,灵活,并且相当完整。它的数据模型很容易扩展到更强大的算法可视化。通过为它提供专门的输入和输出插件,我们可以提供更好的可视化和更好的交互性;我们希望添加这样的插件将比从头开始开发专门的可视化工具容易得多。引用[1] Bruce-Lockhart,M.P.,WebWriter++:一个小型的编程辅助工具,在:纽芬兰电气和计算机工程会议论文集,圣。约翰[2] 克罗斯,J.H.,T. D. Hendrix和L. A. Barowski,使用调试器作为教学CS 1的一个组成部分,在:第32届ASEE/IEEE前沿教育会议,2002年,pp.F1G-1-F1G-6[3] 费 尔 德 河 M. 和 L. K. Silverman , Learning and Teaching Styles in Engineering Education ,Engineering Education78(1988),pp. 674-http://www.ncsu.edu/felder-public/[4] Fisher,A.E. 和F.S. Grodzinsky,[5] Hamer,J.,一个轻量级的Java可视化工具,在:第三次程序可视化研讨会论文集,研究报告CS-RR-407,计算机科学系,华威大学,2004年,pp. 54比61[6] Moreno,A.,N. M. E. Sutinen和M. Ben-Ari,Jeliot 3可视化程序,高级可视化界面,2004年。[7] Norman,D.一、关于心智模型的一些观察,在:D。Gentner和A. L. Stevens,editors,Mental Models,Lawrence Erlbaum Associates,1983 pp.7比14[8] Norvell , T. S. 和 M. P. Bruce-Lockhart , Taking the hood o optimize the computer : ProgramanimationwiththeTeachingMachine , in : CanadianElectricalandComputerEngineeringConference , Halifax , Nova Scotia , 2000 , 可 在 www.example.com 上 http://www.engr.mun.ca/ 找到。[9] Norvell , T. S. 和 M. P. Bruce-Lockhart , Teaching computer programming with programanimation , in : Canadian Conference on Computer and Software Engineering Education ,Calgary,Alberta,2004,available at http://www.engr.mun.ca/ www.example.com/Publications.[10] Roling , G.、 F.GLIESCHE , T.是 的 , 我 知 道 。Widjaja , EnhancedexpressivenessinscriptingusingAnimalScript 2 , in : Proceedings of the Third Program VisualizationWorkshop,Research Report CS-RR-407,Department of Computer Science,University of Warwick,2004,pp. 10-17.[11] Yehezkel,C.,M. Ben-Ari和T. Dreyfus,Inside the computer:Visualization and mental models,in:Proceedings of the Third Program Visualization Workshop,Research Report CS-RR-407,Departmentof Computer Science,University of Warwick,2004,pp. 82-85.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功