APP下载

高中算法与程序设计教学中“计算思维”的培养

2018-10-20陈丽红

中学教学参考·文综版 2018年7期
关键词:计算思维信息技术

陈丽红

[摘 要]高中信息技术课程“算法与程序设计”的主要教学任务是引导学生体验用算法程序思想解决生活中的实际问题,养成计算思维的核心素养,提升创新思维能力,体验算法和程序给我们的生活和工作所带来的效率,从而让学生体验程序的作用和计算机的程序化思想。

[关键词]计算思维;算法与程序设计;信息技术

[中图分类号] G633.67 [文献标识码] A [文章编号] 1674-6058(2018)21-0049-02

高中信息技术课程标准修订稿中指出,高中信息技术学科总体目标是发展学生核心素养,包括“信息意识”“计算思维”“数字化学习”和“信息责任”四个方面。“计算思维”是指在运用计算机科学领域的思想方法解决问题的过程中产生的一系列思维活动。算法是计算思维内容的一部分,算法思想与问题求解的思路是程序设计的重点。因此高中信息技术课中“计算思维”素养的培养任务主要落实在“算法与程序设计”课程中。

一、“计算思维”的感知

对于刚接触“算法与程序设计”课程的学生来说,计算思维习惯是几乎空白的,让计算思维从无到有是培养的第一步。例如编写程序实现求1+2+3+4+5+6+7+…+n之和,在教学过程中教师要让学生形成如下三個计算思维习惯:

1.计算机是如何处理不确定的数的。例如以上的计算程序中,“n”是一个不确定的数,在程序设计中让学生形成一个思维,即有不确定的数的程序必须有输入语句或者相应的赋值语句,把不确定的数变成确定的数。

2.计算机的优势就在于它可以不厌其烦地重复地工作,因此对于上述n个数的求和问题都用循环套用累加语句“s=s+i”,同时必须通过变量控制累加的值。

3.计算机具有强大的数学逻辑运算能力,这是人脑所无法比拟的,电脑的计算能力要比人脑强得多,不仅速度快而且非常准确,以上的计算程序中“n”数字再大,对计算机来说运算过程都是一瞬间的事情。

二、“计算思维”的强化与发散

习惯的养成不是靠一两节课就能完成的,而是需要一个举一反三、不断强化的过程。例如同样一个求和问题,可以举出很多生活化的类似问题给学生强化训练。比如举贪吃蛇的例子:有一条贪吃的蛇,在它还是小宝宝的时候胃口也不大,但是随着身体的长大,吃得也越来越多,它第一天吃1个馒头,第二天吃2个馒头,每天吃的馒头都要比前一天多一个,与此同时,它的身体也在变长,他身体的长度正好是它吃的馒头的总数。假设蛇宝宝刚出生的身体长度是1,请问到第n天吃完馒头的蛇的身体有多长?

三、“计算思维”应用与综合

要用计算机解决复杂的问题,一定要掌握程序设计基础知识,掌握程序的三种基本结构,掌握算法(枚举、解析、排序、查找等)的思想,掌握变量、一维数组、二维数组数据结构,在此基础上举一反三。“算法和程序设计”的基本知识讲完后,可以通过上几节应用性、综合性较强的课让学生应用所学的知识进行程序设计和解决实际问题。

1.情境引入——界定问题,抽象问题特征,建立结构模型。

教师用教学PPT和口头语言提出本节课需要解决的问题:学校举行元旦文艺会演,计算每个节目的得分,计分的规则是去掉最高分和最低分后再计算平均分。我们这节课就一起来编程解决这个问题。

提示:让学生分析问题的特征、需要解决什么问题,目的是为了让学生通过判断,分析与综合之前所学的知识设计解决问题的方案。

教师引导学生回顾所学的四大算法思想,并用PPT呈现。

2.引入课题——合理组织数据,选择合适的算法

问题探究1:思考用什么算法解决问题,并用语言简述程序算法。学生可能会答“查找算法”,首先找出所有数据中的最小值和最大值,然后在总和中减去最小值和最大值;也可能会答“排序算法”,先按照评分由高到低排序,然后去掉第一个和最后一个的评分再求和。学生的回答很多,教师要一一引导,让学生思考用什么算法,最后在课堂上经过讨论探究总结出两种解决问题的算法。

问题探究2:用什么数据结构存储评委的平均分?学生会答“变量”“数组”等。经过讨论探究总结出用“数组”存储数据比较合适。

3.用排序算法解决问题

教师呈现本节课的学习任务单和半成品的程序素材,让学生自主完成任务。

【任务单1】问题描述:学校元旦文艺会演要计算每个节目的得分,计算的规则是去掉最高分和最低分后再计算其他评委的平均分。小明同学想用所学的VB知识编一个程序,他说用排序算法解决这个问题,即先把n个评委的数据输入一维数组a(1 to n)中,然后对其进行从高到低的排序,再对数组的第2个到第n-1个数据进行求平均就可以了。根据给定的界面在text1 中输入各评委的评分后在list1中显示各评委的评分,单击“评分”按钮command1计算出节目评分,并在text2中显示最后得分的值。

程序如下(请补充完整):

Dim a(1 To 50) As Single 用于存放评委评分的数组

Dim n As Integer 用于存放评委的个数

Dim s As Single

Private Sub Command1_Click( ) 先排序,然后对第2个到第n-1个的数据计算平均值

Dim i As Integer, j As Integer, m As Integer

Dim s1 As Single

排序算法的程序段

For m=2 To n-1 对第2个到第n-1个的数据计算总和

s = s + a (m)

Next m

s1 = 把第2个到第n-1个数据的平均值保存到s1的变量中

Text2.Text = Str(Int(s1 * 100 + 0.5) / 100) 把平均分的结果四舍五入,保留两位有效数字

End Sub

Private Sub Form_Load( ) 窗体载入时初始化n 和s的值(程序略)

……

End Sub

Private Sub Text1_keypress(keyascii As Integer) 输入评委评分,按回车键存入数组 a中(程序略)

……

End Sub

4.用查找算法找出最大值和最小值解决问题

【任务单2】问题描述:学校元旦文艺会演要计算每个节目的得分,计算的规则是去掉最高分和最低分后再计算其他评委的平均分。小芳同学想用所学的VB知识编一个程序,即先把n个评委的数据输入一维数组a(1 to n)中,然后在数组中找出最大值和最小值,最后把所有分数的总和减去最大值和最小值后求平均分。请自行编程解决问题。

5.上交作业,教师展示并用语言表扬评价

根据学生作业的情况进行课堂批改讲解。教师与学生一起总结利用计算机解决问题的过程与方法,并将其迁移到解决其他问题的方法与过程。

计算思维是信息时代人们解决问题的一个重要工具,培养学生用计算机解决生活中的问题的能力在当今这个信息化的时代尤为重要。计算思维的习惯会让学生了解人类与计算机的区别,从而更好地驾驭当今的计算机以及用程序思想工作的机器,能让学生感受到计算机是他们的第二双手、第二双脚,甚至是第二个大脑。

[ 参 考 文 献 ]

张会,罗南超.计算思维在程序设计教学中的培养[J].阿坝师范高等专科学校学报,2013(3).

(责任编辑 周侯辰)

猜你喜欢

计算思维信息技术
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
新一代信息技术征稿启示
信息技术在幼儿教育中的有效应用
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究