没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记178(2007)137-144www.elsevier.com/locate/entcs编程练习课程Tuukka Ahoniemi1埃西·拉赫蒂宁2芬兰坦佩雷科技大学软件系统研究所摘要可视化被广泛研究并用于教学,但其在学习中的好处的结果是模糊的。我们介绍了一个使用可视化学习入门编程的实验。其目的是通过使用可视化来支持学生为练习课程做准备。学生因此,这也是一种使用编程可视化并将其集成到课程内容的新方法实验显示了积极的结果,特别是在没有编程经验的学生和认为编程课程具有挑战性的学生我们的结论是,将可视化的使用整合到学生因此,我们也建议这是一种可能的方式整合可视化的过程。关键词:计算机科学教育,编程,可视化,新手程序员1引言编程中的学习问题通常与更高级的问题而不是单个概念有关,因此学习材料和情况也应该针对开发更高级的编程技能[5]。新手程序员最大的学习问题之一是,他们必须处理抽象的概念,而这些概念在日常生活中没有具体的模型[7]。因此,为学生提供交互式可视化作为额外的材料是一个很好的方式来具体化的主题在开始。可视化最常见的用途是演示代码示例作为说明性可视化。我们希望让学生参与可视化,并将可视化的使用融入学生的准备和作业中1电子邮件:tuukka. tut.fi2电子邮件:essi. tut.fi1571-0661 © 2007 Elsevier B.V. 在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.01.043138T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137他们每周的锻炼任务。在真实的学习情境中,通过课堂测试对这种方法的效果进行了测试2背景在可视化领域所做的研究已经产生了关于如何构建可视化的指导,以便它们在教学上尽可能有益。例如,Naps等人建议可视化应该让学生积极参与可视化[6]。作为实现这一点的可能方式,建议例如,可视化应该使用户能够为程序提供自己的输入,并且在可视化工具中应该有交互式预测[8]。为了增加可视化的交互性,它们也可以被构建为支持Bloom分类法中列出的所有六个认知发展阶段尽管有这些关于如何改进可视化的建议和想法,但关于其使用情况的报告是多种多样的。Hundhausen等人进行的一项广泛研究表明,如何使用可视化比其内容更重要[3]。在另一份出版物中,Hundhausen报告说,可视化实际上可以分散学生另一方面,根据Ben-Bassat Levy等人的说法,可视化有利于有学习问题的学生。这也是我们的主要研究方向[1]。3实验这个实验发生在坦佩雷理工大学的编程入门课程(CS1)上。该课程的先决条件仅限于计算机素养的基础知识,这是学生的第一个编程课程。课程中使用的编程语言是C++。 每周都有讲座和练习课。学生应该在练习前完成一个小的家庭作业家庭作业要求他们熟悉新学科的基础知识。这通常也意味着要结合课程材料复习课堂内容在实验之前,学生们已经熟悉了可视化的概念。我们通过在课程网页上提供可视化来支持学生自己的学习。印刷的课程材料包含可视化示例的网址,可视化工具实验在课程的第四周和第五周进行。在实验的第一周(课程的第四周),练习部分涉及循环结构和第二周的数组。之所以选择这两周,是因为这两个主题对于新手学生来说都是典型的困难[5],而且它们很容易想象。T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137139Fig. 1.组织实验。3.1述的方法我们随机选取了两组学生,每组约30人,他们都参加了练习课程。目标组在准备练习时使用了可视化,而参考组没有。实验的组织如图1所示。3.1.1练习前的设置两组都有打印好的课程材料供练习前复习。除了印刷的课程材料外,目标组的学生还获得了一个额外的网页,上面有关于如何使用可视化示例进行复习的说明和示例链接。在这两周的复习材料中都包含了两个说明性的可视化[4]来澄清概念。两组的实际家庭作业完全相同。唯一不同的是,学生们使用不同的工具。参考小组在课程网站上有作业参考组的大多数他们中的一些人还使用了常规的代码编辑器和编译器。与其他学生一样,为目标群体提供的网页包含作为文本的家庭此外,还有一个可视化工具的链接VIP [9]包含一个代码编辑器,学生可以编写自己的解决方案,编译它们并将其作为可视化运行。3.1.2练习会话中的设置在实验周,在练习开始时有一个简短的书面测试来衡量学生的学习情况。学生们没有被提前通知考试。他们不被允许看这些材料,他们匿名回答。任务是编写非常小的程序,类似于他们在家庭作业中实现的程序。时间被限制在只有五分钟,因为任务测试非常基础,因此很容易在时间内实现我们还希望通过限制时间,在组内有更多的变化只有最优秀的学生才能完成整个测试。除了小测试,所有的学生都回答了一个简短的背景信息调查,例如,关于他们以前的编程经验以及他们对课程进展的感受。此外,还询问了用于复习主题和完成实际家庭作业目标群体中的学生还回答了另一项关于使用140T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137图二、重点关注的子集(用灰色突出显示)是两组中的新手和奋斗者学生人数见表。作为运动准备的辅助工具。调查表附在测试中,以便将背景信息与测试答案联系起来。3.2家庭作业第一周的练习课涉及循环结构。在家庭作业中有一个while循环的简单例子。任务首先是找出这段代码的作用,并了解它是如何工作的。然后学生们必须修改代码来实现另一种功能。该任务达到了布卢姆认知发展分类法的应用(3)因为它需要一个人在新的情况下运用知识的能力。因此,在可视化工具中实现的分配版本是一个利用可视化[4]。第二周的主题是数组。为了拓宽可视化辅助的视角,我们选择了这个不同的家庭作业:学生们熟悉一个给定的处理两个数组的复杂循环结构,并回答与之相关的问题。这个任务需要识别和分析代码的组件,所以它是在Bloom分类法的层次分析(4)上因此,在VIP中实现的版本是一个可分析的可视化[4]。4结果在第一星期,目标组有21名学生参加了运动会下一周对应的数字是21、22和43。由于可视化主要针对新手和有学习困难的学生,我们将组的比较限制为新手(以前没有编程经验)或到目前为止发现课程主题困难或非常困难的人(这里称为奋斗者)。各组学生的划分和人数见图2。研究结果分为两个部分:学习效果和学习行为。第一个代表学生在根据第一周的结果,可视化的使用有利于学习:我们发现组间测试成绩的平均值在统计学上有显著差异。第二周的结果是类似的,并支持第一周的结果。由于第二周的差异较小,因此本节主要集中于表示T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137141图3.第三章。关于新手和奋斗者的实验第一周的结果:(a)第一个测试任务的分数分布和(b)花在复习上的时间第一周。4.1对学习结果的通过对学生的测试答案进行评分来分析对学习效果的影响例如,在第一周,所有三项任务都按线性量表进行评分,分数从0到4,最高为12分。第二周,最高值仅为8。学生们似乎很难在五分钟内完成循环任务。平均结果总共只有12分中的3.5分(标准差2.5)。采用独立样本T检验分析各组间的差异。新手和奋斗者的集中子集的平均值为目标组的3.6分(标准差2.2),(标准差1.5)。这显示了显著的统计学差异(p 0.05)。<即使对整个组进行比较(而不仅仅是集中的子集),组之间也存在小的类似在接下来的一周里,新手和奋斗者的相应平均值是目标组学生8分中的3.1分(标准差2.3)和参考组学生的2.3分(标准差1.9)。趋势与前一周相同当学生们依次完成测试中的任务时,他们都从第一个任务开始。图3a显示了该任务中每个等级的百分比值。只有新手和奋斗者被考虑在内。几乎所有的学生在目标组(10出12 = 83%)得到至少一个点,甚至42%的充分对照组4个点的阳性率分别为53%和6%。在第二周的结果中可以观察到同样的现象4.2学习行为由于初学者和奋斗者是唯一的学习结果不同的人,所以他们是唯一的学习行为受到可视化影响的人。因此,这一节只集中讨论群体中的新手和奋斗者。根据学生对准备情况的回答,目标组的学生比参考组的学生花了更多的时间。花在复习这门课上的时间和花在做这门课上的时间142T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137家庭作业的比例更高。在复习这门课时差异更大。在实验的第一周,复习受试者所用时间的比较如图3b所示。参考组中超过三分之一的学生花在复习上的时间不到5分钟目标群体中90%以上的学生花的时间超过5分钟。很明显,使用可视化工具的学生集中的时间更长,即使组之间的统计意义无法说明。此外,关于可视化作为准备工具的调查反馈也产生了明显的积极反馈。学生们写了这样的评论:可视化示例”。4.3对比两周实验不是在严格控制的情况下进行的,而是在正常的教学组中进行的,因此在两周的实验期间,某些情况有所不同。例如,在一个示例中,第二周缺课的学生更多了。这两周的科目是不同的,所以我们在第二周也有一个新的家庭作业和一个不同的测试。所有这些因素都影响了结果。第一周的家庭作业是利用可视化,第二周是可分析的可视化。结果不同的一个重要原因可能是,利用可视化让学生产生自己的代码,而可分析的可视化让学生集中观察代码。在教室里进行的测试是关于他们自己的代码.因此,第一周的准备和测试比第二周更相似。课内测试没有提前宣布,所以在实验的第一周,没有人预料到这一点,在第二周,学生们可能会认为可能会再次进行测试因此,学生们可能已经为练习课程做了更好的这也可能是第二周未达到统计学差异的原因之一。5讨论即使实验周之间的情况有所不同,实验在真实的学习情况下进行也是有利的。我们捕捉到了学生们在一种情况下的经历,在这种情况下,他们的行为与正常学习时的行为一样。从而使研究结果更好地应用于今后的计划教学中。结果表明,可视化的使用帮助了那些在学习编程方面面临最大挑战的学生(新手和奋斗者)。如果他们在准备练习时使用可视化,他们会学到更多有编程经验的学生已经有了关于这个主题的心理模型,因此使用可视化并没有那么有帮助。也T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137143认为该科目容易的学生可以在不使用视觉材料的情况下形成心理模型。因此,他们也没有从可视化的使用中获益。另一个结果是,使用可视化示例和正常课程材料的学生比其他学生花更多的时间复习主题。由于提供了新的视觉视角,学习显然变得更加有趣。因此,从结果中真正可以得出的结论是,可视化确实有助于学习,但不确定这是否是其使用的直接结果。 这也可能是因为使用可视化时,学习本身更有趣,学生花更多的时间在上面,从而学得更好。 然而,如果可视化直接改善了学习结果,这并不重要。最重要的结果是,他们确实改善了他们。实验的两周之间的差异-学生进行利用可视化练习的一周和他们进行可分析可视化练习的一利用可视化让学生产生自己的代码,而可分析的可视化只让他们分析别人写的代码。使用可视化时,对可视化的参与更加强烈。此外,从一周的学习效果时,利用可视化使用更好。在学生准备锻炼课程时使用可视化效果肯定练习课程进行得更顺利,因为学生们的积极性提高了,准备得更充分了。这也表明,在准备练习课程时使用可视化是将可视化整合到课程内容的其他部分的有效方法。这种方法的问题和考虑是技术问题和教师花费的时间。使用可视化实现任务需要非常先进的工具,这些工具必须适用于每个学生。此外,与没有可视化工具相比,使用可视化工具准备任务需要教师更多的精力。当计划在课程中使用可视化的新方法时,教师还应该记住,并不是所有人都想使用新的学习工具。 由于视觉化的使用主要有利于新手和奋斗者,对于不需要它的学生来说,这可能是令人讨厌的。有些学生可能不喜欢视觉化的学习方式,或者只是对如何工作有自己的想法因此,我们建议可视化工具的使用是可选的。6结论使用程序可视化可以提高没有早期编程经验的学生和在编程方面有困难的学生的学习。我们不能说更好的学习结果是源于可视化的教学影响,还是源于可视化使学生144T. Ahoniemi,E.Lahtinen/Electronic Notes in Theoretical Computer Science 178(2007)137学习更长的时间。无论哪种方式,使用可视化改善了学生因此,我们建议在教学中使用可视化,并使用练习课程将可视化整合到课程的其他部分引用[1] Ben-Bassat Levy,R.,M. Ben-Ari和P.A. Uronen,Jeliot 2000程序动画系统,计算机教育40(2003),pp.1-15.[2] 洪德豪森角D、将算法可视化技术集成到本科算法课程中:社会建构主义方法的人种学研究,计算机教育39(2002),pp。237-260[3] 洪德豪森角D、S. A.道格拉斯和J. T. Stasko,算法可视化效率的元研究。Journal of Visual LanguagesComputing13(2002),pp. 259-290。[4] Lahtinen,E.和T.Ahoniemi,可视化支持不同认知发展水平的编程,第五届Koli计算机科学教育会议论文集(2005年),pp. 87比94[5] Lahtinen,E.,K.Ala-MutkandH.-M.J?rvinen,Astudyofthededicationcultiesofnoviciceprogrammers, ITiCSE 2005,Proceedings of the 10th AnnualSIGCSE Conference on Innovation and Technology in Computer Science Education(2005),pp.十四比十八[6] 不,T., G. 你好,V。很抱歉,W。 丹河 Fleischerr,C. Hundhausen,A. 科尔霍宁湖我啊我,M. McNally,S. Rodger和J. Velazquez-Iturbide,探索可视化和参与在计算机科学教育中的作用,SIGCSEBulletin35(2003),pp. 131-152.[7] Robins,A.,Rountree和N. Rountree,Learning and Teaching Programming:A Review and Discussion,Computer Science Education13(2003),pp. 137-172.[8] R? ssling , G.和 T.L. Naps , ATestbeddforPedg gogicalRementsinAlgorithmVisualizations, ITiCSE2002 , Proceedings of the 7th Annual SIGCSE Conference on Innovation and Technology inComputer Science Education(2002)。[9] Virtanen,A.T.、E.我不想和他在一起。-M.Jüarvinen,VIP,avisualinterpreterforrlearningintroductoryprogramming with C++,Proceedings of The Fifth Koli CallingConference on Computer Science Education(2005),pp.125-130
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- 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
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功