APP下载

立足信息技术课堂 提升计算思维能力

2018-05-18喻文红

课程教育研究·新教师教学 2017年35期
关键词:计算思维信息技术

喻文红

【摘要】计算思维是人们认识和解决问题的基本能力之一,也是信息技术学科培养学生的核心素养之一。与传统教学相比,基于计算思维的教学具有其独特的优势,这种优势不仅表现为培养学生创新思维方面还能够显著提升学生的学习效率。本文以算法与程序设计内容为例,阐述在高中信息技术教学中,以学为本,立足于学生实际情况,逐步提升学生对问题的发现、分析及解决能力,最终帮助学生培养其算法思维能力。在实践教学过程中,每一个环节都渗透计算思维的相关方法,在达成新课程改革目标、提升学生信息素养、切实提高学生学业水平等方面,探讨性地提出了一些教学建议和学习策略。

【关键词】信息技术;算法与程序设计;计算思维;冒泡排序;以学为本

【中图分類号】G633.67 【文献标识码】B 【文章编号】2095-3089(2017)35-0184-03

一、问题的提出

计算思维是由周以真教授正式提出的,自其诞生以后就受到许多专家学者们的广泛关注,目前与之相关的研究已经成为教育领域倍受人们关心的热点话题之一,经过多年发展已经取得了较大成效。高中学生的思维成长速度比较快,但对其思维能力的培养及训练仍需较长时间,所以学生在对知识技能进行学习的过程中也要加强对计算思维能力的培养,这样有助于其更好适应这个高速发展的社会。

浙江省新高考方案出台后,技术学科列入了高考“7选3” 选考范畴。其中,《算法与程序设计》是技术学科中的重点考查内容,有一定的难度和深度。课标提出《算法与程序设计》模块培养目标是:使学生进一步体验算法思想,了解算法与程序设计在解决问题中的地位和作用;能从简单问题出发,设计解决问题的算法。通过开展本课程的系统学习,培养学生的思维能力,使其在实践中遇到问题时可以了解分析问题的思路及有效解决问题的办法。

二、概念界定

早在2006年,周以真教授就在计算机权威期杂志《Communications of the ACM》上明确提出了“计算思维”这一概念,将其界定为运用计算机科学的基础概念进行问题求解、系统设计、理解人类行为等一系列思维活动。经过多年发展,计算思维是信息技术学科培养的学生核心素养之一。这个思维涵盖了所有有关计算机知识的思维活动。

当前,教育学界许多学者开始提倡计算思维,这主要是因为计算思维与传统教学模式相比具有其独特的优势。这种优势首先表现为计算思维能够较好地培养学生自我建构知识的能力和提升学生的创新思维能力,另外还可以大大提高学生的思维能力及学习效率。在信息技术课程中培养学生的计算思维必须科学的设计和规划课程,在具体规划当中必须从科学价值及学科思维等方面为切入点,以此来切实提升及增加学生计算思维能力。

三、研究思路

对学生计算思维能力的培养不是一蹴而就的,这种能力的培养是一个系统化的过程。在这个过程当中既需要遵循基本教学规律,又需要考虑计算思维能力的特性。在信息技术课程中,我们可以采用任务驱动法、游戏教学法、探究式教学法等教学方法,以学生为主体,强调学生自主探究问题,主动构建、解决问题。无论使用什么样的教学方法,重点在教学过程、教学环节中,都要将计算思维的相关方法一直渗透其中。

课程设计都应立足于计算思维的实际,这其中既包括一定的学习资源、学习活动,也包括学习环境的设计等等。在整个教学过程中都必须坚持以学生为中心的原则,具体的教学活动也必须以学生作为出发点,需要充分考虑学生的个性,个体已有认知水平,学习需求等等。

基于计算思维解决问题的方法主要分为关注点分析、抽象分解、构造、建模、验证等,最终实现问题的求解。高中信息技术的《算法与程序设计》课程中融入计算思维的指导思想是很有必要的,在原有教学的基础上,将计算思维的相关方法融入到教学中,进而培养学生计算思维能力。教学设计研究可以分为以下几步(如图所示):

四、基于计算思维的课程教学实践研究

《算法与程序设计》这门课程位于高中信息技术选修模块中,是高中信息技术选考部分内容,这是一门比较抽象的学科,一开始学习时会有一定的难度,怎样鼓励学生更加积极主动地参与到算法与程序设计课程学习中,这一过程值得我们深入思考与探究。

教师在进行教学设计主要是从教学目标、重难点、教学内容等方面进行思考,对教学目标进行具体分解,并在此基础上对教学过程中所涉及到的内容进行深入分析,进而筛选出切实教学实践的主题,同时明确提出增强学生计算思维这一教学目标并将其贯穿到教学过程中;在对某些重难点进行学习时,同样也要明确提升学生计算思维能力这一目标,这样有助于其在学生训练过程中开展更有针对性的教学活动。通过一段时间的引导、训练和实践,学生逐渐自主地将这种思维方式应用到新的或较复杂问题中去。下面以冒泡排序为例给出教学案例。

