初中信息技术学科培养学生计算思维的策略研究
2019-09-10陈辉涛鲁晶
陈辉涛 鲁晶
摘 要:计算思维培养的途径很多,编程学习是一个很好的依托工具和抓手。笔者从初中信息技术编程教学入手,通过一线教学实践总结出培养学生计算思维的教学策略:运用项目式教学法培养学生的计算思维;运用案例教学法培养学生的计算思维;运用模式识别培养学生的计算思维;运用自主探究方式培养学生的计算思维。
关键词:计算思维;培养内容;教学策略
中图分类号:G4 文献标志码:A 文章编号:2096-0069(2019)04-0059-05
一、研究背景
2006年美国卡内基·梅隆大学周以真教授明确提出了计算思维的概念,“计算思维是一种运用计算机科学基本概念求解问题、设计系统和理解人类行为的方式,涵盖了计算机科学领域广度的一系列思维工具”[1]。这个概念一经提出,就成为国外学者研究的热点。欧美一些国家早早就把计算思维列为21世纪人才发展必须具备的能力。在英国,中小学信息技术的一个重要课程内容就是计算思维;在美国,“K-12计算机课程标准”明确将计算思维定为重要课程内容之一。查阅资料发现,国内关于计算思维的研究实践工作处于初级阶段,但发展迅速。
计算思维存在于很多学科,信息技术学科尤为明显。信息时代的到来让人们的认知结构和思维特征都发生了改变,如何创造性地使用信息技术培养有计算思维能力的数字公民成为教育工作者研究的重要问题。2012年国家教育部高教司设立以计算思维为切入点的“大学计算机课程改革项目”,探索在高校培养学生计算思维的方法。2018年1月18日教育部发布《普通高中信息技术课程标准:2017年版》,其中明确将计算思维列入高中信息技术学科核心素养的四个核心要素之列,要求学生运用计算思维识别与分析问题,抽象、建模与设计系统性解决方案。[2]任友群教授在发文中讲道:“在信息技术课程中,不仅需要普及计算机科学概念,更需要引导学生将计算思维合理地应用至日常生活与学习之中,形成一种思维习惯。”[3]谢忠新等人认为中小学信息技术课程的学科思维应该关注学生计算思维、批判性思维与创新思维,其中学生计算思维应该作为中小学信息技术课程的重要目标。在信息化时代的今天,在中小学信息技术教育中,教学生掌握计算思维比教学生单纯地学习操作计算机更为重要。[4]
众所周知,中学的信息技术课程与高校的计算机课程是一脉相承的,在中学阶段通过什么样的方式和途径培养学生的计算思维能力,是需要我们初中信息技术教师思考和探索的问题。实践证明,在初中信息技术学科落实计算思维的培养,编程学习是一种很好的途径。在初中信息技术教学中,教师将计算思维融入不同的编程语言学习中,能有效地训练学生在学习和创作过程中的算法、分解、抽象和概括以及评估方面的能力,锻炼逻辑思维能力、算法设计能力、合作能力和沟通能力,提升计算思维与信息素养。
二、确定基于学情的计算思维培养内容
对于七年级学生来说,由于没有编程学习的基础,就需要从形象思维方面去培养学生的计算思维,因此我们将学习内容设定为Scratch图形化编程:掌握各类指令积木块的使用;了解程序的三大结构;学会通过拖拽指令积木的方式编写程序,创造出交互式故事、动画、游戏、音乐和艺术作品的程序。两个学期,每学期共用12课时完成。而对于八年级学生来说,他们具备一定的信息处理能力和编程基础,我们就可以从逻辑思维方面来培养学生的计算思维。因此我们将学习内容设定为VB代码编程,引导学生掌握VB编程软件的使用,通过编写代码来解决学习生活中的问题,一个学期,用14课时完成。最后八年级下学期再通过课本上仿真机器人的编程学习,将图形化编程和代码编程结合起来,帮助学生学会运用计算思维去探索、解决学习生活中的问题,将计算思维的培养落到实处。
三、培养计算思维所采用的教学策略
(一)用项目式教学法培养学生计算思维
所谓项目式教学法就是在教师的指导下,学生通过独立或者合作的形式参与完成一个完整的项目活动,包括分析問题、设计程序到形成解决问题的方法等,在项目实施的过程中,教师做好引导,学生作为主体参与活动。最后学生通过完成项目从而找出解决问题的方法并进行拓展延伸。我们就在教学中采用项目式学习,首先展示项目并确定具体任务。学生明确任务后开始分组或独立实施项目。在项目实施的过程中,学生会经历以下几个步骤:分析问题→确定计算方法→算法流程分析→编写程序→调试程序→形成方案。这一系列的操作对于学生逻辑思维能力和计算思维能力培养起着重要的作用。
【案例1】飘落的花瓣
学生参与并完成项目,主要有以下几个步骤:
第一步:确定项目任务
教师展示作品《飘落的花瓣》,请学生独立设计或者分组合作完成这个项目。学生明确任务后,开始项目的实施。
第二步:实施项目过程
(1)分析问题:天空中飘落的花瓣是一个角色还是多个角色?如何实现花瓣飘落的效果?通过什么语句实现?
(2)确定计算方法:通过对角色进行抽象和分解,得出天空中的花瓣是一个角色,且通过克隆可以实现花瓣雨的效果。其中,花瓣的飘落是通过y坐标数值的减少来实现的,为了呈现更真实的效果,增加其旋转的角度,最后碰到边缘删除本克隆体。
(3)算法流程分析:上一步确定了计算方法,下面就可以通过流程图帮助学生更清晰地了解程序。
(4)编程程序:根据对流程图的分析、理解,在Scratch的程序区域拖拽相应的指令,修改参数并完成程序的编写。
(5)调试程序和形成方案:编写好的程序可能在运行的过程中会出现问题,因此需要学生纠错、调试、改进程序。学生调试程序的过程,就需要像计算机执行程序一样去思考执行语句,理解每一步实现的效果。在这样的“分析—设计—编程—测试—调试”的过程中,学生的计算思维得到提升。通过汇报解决问题的方案,完成整个项目活动。
第三步:项目拓展创新
学生完成项目后,教师再鼓励学生思考:类比这个程序,还能创作哪些作品?比如飘舞的雪花、缓缓升起的气球、水中不断冒出的气泡等。学习编程的目的不是仅仅完成某个单独的程序或者解决某个单独的问题,而是运用这种方法去解决类似的诸多问题,进行知识的迁移,同时借助归纳、实践来拓展、创新。
(二)运用案例教学法培养学生的计算思维
学生刚开始学习编程时觉得抽象、不好理解,为了更好地帮助学生理解,任课教师在设计案例时结合学生学习、生活中的实例,并提出有针对性的讨论任务或者问题,让学生预先讨论、分析问题,接着再引导学生对案例进行模仿、创作,从而归纳出解决问题的方法,最后再迁移、拓展到类似问题上,逐步培养和提升学生的计算思维。
【案例2】在图片框中显示一张图片
这是一个调用Picturebox对象修改Picture属性的一个基本案例,该案例不涉及复杂的代码编程,仅仅通过调用控件、修改属性就能实现,易于被学生接受,而且突出了重点。
在教学中,教师演示操作并引导学生思考对象和对象属性的概念,再由学生自主练习。在练习中采用的图片建议让学生自主选择,但可能出现一个问题:有些图片大小不合适怎么办?对此教师可以引导学生自主探究,尝试修改对象属性来解决这一问题。以小组合作探究的方式,学生找到通过修改图片Picturebox的宽度和高度属性使其能够适应图片的大小。修改完之后,又可能出现一个新的问题:Picturebox过大或者过小,在整个窗体中显得不美观怎么办?有了刚才修改对象属性的经验,学生会很自然地联想到通过修改窗体的宽度和高度属性使其能够适应Picturebox的大小。
教师也可以及时地进行引导:不同类型对象的属性有可能相同,也有可能不同,你能否找到窗体属性和Picturebox属性的不同之处呢?通过这样的引导和练习,学生不仅对抽象概念从陌生變得熟悉,而且能够举一反三,模仿、概括解决问题的方法。
此部分教学从一个简单的案例出发,通过案例展示、案例分析、案例设计以及总结拓展,由浅入深,一步步地引导学生不断地思考、探究和尝试。在此过程中,学生的思维将现实生活中的事物(图片)与计算机所能处理的对象(Picturebox)联系起来,将图片的大小与Picturebox的宽度和高度属性联系起来,并且逐步学会了“以计算机的方式进行思考”即“修改窗体属性”来解决问题。
(三)运用模式识别培养学生的计算思维
实践中,教师发现即使任课教师讲解了编程中的语法格式、功能、用法和流程图,学生在实践操作时还是没有兴趣继续钻研,究其原因还是计算思维能力不够,缺少观察数据的模式、趋势和规律的能力,即模式识别的能力。这就需要教师调整教学策略,循序渐进地引导学生发现规律、总结规律,从而举一反三,利用模式识别来提升学生的计算思维能力。
【案例3】编写程序,单击“开始”按钮,在一行中显示10个星号(*)
这个案例在课本中是以数据累加的形式呈现的,学生理解起来有些困难。教师在设计活动时舍弃略显抽象的数据例子,采用显示符号来说明循环程序的基本设计思路,简单直观,更容易被学生接受。
(1)在提前给出程序的基础上,让学生画出程序流程图,讨论交流循环结构的特点。显然,学生会觉得循环结构也是很简单的。
(2)教师提出一个问题:怎样显示出20行中每行10个星号?很多学生会一直单击“开始”按钮,直到显示出20行星号为止。也有学生会发现这样做很麻烦,认为应该有更加简单的办法。教师可以顺势引导学生:怎样单击一次“开始”按钮,得到结果呢?有了显示1行10个星号的算法基础,再加上单击20次按钮的切身体验,经过热烈的讨论,大家自然地发现还是需要用到循环来解决问题,而且要用到两次循环。
(3)教师再来讲解双重循环的结构,学生就非常容易理解了,问题也就迎刃而解。对于学有余力的学生,要让他们自主探究怎样用星号组合成三角形、菱形等一些特殊的图形,一步步地引导学生去找到数据变化的趋势和规律,总结出合适的算法。最后再由此过渡到数据的累加和求和等运算,学生更容易接受和理解。
在代码编程学习中诸如此类的案例还有很多,教师采用显示直观的图形作为教学案例,不仅可以避免代码设计上的一些难点,而且能够引起学生的学习兴趣,有利于他们在探究中总结出数据的模式、趋势和规律,提高模式识别的能力。教学实践证明,如果由学生自己找到规律并理解程序的算法,进而设计出自己的算法,那么程序的编写也就水到渠成了。
(四)运用自主探究方式培养学生的计算思维
从信息技术学科的学习内容来看,无论是编程还是其他模块的学习,前后的知识都是有一定联系的。因此在学习的过程中,教师要放手让学生多思、多练,鼓励学生通过自主探究获取新知,每一次的思考、尝试、练习、调试都是对学生思维能力的锻炼。
【案例4】在仿真环境中让机器人走出一个正六边形轨迹
在这一节之前,学生已经通过前进和转向模块完成正方形轨迹的任务,从正方形到正六边形不仅仅是边数的增加,还涉及转角的调试。转角大小的设置与转角的速度和时间都有关系,所以一定要反复调试才能总结出合适的参数。这个任务就由学生自主探索完成。
在设置参数的过程中,转向电机的速度不易设置过大,难点在于时间的设置。学生在探索的过程中会尝试不同的时间数值,如0.2秒、0.3秒、0.4秒、0.5秒等进行实验,在仿真环境中学生会发现0.3秒短了,0.4秒又长了,于是经过反复调试发现大概在0.32秒的时候这个时间最为适合。最后教师在介绍利用二分法和估算法测算转角时间逼近最佳调试角度,学生理解起来更容易。
学生在调试的过程中会发现,运动轨迹为不同图形时,速度与时间的乘积是有关系的:轨迹为四边形时,速度与时间的乘积约为25;轨迹为三角形时,速度与时间的乘积约为32;轨迹为五边形时,速度与时间的乘积约为20;轨迹为六边形时,速度与时间的乘积约为16。只有经过自主探索,发现、找到规律,学生才会理解更深刻,反复调试和总结的过程对于学生计算思维的提升是非常有帮助的。
四、经验反思
(一)经验
通过教学实践,教师对计算思维有了更深入的认识:一方面明确了在初中阶段培养学生计算思维的必要性和重要性,树立在日常教学中融入计算思维的意识;另一方面结合学生特点,总结出了初中信息技术学科培养学生计算思维的策略。
1.运用项目式学习的策略
在项目式学习的过程中,教师有针对性地引导学生发现问题、提出问题,并采用科学的思维方式去解决问题。那么经过一段时间的练习后,学生在潜意识里就会形成这种思维方式,再遇到类似的问题就会联想到运用这种方法去解决,这有利于培养学生的计算思维能力。
2.运用案例分析、归纳、拓展的策略
教师从一个基础案例出发,通过分析、归纳、拓展,逐步引导学生进行思考、探究和尝试。在进行案例分析和归纳的过程中,学生的思维进行了迁移,将基础案例和日常生活、学习中的实例相联系,并在拓展中进行实践和应用。通过这一系列的思维训练,学生逐步学会了“以计算机的方式进行思考”来解决问题,使计算思维能力得到了锻炼和提高。
3.運用模式识别的策略
模式识别能力对于信息技术的学习非常重要。信息技术的很多模块内容是有联系的,采用模式识别可以帮助学生在探究中总结出数据的模式、趋势和规律。采用模式识别的策略,学生可以更好地进行知识迁移,这能够更好地促进学生计算思维能力的提高。
4.运用自主探究获取新知的策略
计算思维的培养和提升是需要一个过程的,在这个过程中学生的主动性需要得到充分发挥。每一次的探索、尝试、练习都是对学生思维能力的锻炼。无论是编程教学还是信息技术其他模块的学习,教师都要合理设置自主探究的学习活动,让学生在这个过程中主动获得新知。
以上几种教学策略是我们通过课堂实践总结出来的,并以此来指导教学活动的开展。当然,这几种教学策略并不是独立运用的,在某些活动中需要综合运用。教师在授课的同时也要注重计算思维的融入,不仅要挖掘教材中培养计算思维的内容,还要开发拓展性的学习内容,再根据具体的学情和课堂情况灵活选择教学策略。
(二)反思
经过团队的共同努力,我们取得了一些成绩,但在研究的过程中仍然存在一些问题。主要表现在以下几个方面:欠缺相应的理论水平和研究能力,对于国内外计算思维培养的策略研究还不透彻,好的经验在实践中运用不够深入;研究内容仅仅从编程方面入手,显得有些狭隘,事实上在信息技术学科很多模块的学习中都可以培养学生的计算思维,比如音(视)频的采集加工、人工智能的机器人等等;我们在计算思维评价方面做得不够细致,缺少深入系统的对比,还需要加强计算思维评价方面的研究。
参考文献:
[1]JEANNETTE M W .Computational Thinking[J]. Communi- cations of the ACM(S0001-0782),2006,(3):34-35.
[2]教育部.普通高中信息技术课程标准:2017年版.北京:人民教育出版社,2018.
[3]任友群,隋丰蔚,李峰.数字土著何以可能:也谈计算思维进入中小学信息技术教育的必要性和可能性[J].中国电化教育,2016,(1):2-7.
[4]谢忠新,曹杨璐.中小学信息技术学科学生计算思维培养的策略与方法[J].中国电化教育,2015,(11):116-120.
(责任编辑 孙志莉)