APP下载

基于高中信息技术课程的计算思维能力培养研究

2016-09-10武小龙张天顺武国伟

中国信息技术教育 2016年2期
关键词:信息技术课程计算思维

武小龙 张天顺 武国伟

摘要:计算思维作为一种新的学科思维方式受到了国内外计算机界的广泛关注。培养学生计算思维能力是高中信息技术课程的重要组成部分,本文在高中算法与程序设计课程的教学活动中引入计算思维的理念,从课堂实践方面探讨了培养学生计算思维的结合点和教学方法,为计算思维背景下的教学模式提供了参考。

关键词:计算思维;学科思维;信息技术课程

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2016)02-0038-04

高中信息技术课程以提高学生的信息素养、促进学生全面而富有个性的发展为基本目标,在促进学生掌握信息技术的基本知识和操作、加快信息技术应用的普及等方面起了积极的推动作用。目前,在高中信息技术课堂教学中,教师更加注重的是培养学生的信息技术操作能力和信息处理的方法。而信息素养则更强调使用计算机这个工具本身的能力,计算思维注重如何能像计算机科学家一样思考问题,强调“人的,不是计算机的思维”。从学生的长远发展来看,教师将计算思维引入到高中信息技术教育中是十分有意义的。

计算思维的概念和本质

1.计算思维的概念

美国卡内基·梅隆大学计算机系主任周以真指出:计算思维就是运用计算机科学的基本概念去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学广度的一系列思维活动。[1][2]学会计算思维,是在信息社会中创新的需要。[3]计算思维是按照预防、保护及通过冗余、容错、纠错的方式从最坏情形恢复的一种思维,计算思维是与形式化问题及其解决方案相关的一个思维过程,其解决问题的表示方式能有效地被信息处理并代理执行(如图1)。

2.计算思维是高中生信息素养的必要组成部分

培养高中生计算思维对提升高中生自我学习能力和综合素质等方面具有重要的推动作用。认知学习理论告诉我们,学生学习实质上是其在头脑内自主构造认知结构的过程,而计算思维的培养有助于高中生构造认知结构,激发高中生内部学习动力。[4]以往人们都认为信息技术课程只是一门工具性学科,是学会操作Word和PowerPoint等软件的培训课程,从而导致信息技术课程出现“只见技术不见人”的现象。要改变这种状况,就要将计算思维作为信息技术课程的核心培养目标,像学习数学或英语一样学习信息技术,实现“基础的回归”。因此,重新探讨算法与程序设计在信息技术课程中的地位与作用,优选算法与程序设计的教学内容,改善课程的教学方法,促进算法思维在信息技术课程中以适当的形式呈现势在必行。

高中信息技术课程中计算思维能力的培养模式

教师可以采用多种方式来培养学生的计算思维能力,传统的教学模式会大大限制学生自主发现问题的思维能力,而计算思维则提供了重新审视程序设计教学的视角,将计算思维融入到程序设计教学中将会大大提高学生的思维方式和解决实际问题的能力。对程序设计课程来说,学生需要掌握的编程能力是计算思维和技能化知识的综合体现,因此需要强化对学生计算思维能力的培养,而计算思维能力在较大程度上是以思维方式的数学化为支撑的(如图2)。

1.情境教学、分层教学

对于那些比较难理解的概念,在学生已明确探究目标的基础上,教师可以创设情境进行教学。以讲解约瑟夫算法为例,笔者让6位学生站在教室的最前面排成一排并手拉手,说道:“如果从第一位学生开始数,数到第三位时学生出列,最后是哪一位出列?”这时,学生就开始在心里想了,某某最先出,然后是谁,最后又是谁出列。在这个过程中,部分学生参与其中,下面的学生也会在心里计算,这样,全体学生都参与进来了。接着,笔者提示学生用链表知识来描述这个算法,有几位学生很快就写出了代码。同时,对于基础较好的学生,教师可以要求他们用数组来解决问题,同时全体观摩。