(一)建构算法新知,养成计算思维

在日常的学习生活中,我们有很多问题的处理都需要把一些杂乱无章的数据变为有序的数据,在冒泡排序算法的学习过程中,让学生观看相关动画,感知原理,建立冒泡排序的初步认识,以小见大,课堂中以四个数据为例给出排序算法。

1.以数组d(1)~d(4)中的数据:36,32,27,18为例,了解使用冒泡排序对其进行升序排序的思想。

这一过程由学生来演示,和其他同学一起梳理第一遍冒泡排序的过程中,j的变化规律:j 从 4 开始到2。然后再请另一位同学来梳理,第二遍冒泡排序的过程中,j的变化规律:j 从 4 开始到3;第三遍冒泡排序的过程中,j的变化规律:j 从 4 开始到4。

从而让学生自己总结归纳出N个数,外循环变量i和内循环变量j的变化关系,完成流程图。

流程图

从小到大(n个数自底向上冒泡)

For i= __________________

For j =_________________

If____________ Then

t = d(j):d(j)= d(j-1):d(j-1)= t

End If

Next j

Next i

借助流程图,分析得出双重for循环中关键代码的填写。最后,学生在vb环境下进行调试,得出结果。

2.在学生理解了“自底向上”的冒泡排序的思想和过程,并上机调试成功后,学生协作学习,自主梳理比较“自顶向下”的冒泡排序的算法并完成程序代码的填写,然后由一学生投影其过程。

4个数 i外循环变量 j内循环变量 从小到大(n个数自顶向下冒泡)

N个数 For i = __________________

For j =_________________

If ____________ Then

t = d(j):d(j)= d(j+1):d(j+1)= t

End If

Next j

Next i

3.结合双重循环程序的运行过程和特点,学生通过学习的冒泡排序算法的思想,理解并掌握排序遍数、比较次数、交换次数的计算方法,进一步夯实基础。

从有趣的动画入手,激发学生的积极性。把目标分解成几个小部分,通过师生共同的探讨,让学生理解“自底向上”冒泡排序算法的思维,而这一过程恰恰就是计算思维中对关注点进行分析的集中体现。接下来就可以基于计算思维中的抽象方法对具体问题进行抽象处理并形成算法,并在其基础上利用流程图来进行模型构建,最后依托流程图完成程度设计并进行上机验证,这充分体现运用计算思维的相关方法解决问题的优点。在此基础上,学生通过协作学习,自主分析、比较“自顶向下”的冒泡排序算法思想,最后实现程序,在这个过程中,启发学生的思维,让同学们体验这种思维方式,让学生主动建构,学会解决问题,同时使学生对该思维方式有较好理解,并基于其对问题进行具体思考分析。

(二)优化算法结构,提高计算思维

设疑:n个数据的冒泡排序需要经过n-1遍加工,每一趟加工自底向上比较相邻两个数时,把较小的数交换到上面。在探索过程中有同学发现了其中存在的问题,即当在整个过程中都没有数据可以交换时就表明这时候的数据已经排序完成,并不需要继续排序。此时,我们能不能不做无用功,提前结束程序,以提高效率?

学生再次观察排序的过程,并小组讨论修改程序。

实现冒泡排序优化的VB关键代码如下,但加框处代码有错,请改正。

Dim k As Boolean 'k值为True表示一遍加工中有交换

p = 1

k = True

Do While

k = False

For q = n To p + 1 Step -1

If a(q)< a(q - 1)Then

temp = a(q):a(q)= a(q - 1):a(q - 1)= temp

k = True

End If

Next q

p = p + 1

Loop

Label4.Caption = "排序的總加工遍数是" ++ "遍"

学生思考并讨论:

1.逻辑型变量k的作用是什么?

2.为什么要优化程序,对程序优化有哪些方法?

3.能否进一步优化?

在对程序优化的过程中,有同学质疑:这么简单的几个数据,为什么要用冒泡排序、还要优化?根据学生的疑问,教师展现几种较大数据量的排序时间比较表:

最终师生共得出结论:优化后的排序更能减少时间复杂度,提高效率。

在探究问题的过程中,以身边的实例(双十一的成交量数据)为题材,以学生为主体,通过对问题进行深入思考及分析,使学生逐步形成问题解决的思维能力,更好掌握问题解决具体步骤,有效增强其计算思维能力。通过小组协作学习,优势互补,加强同学之间的沟通交流,在更好表达自我想法的同时充分运用计算思维及与之相关的各类方法(如抽象、归纳等),基于对各类问题归纳总结后以达到在一定程度上提升学生计算思维能力的目的。最后师生总结,强化知识的学习,注重思维的训练,加深对冒泡排序优化的理解,达到了比较好的教学效果。

