穆炜炜
摘 要: 在相关教育部门大力倡导培养学习者计算思维的背景之下,分析C语言教学对计算思维的培养特点,通过以计算思维为方法指导的任务驱动式和抛锚式教学模式组织教学过程、整合教学内容,对传统教学方法进行改革。探索C语言课程对学习者计算思维提升的教学策略,进而改变C语言课程学习积极性不高、教学效果不佳的现状。
关键词: C语言 计算思维 提升策略
1.引言
自2006年3月美国卡内基·梅隆大学的周以真教授对“计算思维”定义以来,培养学习者的计算思维和利用计算机求解问题的能力受到普遍关注。2010年11月,陈国良院士在第六届大学计算机课程报告论坛上正式提出将培养计算思维能力作为计算机基础课程改革的切入点的倡议[1],顺应新时代对教学体系改革的呼声。C语言程序课程是一门重要的,对初学者有一定难度的计算机基础课程。目前大多采用以教师为主的讲授法,引导学生进行知识探究,学习者存在兴趣不浓、学习效果不佳的情况。如何将计算思维培养融入C语言程序设计教学,探索教学改革策略是本文讨论的重点问题。
2.C语言教学对计算思维的培养特点
2.1计算思维的内涵
计算思维是一种思维过程,具备一定的计算思维,将问题清晰、抽象地描述出来并将解决方案表示为一个信息处理流程,不仅限于计算机科学领域和科学家,更应是每个人的一项基本技能,就像阅读、写作与算术一样。计算思维的本质是运用计算机科学的基础概念如约简、转化和仿真、递归、并行、抽象和分解等求解问题、设计系统和理解人类的行为[2]。
2.2C语言课程与计算思维的辩证关系
C语言是一门基础的计算机语言,是人和计算机之间进行交流的一种工具。对于计算机相关专业学习者来说,学习C语言可以掌握程序设计的思想,有助于其他计算机语言学习。对于其他众多工科类专业学习者来说,C语言是计算机技术基础课程,有助于相关专业课程学习。开设C语言课程的目的不仅是使学习者如何使用计算机编程,而且要培养学习者的逻辑思维和解决问题的方式。
在C语言教学中,应用任务驱动式、探究式教学方法可以起到激发学习者学习兴趣的目的。而将计算思维运用到教学当中,应用抽象、分解、约简的思想,使其和现代教学模式相结合进行教学设计并实施和评价教学活动,能够突破以知识为本位的培养模式,实现对能力和思维方式的培养,提高学习者学习效率。
3.C语言教学对计算思维的培养策略
3.1C语言课程教学情况分析
C语言是一门应用性很强的课程,传统教学较关注知识的系统性和完整性,学习者对知识的建构主动性不高,教学往往遵循教材顺序讲授各个知识点。一种程序设计语言必然有其较烦琐的语法,若教学着力点在于语法,必然造成学习者在学习过程中认为C语言的学习就是枯燥的语法规范,而忽视解决问题的思路,造成“只见树木不见森林”的现象[4],久而久之学习者的学习兴趣逐渐耗尽,缺乏学习动力。C语言教学普遍存在实践学时不足的情况,在学习理论知识后更多的是通过实践深化知识,提高对知识点的应用能力,能否利用所学知识解决实际问题,是检验教学效果和学习者的知识迁移能力的重要指标。另外C语言课程的考核方式多数以终结性考试为主,考核方式较单一。
3.2以任务驱动为手段组织教学过程
计算思维最重要的就是帮助人们在真实情况下对问题进行抽象,并解决问题。而建构主义教学理论认为通过为学习者提供实践和问题的情境,能够激发和加强学习者的学习动机,通过自主和协作学习方式完成知识构建,并以任务完成情况检验学习效果,学习效率更高。因此,以任务驱动为主要手段组织教学内容是培养学习者计算思维的有效方式之一[3]。
任务驱动式教学模式可以分为设计任务、认识任务、实施任务、评价任务四个阶段。
在C语言教学中,首先根据学习者的认知规律创设与学习主题相关联的、尽可能真实的学习情境,最好是与原有知识经验相联系。例如,在数组这一章,引入选秀比赛打分晋级的案例,学习者对这种场景已经非常熟悉,如何让编写C程序自动为选手评分呢?自然激发学习兴趣。然后以这一项目的解决方案为主线,设计后续认识一维数组、一维数组的应用、认识二维数组、二维数组的应用的学习任务。
二是根据教学目标设计学习任务,串联学习内容,需要教师熟悉教学内容和学习者学习情况灵活应用。例如,C语言中的运算符很多,如果一次全部抛出,必然使初学者觉得枯燥,而且不知道究竟应该将这些知识应用在何处,教学效果差强人意。所以要适当改变教学顺序,在具体解决实际问题的算法中增加相应的知识点。
三是在实施任务阶段,虽然强调学习者的主体性和协作性,但是由于学习者知识与经验所限,对于一些较复杂的问题依然无从下手,此时教师的作用就显得尤为关键,需要运用计算思维通过约简、嵌入、转化和仿真等方法帮助学生进行任务分析与分解,对学习者进行引导。例如选秀比赛评委打分从低到高进行排列的问题可以约简为理解数组存储方式和数组排序问题。
四是任务评价,分为总结性评价和形成性评价两种。在评价前教师要进行项目小结,学习者可以通过教师评价总结和反思学习过程,对完成任务的过程和结果进行评价。另外教师设置观察点,如学习态度、知识点掌握程度、小组间交流合作、个人表现等进行自评和互评。
3.2以抛锚式教学模式组织学习的路径
抛锚式教学也称“实例式教学”或“基于问题的教学”。所谓“锚”是指某种问题的情境,要求学习者到实际环境中感受和体验问题,而不是听这种经验的间接介绍和讲解[5]。通过镶嵌式教学和成员间的合作学习与自主学习相结合实现学习目标。抛锚式教学是使学习者学会独立识别问题、提出问题、解决真实问题的十分重要的途径。抛锚式教学可以分为创设情境、确定问题、自主学习、协作学习、效果评价几个环节[6]。
创设情境的目的是使学习在和现实情况基本一致或相类似的情境中发生,如在字符与字符串这章,引入一个检验密码的程序,用户有三次机会输入正确密码的问题,由于前面的学习基础,学习者很容易想到用循环语句控制输入的次数,这是已有的知识,但输入的密码是一个字符串,就涉及字符串的存储和比较问题,这就平稳地过渡到新知识点中,从而确立学习问题,这是抛锚的过程。
计算思维的培养必然依赖于对学习者自主学习能力的培养,而抛锚式教学特点之一便是由教师向学习者提供解决问题的有关线索,而不是由教师直接告诉学习者应当如何解决面临的问题,教师通过字符数组的定义、赋值进行相应知识点的链接,建立学习支架。为学生提供常用的字符串函数列表,让学习者通过自主、协作学习方式找到需要字符串比较函数。然后引导学生进行总结,完成情境问题的关键步骤可以分为相关变量的定义、判断输入密码是否正确、控制密码输入的次数。讨论结束后自主编写程序,在效果评价环节先进行小组自评,然后由教师组织互评,特别对解决问题的方法是否唯一进行讨论。总之,通过创设情境激发学习者的学习兴趣,通过抛锚、搭建支架、讨论、探究和实践引导学生逐步学习知识点,这是计算思维利用启发式推理寻求问题解答的过程。
4.对计算思维培养的总结与评价
目前,我校C语言程序设计主要针对信息类专业开设,通过一学期教学实践,对学习者的学习兴趣、学习态度、个人表现、团队合作和课程成绩等维度进行比较,学习者的学习积极性普遍提高,对C语言学习有可喜的进步。在采用任务驱动式和抛锚式教学过程中,以计算思维为方法指导,使自主、协作分析与探究问题的解决方案养成一种习惯。
5.结语
计算机科学并不仅提供一些技术、一些硬软件和系统,还提供一种思维模式。是对所有领域、职业都适用的,都是能从中受益的。如何培养学习者的计算思维将是一项长期而艰巨的工作,需要除了C语言课程之外的其他课程的共同培养。
参考文献:
[1][3]康苇苇.基于计算思维的C语言教学模式分析与案例设计[M].重庆师范大学,2015.4.
[2]Jeannette M.Wing.走进计算性思维——微软亚太教育峰会.天津,2012.1.
[4]杨阳,沈黎,杨明,等.电类大平台下C语言教学与实践探索[J].西南师范大学学报(自然科学版),2014,39(5).
[5]任仲晟.计算思维与实例相结合为导向的C语言公共课教学研究[J].新课程研究,2016.9.
[6]申慧芳.抛锚式教学模式在C语言教学中的尝试[J].电脑知识与技术,2010.9(6).