2.借助任务驱动培养计算思维

信息技术教师都有过这样的体会,教给学生一门知识或技能相对容易,但教会他们某种能力或思维却很难,如面向对象、差分与递归等。任务驱动教学法是一种建立在建构主义教学理论基础上的教学法,强调培养学生自主学习,独立分析问题、解决问题的能力。因此,教学任务的设计至关重要。教师需要根据学习主题,创建尽可能真实的学习情境,以选用科学研究和工程技术中的实际问题为最佳,这样能使学生迅速融入教学情境。例如,在讲解循环语句的时候,教师如果只是一味讲解它的语法怎样实现,说它如何重要,有些学生可能会觉得很枯燥,有些学生可能会越听越糊涂。这时,教师可以设计一个很实用的小程序,如运动会成绩计算程序等,在成绩输入过程中使用循环语句,学生如果觉得它很实用、很有价值,自然就会想学习、掌握该知识点。

3.加大对实验程序调试的指导力度

实验内容侧重于对学生的计算机基本技能的训练和综合应用能力的培养,教师可按照基础实验、拓展实验和创新实验进行分层教学。如果学生已掌握使用计算机解决问题的四个步骤——分析问题、建立模型、设计算法和编写程序,则可以依据教学要求和自身的基础,选择必做和选做的实验。

以VB编程的基本步骤为线索,教师引导学生通过对各阶段问题的解决,形成循序渐进的梯度,组成一个任务链,使其在“做中学”“学中做”的过程中加深对知识的理解,并适当地为学生提供拓展性的内容,充分挖掘他们的潜力,以便让学有余力的学生有更大的发展空间。这样既强调了学生自主学习、协作学习,又能使其在学习时有规可依,使他们在程序设计中得到适度的创新体验。

4.错例分析法

学生对各知识点的掌握需要一个过程,对算法和数据结构的掌握也需要不断积累。在学习过程中,学生往往能听懂教师授课的内容,但自己编写程序时却错误百出。因此,笔者经常将容易出错的概念以反例形式展示给学生,或者将比较典型的例子展示给学生,让他们找出错误,分析原因,并纠正、调试直至正确运行。在这个过程中,教师应引导学生积极参与找错、纠错,明确易错知识点,使学生加深印象。

5.创新性地利用翻转课堂

教师在教学中,利用提前准备好的视频、音频等,让学生在课前自学,课堂上有针对性地讲解内容中的重点和难点。教师利用现实生活中的实例讲解、类比,通过VB控件对象的举证,让学生形象地理解面向对象程序设计中的对象、属性、方法、事件、类等基本概念与封装、继承、多态性等特征。

关于递归算法教学的课堂实践

笔者以高一信息技术教材中《算法与程序设计》一课中的递归算法为例,讲解如下。

递归算法的基本思想是把规模较大的、较难解决的问题变成规模较小的、容易解决的问题,规模较小的问题又变成规模更小的问题,当问题小到一定程度时,可以直接得出它的解,从而得到原来问题的解,即采用“大事化小,小事化了”的基本思想。

引入题目:有一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半且再多吃一个,到了第十天只剩下一个桃子。问猴子共摘了多少个桃子?