(三)融会算法思想,提升计算思维

基于对知识技能等的学习能够更好理解及体会计算思维,而计算思维的学习对于知识技能的提升又有着较大益处,由此可见,这个过程是个良性上升循环过程,其不只是对知识的简单学习,更为重要的是通过对知识技能的学习进一步提升其计算思维能力。以“双向冒泡排序”为例,引导学生一起分析问题,解决问题,引导学生融会贯通各种算法思想,学会综合应用,进一步加深对算法的理解,提升学生算法思维能力,这也能够为以后的学习奠定基础。

双向排序是在一遍加工中先从上到下把最大的元素送到最下的位置,再从下到上把最小的元素送到最上的位置。实现上述功能的vb关键代码如下,请对程序中①处进行填空,②③处改正。

双向排序较难理解,首先和学生一起做个游戏来理解双向冒泡排序的算法,比如我在课堂中请六位同学上来,每人手里拿一个数字,从左到右,两两同学进行比较,判断是否交换,然后再从右到左,两两同学进行比较、交换,这样一轮下来,学生非常直观地看到实现了什么,然后思考对应到程序中,我们应该怎么实现?在进行第二轮的时候,学生也通过游戏发现,最左边的同学和最后边的同学已经是最小的数或最大数了,不需要参与排序,因此,我们比较范围也就缩小了,第②处的错误学生很兴奋告诉我是“For j=i to n-i”,那么第③处错误学生更是自信满满地改出来了“For j=n-i to i+1 step -1”。愉快地完成游戏后,学生发现6个数需要进行3轮排序,7个数的话也只需要3轮排序就可以了。对应到程序中,大部分学生能很顺利的填出第一处空为“i=1 to n\2”。

由于程序设计内容往往比较抽象,缺乏具体的内容供学生理解,这就使得学生在学习时面临着很多阻碍。学生大多比较好奇,对于一些新颖的内容往往比较愿意学习,也乐于接受,而传统的教育方法并不能引起学生的兴趣,相应的学生对课程内容的理解也更加费力。因此,在教学过程中教师可以选择一些新颖的教学方式,比如做游戏,这样可以极大地激发学生的学习兴趣,使得枯燥的课程也充满趣味性,在快乐当中提升学生的思维能力。通过游戏的方式理解算法,学生总结并提炼冒泡排序算法的多种方法与技巧,以达到对冒泡排序的深度理解,实现举一反三,融会贯通的目标,进一步培养和提升了学生的计算思维能力。

五、总结与思考

基于计算思维培养的高中信息技术教学中,学生自主学习过程中能够采用计算思维相关方法界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种学习资源,同时引入科学合理的算法最终给出切实可行的问题解决方案。所谓对计算思维能力的培养与提升,其本质就是帮助学生对不同学习方法进行了解及掌握,如建模及抽象、归纳总结等各种学习方法等,积极参与、认真思考,自主发现问题、提出问题、应用学科思维方式探究解决问题,锻炼学生的思维,从中体会到学习的乐趣和奥妙。

教虽无定法,笔者认为在高中信息技术教学中,应当始终坚持以学生为中心的教学观念,要切实围绕学生的需求展开课程,在授课之前需要对学生的知识结构和思维特点进行深入探索。计算思维的培养能够有力提升学生的学习效率,同时教师的教学效率也会大大提升,除此之外还能够在很大程度上培养学生的信息素养。但我们同时需要明白,这种计算思维的培养是一个长期而复杂的过程,需要教师精心设计课堂内容,并给予学生充分的耐心。教师只有不断提升学生的计算思维能力才能更好的激发学生的学习潜力,为之后的学习打下坚實的基础。

尽管目前我国在计算思维方面已经开展了大量研究,但对于高中阶段具体教学过程中如何有效培养学生计算思维等方面的研究并不十分丰富。为此,本文以计算思维培养为切入点,结合教学实际对该问题的具体分析,以期能为高中阶段的一线教学有所帮助和启迪。

参考文献

[1]陶增乐,《算法与程序设计》浙江教育出版社,2012.

[2]黄玉安,《思维引导:发展信息技术核心素养》,《中小学电教》,2017.3.

[3]于颖,周东岱,《基于核心素养的信息技术教材结构设计》,《中国电化教育》总第364期,2017.5.

[4]李敏,卢建成,牛红惠,《基于计算思维的网络自主学习在教学中的应用研究》,《安阳师范学院学报》,2015.2.

猜你喜欢

计算思维信息技术
浙江天正思维信息技术有限公司
以信息技术促进学生的美术理解与表现
幼儿园教学活动中信息技术的应用思考
巧学信息技术课程
浅谈初中信息技术项目式学习教改实践
巧用“信息技术”,提高课堂效率
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究