融入计算思维的程序设计类课程教学方案研究
2018-12-03于莉莉张磊李晶
于莉莉 张磊 李晶
摘要:计算思维融入程序设计类课程设计中,是计算思维落地最好的践行方式。基于此,提出一种以微信为平台的“翻转课堂+任务驱动小组讨论”等教学模式相结合的教学方案设计,利用线上人们生活使用频率高的微信平台进行课前预习和课后讨论,是课堂教学的有效补充;线下在任务情景设计上采取“有趣”与“有用”相结合的方式,以学生为主体、教师为主导的教学理念,提高学生的课堂参与度,通过调查评估教学效果显著提高。
关键词:计算思维;翻转课堂;微信公众号;任务驱动;小组讨论
中图分类号:G434 文献标志码:A 文章编号:1001-7836(2018)08-0064-03
引言
新工科时代的到来,计算机基础课程作为通识课程也面临着新的挑战,适应时代发展的变化,工科专业培养卓越的复合型人才对大学计算机基础教学提出了更高的要求,同时也受到了足够的重视。计算机教学改革由原来的重知识轻能力转变为重能力轻知识,现在更加提倡思维能力培养,随着慕课微课的蓬勃兴起,改变课程教学方案,为计算思维能力培养落地提供了更加行之有效的手段。
1计算思维概念
2006年3月,美国卡内基·梅隆大学的周以真(Jean-nette M.Wing)教授在美国计算机权威杂志“Communication of the ACM”上首次提出了计算思维的概念。周以真教授认为:计算思维即是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
计算思维是通过约简、嵌入、转化和仿真等方法,把看来困难的问题重新阐释成我们知道怎样解决的思维方法。计算思维是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是一种基于关注点分离的方法。关注点分离侧重抽象表达问题的清晰程度,同时能根据关注度的不同,把相对复杂的问题分离成为若干个简单的问题从而得到解决。
计算思维作为一种思维方法,能够对问题解析、处理提供有效的方法,计算思维能力的培养能够提高学生解决问题的能力从而培养创新能力。计算思维理论及方法的本质是问题解决,问题解决能力是计算思维能力的重点培养目标,也为创新能力提供了坚实的保障。由此可见,计算思维对培养创新人才具有指导和实践作用,这与新工科人才培养目标有着较高的契合度。
2基于计算思维的教学改革方案
计算机教学内容中很多知识点和经典案例都蕴含着计算思维,其实早在计算思维概念提出之前计算机的很多教学活动就体现了计算思维,计算思维概念的提出,把问题及方法科学合理地显化,更有目的性地侧重此能力的培养。在教学内容设计中,先归纳知识点,再从知识单元中提炼出所蕴含的可实现、可见的计算思维,引导学生思考,教学重点培养计算思维,知识传授模式逐渐转变为基于知识的思维传授模式,帮助学生建构起基于计算思维的知识体系。
C语言程序设计课程是大学计算机通识课程,本课程的教学目标是通过探究求解问题的算法和思想,渗透计算思维能力培养,从而提高学生的计算机解决实际问题的能力、综合创新能力。C语言中函数的递归、函数的嵌套、循环的嵌套与计算思维的递归思想、嵌入思想相吻合,利用计算思维来设计任务知识点是提高学生计算思维能力的有效办法。
传统的程序设计类课程往往是以书本为核心,以教师为主体,课堂教学侧重语法知识的讲解,实践课程主要是课堂的例题的验证性实验。这样的教学方式能系统完整地学习c语言的语法概念及简单的应用,但是真正遇到实际问题时学生往往无从下手。如何提高学生解决问题的能力?能力的培养需要以思维为导向,所以要从思维方式着手,在课程设计上注重学生的思维能力的培养,建立思维体系结构。在学时有限的情况下,既要让学生有语法基础又要培养学生勤于思考的习惯,这就要线上线下相结合,有针对性、有目的地针对学生安排线上自主学习方式作为课堂教学的有益补充。在实际教学中通常需要采取多种教学手段、教学模式相结合,循序渐进地培养学生的计算思维。
2.1线上基于微信平台的翻转课堂教学
翻转课堂是一种以学生为中心的教学模式。原来在课堂上教师讲授的内容转移到课下学生自学来完成,为了检验学生是否自觉完成,可以安排一些相关的习题让学生来完成。课堂上教师可以与学生交流更深层次的问题。简单的记忆、理解、运用被放在课下,而高层次的综合运用和创新则可以在课上发生。翻转课堂的优势主要体现两点:第一,学生可以利用碎片时间反复深入学习;第二,课内教学更有意义和深度,交流与讨论能够更加强化学生的认知。
翻转课堂与传统教学模式相比更有时间和空间的优势,教师将教学内容有针对性地按知识点录制成10分钟左右的视频同时配有PPT教学课件,学生可以不受时间地点约束,利用各种碎片时间进行反复学习,短小精悍、主题突出的微课程,为学生提供自主灵活的学习模式,可以更加突出学生的主体地位,学生学习兴趣的保持度有所提高,是传统教学模式的有益补充。教师课堂的重心可以由知识点讲解转移为问题讨论、任务解决、答疑解惑等更深入的内容。
《C程序设计》课程语法复杂,知识点众多,但每个知识点相对独立,易于分割成一个个独立又相互联系的小知识点,这与微课内容短小且完整不谋而合,适合将分割的知识点制作成微课。
微信是目前市场占有率最高的社交软件之一,手机微信APP较其他平台更具有灵活性、即时性和交互性。微信公众号注册方便,教师可以利用微信公众号发布微视频,学生可以即时留言,学生和教师均可以回复,这种讨论方式方便快捷,而且可以利用业余零散时问随时关注学习,同时微信公众号还具有关键字搜索功能,可以查找歷史记录反复学习。教师也可以通过关键字自动回复功能,提前设置问题的答案来提高回复的即时性,消除了微课实时性差的弊端。微信公众号后台管理用户方便,使教师能更好地了解学生学习进度和频率,对学生自主学习起到监督作用。同时,也能够根据视频的点击频率更快地发现学生学习的难点,为后续课程内容的设置和调整提供了有效信息。
2.2线上基于微信平台的翻转课堂教学
程序设计类课程的灵魂是算法思想,思维方式的培养不是生搬硬套,而是潜移默化的过程培养。任务的设计是关键,如何培养算法思维?简单有效的方式就是分析典型算法。算法的选择显得尤为重要,不仅要能合理地解决完整的教学内容,更要与实际生活贴近,做到既有趣味性又有实用性,这样才能激发学生的好奇心理。同时,难易程度要合理,学生不会有畏难情绪,才能保持兴趣度。让学生在解决问题的过程中获得成就感,同时把难点进行分解,由浅入深、循序渐进地逐级突破重难点。
教育心理学理论中提出如果知识点和任务与学生生活场景一致或极为相似时,更有利于激发学生的学习动机。比如经常在排序中用到的两个变量交换问题,很多时候教师就直接把方法灌输给学生,学生需要强化记忆。这是最便捷的教学方式,但是并不利于激发学生的学习积极性,不利用学生主动思考。为了让学生主动生成知识,则需增强任务的情景性和趣味性,可以运用生活中常见的场景来设计方案,如用红色杯子盛放咖啡、绿色杯子盛放果汁,如何实现红色杯子盛放果汁、绿色杯子盛放咖啡呢?让学生提出解决问题的方案。通过讨论得出合理的解决方案是再找一个同样规格的杯子做媒介,先把果汁倒入空杯子中,再把咖啡倒入原来盛果汁的红色杯子中,这时原来盛咖啡的绿色杯子空出来就可以把果汁倒入即可完成任务。是否可以先把咖啡倒入空杯子中呢?学生纷纷尝试,答案是肯定的。课堂气氛活跃的同时,学生积极思考发言,提高了学生的课堂参与度,把学生牢牢锁在课堂中。结合课前预习变量的基础知识,进而让学生把现实问题转变为变量之间的交换问题,空杯子即为中间变量,中间变量的设置必须与两个变量一致。此情景设计步骤为:情景设计(任务→形象)—假设—检验—歸纳与应用(形象→抽象),这种任务的抽象到形象再抽象的过程与学生的认知一致,而且步骤清晰,可操作性强。
由于C语言语法复杂、细节繁多,教师在情景设计时需要以某一算法为主线,在算法中引出多个知识点,在任务呈现前需安排学生预习相关知识点。在任务的执行时虽然以学生为主体,但是由于学生的知识结构局限性及认知能力的狭隘性,不能忽视教师的引导作用,同时需要教师控制教学的节奏。
排序算法是程序设计类课程的重点教学内容,传统的教学模式是利用多媒体和板书等方式实现多次比较、多次交换,枯燥乏味的教学方式很难提升学生的兴奋度。
首先,设计场景任务呈现,介绍待解决的问题,将冒泡法排序(6个数由小到大排序)的过程演变为6名学生按身高进行由低到高排队问题,把复杂枯燥的排序过程游戏化。制定与冒泡法排序一致的游戏规则,由学生参与游戏演示排序过程,动态的场景设计更加具有生活性和趣味性,让学生带着好奇心进入学习内容中。
第二,分析问题并引出算法思想和所涉及的知识点,让学生在熟悉新的算法基础上查找所需解决问题的主要知识点,把知识点与生活场景对照明确目标,变被动学习为主动学习。学生发现每一轮比较都是重复相同的规则,这正是循环思想,循环的次数正好是比较的轮次。通过一轮比较后发现找出六名学生中身高最低的排在第一位,进入第二轮时,第一个学生不再参与比较排序过程,以此类推,6个学生5轮比较完成排序任务。每一轮比较时,比较规则相同,而比较次数递减,这样循环的终止变量如何设计,让学生分析讨论来得到答案,教师可以适时提醒并给予肯定。
第三,细化任务中涉及的各个知识点,对照游戏归纳总结循环嵌套结构,攻破本章难点的同时也是计算思维的嵌入思维方法的具体体现与应用。此时需要趁热打铁,渗透新知识的概念,让学生将游戏设计过程转变为算法流程图,分组讨论按流程图写出对应的程序来巩固相关知识点。
最后,通过举一反三,促进学生知识的保持和迁移,提出不同的排序方案,此部分设计师生之间生生之问的讨论,让学生更深入的思考,提出不同解决问题的方案,通过小组讨论对不同方案进行比较,有指导性地位的教师给予方案评价,学生通过反馈调整方案,最终选择最优方案,最优方案的选择也正是计算思维的主要内容。
在此过程中,教师的指导由多变少,最后可以达到无指导,小组讨论、团队协作成为学习中的常态。游戏设计方案,研讨方案,剖析算法化繁为简,再结合循环结构的前期基础知识把算法思维转化为程序实现过程,学生在探究解决问题的过程中知识本身自然而然地渗透在整个过程中。整个课堂设计中案例的选取及设计是关键,教师根据任务分解为若干个子问题,这与计算思维基于关注点分离的方法不谋而合,有利于学生计算思维能力的培养。
2.3教学效果调查
为了对融入计算思维的程序设计课程教学新思维的教学效果进行评估,以佳木斯大学开展教学活动为例,对同一专业两个自然班在相同理论和实验学时(未额外增加任何辅导时间)的情况下,分别采用传统授课方式和线上基于微信平台的翻转课堂教学、线上基于微信平台的翻转课堂教学模式,经过一个学期的对照教学,采用新思维的班级期末考试成绩36名学生中不及格2人,平均分数79分,90分以上达15人;而传统教学模式下的班级96人中不及格人数36人,平均分51分,90分以上不足10人。
同时通过问卷调查,对两个班级评价结果统计分析得出,在同样学员结构,同样的授课学时的情况下,使用线上基于微信平台的翻转课堂教学、学生在加深基础知识理论学习的同时,对此课程的兴趣度明显提升,作业的抄袭率和错误率有所下降,学生自主编程来解决具体实际问题的意愿明显增强,成就感和自信心得到很好的保持,计算思维能力得到了有效提升,课堂效果明显好转。
结束语
将计算思维引入到程序设计类课程方案中来,结合翻转课堂及任务驱动小组讨论等多种教学模式相结合方式,拓展了课程的宽度和深度,学生的课堂参与度、自主学习能力、编程能力、团队协作能力均有提高,课堂教学效果明显提升,同时也为其他计算机课程提供了参考。
(责任编辑:侯秀梅)