计算思维训练下程序设计教学方法探讨
时间:2022-10-13 11:26:30
导语:计算思维训练下程序设计教学方法探讨一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。
计算思维是高级思维。研究者普遍认为高级思维属于高级认知能力,建立新思维过程是认知创新过程。积极性和批判是这个过程的两个关键因素。依据学者马扎诺的学习认知过程理论,积极性将激发思维训练者内在的认知动力,将促使控制学习的自我系统调度工作,主动参与到认知建立过程中。如果积极性缺失,指挥认知系统处理知识的元认知等认知能力将无法发挥作用。思维训练中的积极性主要体现在三个方面:(1)积极参与教学活动,内容要具有吸引性;(2)积极思考;(3)积极求精。著名教育心理学家斯腾伯格认为在照本宣科方式、问答方式和对话方式等三种基本教学方式中,对话方式是最适发激活学生的积极性,开展思维教学。同学通过对话逐步展开围绕教学内容的分析讨论,激发学生的求知欲,调动学生的积极性,活跃学生的思维,使学生主动地思考,让学生充分讨论并发表各自的见解。教师通过对话适时引导和评判,促进学生对于自己思维过程的反思和批判从而提高思维能力。批判是对思维过程的观察、分析和评估过程。它通过反思对思维进行整理和重组,发现新的、合理的和优化思维模式。思维本身外界在人脑内部的映射,思维活动发生在内部,具有抽象性、非线性和隐蔽性等特征,将内隐的思维过程信息显性化是思维训练的关键因素。通过显性化过程,将隐藏的思维结构、思考过程及所运用的方法展示出来,帮助用户进行思维活动规律的提取与整理活动。
二、融入计算思维训练的程序设计教学原则
现有程序设计类课程是计算机课程中的基础性课程。传统的教学目标是使学生掌握计算机语言的基本语法语句和程序结构,能够正确使用语言编程解决的一些简单问题。教学形式以理论讲解为主,在课堂上列举出计算机语言语法的各个知识点,再结合上机实践操作来巩固巩固提高。通过学习,大多数学生擅长书面语法理论考试,回答各类填空或选择题。惧怕上机编程,缺乏应用计算机程序解决问题的能力。现有的教学方法束缚了学生思维的发展,尤其是运用计算机综合分析问题、解决问题能力的提高。目前,有许多老师开展了在程序设计课程中注重提高计算思维教学改革的尝试。探讨了算法与计算思维的关系,算法是计算思维在计算机求解问题的具体实现,并采用一题多解的方法来实现教学提高计算思维能力。发挥案例教学法作为一种互动式教学形式具有能调动学生主动思考的优势,已被用在程序设计课程中培养计算思维。但是现有的教学案例方法只注意案例吸引学生的一面,在组织上,仍然是以传输知识为目标,没有突出思维训练的教学形式。以C语言程序设计课程为实例,介绍将程序设计课程与计算思维能力培养的可行性。缺乏系统性的教学组织形式和组织方法。利用汉诺塔作为经典案例探讨计算思维和编程过程的关系。阐述程序设计课程教学中计算思维能力的培养方法。这些方法对于提高学生的计算思维能力起到一定积极作用,但是这些教学方法仍然是以程序语言为中心的教学模式。没有从思维训练本身特点出发,设计教学过程,从而影响了教学效果。编程过程是人们通过程序语言来表达解决问题的求解过程,即计算思维过程。程序语言是依据计算机构造特点而设计的诸多表达符号和规则的符号集合,起到人与计算机之间的中介作用。程序是计算机指令的某种组合,控制计算机的工作流程,完成一定的逻辑功能,以实现某种任务。程序所反映的人们根据计算机的特点,用计算机语言表述解决问题的结果,是人的自然思维方式到计算机思维方式的转换能力。程序是人类思考的结果,也就是计算思维的显性化结果。对程序的批判和讨论将有助于提高计算机思维的认识。
(一)设计教学对话场景
首先,要以实际经验情境为基础案例。教学对话是通过对案例的剖析,以解决问题为主线展开。著名教育心理学家斯腾伯格美国教育家杜威又认为一个实际的经验情境,是思维的开始阶段,实际经验情境的案例能够活跃思维,促使学生思考问题。其次,案例不易太复杂要有多样性,程序设计是基础入门性课程,是建立计算思维的起点。太复杂的案例信息量大,学习时不易抓住重点,学生也会因难度大而挫伤积极性。多样性的思维解决方案,这样可以通过显性比较这些思维的不同来促进认识计算思维,抓住各种思维的不同。最后,案例要有拓展性,能从计算思维的一个点,拓展到其它方面。通过不断丰富,循序渐进。
(二)显性化思维过程
(1)计算思维的本质是抽象和自动化。通过不同层次的抽象,忽视一些无关细节,将注意力集中在关键方面,控制待解问题的复杂性。抽象过程需要精确和严格的符号标记和建模,保证最终能够进行机械自动化求解。自动化是在抽象化模型基础上开展算法设计,实现机械化求解过程。编程过程是显性化计算思维的过程。图灵奖得主N.Wirth经典论述程序=数据结构+算法。(2)数据结构显性化抽象思维。数据结构是数据与数据之间的逻辑关系,外界信息在程序中的抽象关系模型。(3)程序算法显性化了自动化过程。算法是解决特定问题的步骤和方法。编程过程就是用计算机语言符号,如各种标识符、常量、变量、数组、函数和结构体等,描述实际问题的数据及数据之间的逻辑关系。问题求解实现的精确严格程序指令对算法的步骤进行十分清楚和准确的描述,使得计算机可以实现期望的输出结果。
(三)反思思维过程
通过对显性化的数据结构和算法的分析反思,可以提升计算思维能力。采用提问的方式,对编程中的思维过程进行观察反思,整理和重组,发现新的、合理的和优化思维模式。编程解决问题的思维过程分为三个主要内容:抽象建模、算法选择、编程实现。可以围绕三个方面设计问题,一是思考的起点是什么?二是提出的解决方案是满足需求?最后是在效率上是否有更好的办法。
三、教学实例
程序设计教学一般分为两个阶段,第一个阶段以语言教学为主,讲授语言的基本命名规则和简单语句,第二阶段以语言的灵活运用为主,能够解决简单问题。第二阶段是计算思维训练的重点。
(一)首先设计对话情境
例如,作为刚刚开始选择程序设计解决实际问题的案例我们可以考虑选取学生非常熟悉的鸡兔同笼问题作为案例。因为这个案例具有一定的趣味性,而且同学们从小学到高中都学习过这个问题的不同解法,具有多样性。而且可以通过与程序解法的比较,来发现计算思维解决问题的不同。鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?这是一个中国古代《孙子算经》中经典的问题。根据问题可以先给出下列不同的解法。
(二)反思讨论
围绕三种解法后面不同的思维方式展开对话讨论。奥数解法的思维过程是通过认真分析和观察问题对象中内在的自然逻辑关系,通过算式加以表达的计算,重在一个巧字。数学方程解法较前一种解法上,在思维方法上多了一层抽象,用符号的形式表达了问题之间的联系,并用数学方程工具加以解决。C语言的解题过程,具有明显的计算思维特征。没有太多的巧劲,而是分利用计算机数据计算准度高并具有严格的操作时序等特点,发挥速度和存储优势。利用双重循环,进行暴力搜索解决。这样通过比较讨论,将发现不同思维模式间的差异,有助于建立新的计算思维模式。C语言解法的显性化展示了思维的过程,它通过变量j,t抽象表达了问题所涉及的鸡和兔。两层for循环给出说明了搜索过程。通过反思思考本案例还可以进一步延伸思考,目前循环次数是35*35=1225次。不可能同时存在35只鸡和35只的情况,我们可以这样进一步优化减少循环次数提高算法效率呢?这样的提问,将引导学生对于算法的进一步思考。
四、结束语
计算机程序设计是学习使用计算机解决问题的基础性课程。能否运用计算机编程解决问题不只是语言的熟练程度,而是是否具备计算思维能力。在传统以知识为中心的程序设计教学,思维能力的培养是隐性的。因此,对于学生的编程能力的培养,要求多做系统,多上机调试。这样的模式使得思维能力的培养效率不高。以思维训练为指导通过教学方法的改变,将计算思维嵌入到程序设计课程中。生动的案例教学对计算思维训练起到启发和诱导作用,可以很好地激发学生思维活动。程序语言作为计算思维可视工具,教师给予适当提问,促进学生反思思维过程。这些问题将学生把计算思维的理解不断引向深入。在案例分析和讨论中,每个学生的不同的思维理解在这里相遇,经过交流与辩论,形成思维共振局面,显性的培养了学生的思维能力,提升了计算机应用能力。
作者:阳小华 刘杰 刘志明 徐卓然 单位:南华大学计算机与科学技术学院
- 上一篇:普通高校篮球教学方法的创新
- 下一篇:交通局法律十进工作总结