笔者找了十位学生上来排成一排,十位学生分别计算其中一天桃子的个数。计算第十天桃子数的学生的答案是一个,那么他把答案传给第九位同学,这位同学就可以算出第九天桃子的个数。公式是(前一同学的答案+1)×2。接着,他把计算出的答案传给第八个同学,以此类推……由于每天的桃子数都等于第二天桃子数加1的2倍,符合递归的条件,故采用递归实现非常方便。首先,定义天数变量day,如果day=10,据题意只剩下一个桃子,即返回1,否则递归调用,即return(digui(day+1)+1)*2,直到day=10结束;然后,建立输出函数Digui(),输出digui(i)(1=

笔者根据计算思维的特点和高效性,启发学生是否可以用计算思维的递归方法解决上述问题。学生根据引导,运用计算思维的递归方法,逆向思维,从后往前推算。在这里教师引申为:求任意一天猴子所吃的桃子数及剩下的桃子数oneday()。首先,要明确“任意一天”的范围,定义天数变量day,并输入要求的某一天day,if(day>=1&&day<=10),则此时“任意一天”都有桃子;其次,初始化信息n=10,count=1,即第十天只剩下一个桃子;然后,用简单的while语句即可实现,循环条件为n!=day,通过计算公式count=(count+1)*2同时n--,循环执行,直到n==day,即得到这一天桃子的剩余量count。而这天猴子所吃的桃子数等于前一天剩下的桃子数减去今天剩下的桃子数,前一天的桃子数是今天的桃子数加1的2倍,即这天猴子所吃的桃子数为(count+1)*

2-count=count+2,输出这天猴子所吃的桃子数及剩下的桃子;否则,即if(day<1&&day>10),则输出这天已经没有桃子了;最后,返回主菜单。由于此程序需比较n-day+1次,故此算法的时间复杂度为O(n)。整个过程用流程图描述如上页图4所示。

在此例中,教师引导学生以递归算法的逆向思维求解问题,在学习过程中体会递归算法的思想过程,学生在思考中学习,并掌握递归方法,当遇到类似问题时会想到用类似的方法解决。在掌握了前面所学的基本技巧和方法后,学生对该类问题已经能够灵活运用所学知识进行求解。此时,教师应该在此基础上继续启发学生思维,让他们主动、积极地进行自主学习,使其能举一反三,达到在学中做。

实施效果

为了将计算思维引入到高中信息技术教学中,笔者通过一学期的教学,并围绕三个方面进行了调查。本次共发放300份问卷,全部有效,其中男生180份,女生120份。问卷中所涉及问题主要有:①对计算思维的认知情况;②授课方式改变的满意程度;③学习结果的满意情况。问卷调查分为三个等级(A.满意,B.较满意,C.与传统教学方式变化不大),调查结果如图5所示。

经过调查笔者发现,对计算思维完全了解的有240人,占总数的80%;对计算思维基本了解的有40人,对计算思维不了解的有20人。由此说明,教学实践后,绝大部分学生对计算思维有了一定的理解,在对学生思维能力的转变方面,有254人非常重视在学习过程中将书本知识转换为实践能力,仅有19人对书本知识转换为实践能力这一思维能力转变的过程不太重视。从调查结果来看,将培养计算思维为核心的教学模式引入课堂教学,取得了十分显著的教学效果。

结束语

对信息技术课程而言,计算思维就像人们阅读、写字、做算法一样,是信息技术学科最基础、最适用、不可或缺的基础思维方式。[5]在高中信息技术课程中培养学生的计算思维,是信息技术课程改革的一条新思路,有利于信息技术课程形成稳固的核心价值,确立以信息技术解决问题的概念、方法与原理为主的稳定的课程内容,真正摆脱软件操作的局限。现在,对教学效果还没有具体的衡量指标,教师在参考该模式进行教学实践时还存在着不足之处,在后续研究中笔者还需要对其进行更深入的探索。

参考文献:

[1]J.M.Wing.Computational Thinking.Communication of the ACM,2006,49(3):33-35.

[2]周以真.计算思维[J].中国计算机学会通讯,2007,3(11).

[3]精心铸精品 理念须先行——谈“程序设计基础”课程改革[EB/OL].http://www.docin.com/p-49584671.html

[4]吴敏.浅议信息技术课程中高中生计算思维的培养[J].中国信息技术教育,2014(22):103.

[5]王荣良.计算思维对中小学信息技术课程的影响初探[J].中国教育技术装备,2012(27):56-57.

猜你喜欢

信息技术课程计算思维
浅谈新课程下的初中信息技术课堂教学
信息技术课堂教学中的讲授法简析
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
小学信息技术课实施“任务驱动”教学策略
如何将教改精神与创新信息教学融合在高中教学中
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养