浅谈算法设计如何培养学生计算思维

2020-12-02 23:57林美汐
数码设计 2020年11期
关键词:灵活性程序设计算法

林美汐

摘要:由于我国普通高中的培养目标是进一步提升学生综合素质,着力发展核心素养,而计算思维正是信息技术学科核心素养的核心要素组成部分,是每个学生为数字世纪做好准备的关键。培养学生利用计算机编程实现算法来解决所给出的问题,是培养学生计算思维能力的一个典型代表。为此,本文针对如何利用算法设计培养学生的计算思维做一个初步的研究。

关键词:算法;计算思维

中图分类号:G633   文献标识码:A   文章编号:1672-9129(2020)11-0207-01

1 国内外关于计算思维的探究

2006年3月,周以真教授在CACM上发表《Computational Thinking》一文。2011年周以真教授对“计算思维”的定义为:计算思维是指对问题进行阐释和解决的思考过程,并形成能被信息处理机构有效执行的解决方案。自卡内基梅隆大学的周以真教授提出计算思維概念以来,如何培养学生的计算思维成为国内外信息技术教学改革的研究热点,越来越多的国家开展了计算思维的研究与教学实践。

在国内,我国学者也围绕在教学中培养计算思维的相关问题进行了积极探讨。在“计算思维能力培养”方面,苏小红等认为程序设计课程以应培养学生的计算思维和问题求解能力为重,不能单纯地讲解语法和程序设计方法。在“教学模式探究”方面,汤涛给出了以培养学生计算思维能力为目标的教学模式及实施过程。黄静等提出基于计算思维的意识、方法和能力培养,借鉴任务驱动教学法,构建程序设计课程教学模式,以解决程序设计课程教学中存在的问题。

2 利用算法设计培养学生的计算思维技能

在计算思维技能中,算法思维具有非常鲜明的计算机科学特征。有些问题是一次性的,但解决这些问题的方案,则可以不断发展。在同类问题一再出现时,算法思维就可以介入。没有必要重新每次从头思考,而是采用每次都行之有效的解决方案。

算法思维是在思考使用算法来解决问题的方法。这是学习自己编写计算机程序时需要开发的核心技术。然而目前在编程方法加工信息中,重实用,轻思维,重程序,轻算法,以编写程序代码为主,强调编程技巧,注重语句语法,忽视算法思维的培养是常态。其结果是学生只会根据教师提供的标准算法,机械式的模仿代码编写,缺少思维能力和创造意识,更不会将算法思想迁移到其他问题的解决中。因此,利用算法培养算法思维尤为重要。

(1)抽象问题模型,培养学生思维的概括性。思维的概括性是指将许多具有某些共同特征的事物,或者是某种事物已分离出来的一般的、共同的属性特征综合起来。而算法首先是解决一类问题的方法和步骤,把具体问题抽象成一定的模型,进而解决这一类问题,正是培养思维概括性的好方法。首先要对感知材料形成总体轮廓认识,从感觉上发现十分突出的特点;其次要从感觉到共性问题中肢解分析,形成若干分析群,进而抽象出本质特征;再次,要对抽象出来的事物本质进行概括性描述,最后形成具有指导意义的理性成果。例如,对于用计算机完成数列求和问题,只要找出规律,用循环结构,就可以解决有解的数列求和这一类问题。把所有感知到的对象依据一定的标准“聚合”起来,显示出它们的共性和本质,能很好的增强学生思维的概括性。

(2)开展算法研讨活动,培养学生思维的灵活性。思维的灵活性决定于高级神经活动过程的灵活性,但这种灵活性不是固定不变的,而是能够通过教育或自我教育的作用,得到发展或发生变化的。通过算法研讨活动,可以从多方面培养思维的灵活性,首先是起点的灵活性,锻炼学生从不同的角度、方向和方法来解决问题;其次,过程的灵活性,从分析到综合,从综合到分析,灵活地进行“综合地分析”。接下来引导学生善于运用规律,做到触类旁通;最后思考是否有多种合理而灵活的答案。在此过程中大家彼此交流,集中众多人的集体智慧,广泛吸收有益意见,一些富有个性的学生聚集在一起,由于各人的起点、观察问题角度不同,研究方式、分析问题的水平的不同,产生种种不同观点和解决问题的办法。通过比较、对照、切磋,这之间就会有意无意地学习到对方思考问题的方法,从而使自己的思维灵活性得到提高。

(3)开展算法竞技活动,培养思维的发散性。发散思维亦称扩散思维、辐射思维,是指在创造和解决问题的思考过程中,从已有的信息出发,尽可能向各个方向扩展,不受已知的或现存的方式、方法、规则和范畴的约束,并且从这种扩散、辐射和求异式的思考中,求得多种不同的解决办法,衍生出各种不同的结果。算法的设计并没有一个标准答案,同一问题往往会有多种不同的算法,例如排序问题,算法多种多样,有选择排序、冒泡排序、堆排序、快速排序等等。通过开展算法竞技活动,在规定时间内针对同一问题设计不同算法,最终评选设计算法最多、最好的同学和大家分享。学生在紧张的氛围中培养自己的思维速度,使其在短时间内表达较多的概念,枚举较多的解决问题方案,探索较多的可能性。从不同的角度灵活考虑问题并创造性的设计出多种算法,可以充分提高学生思维的发散性。

3 结语

计算思维是一种高层次的思考方式,是每个人得以更好学习和发展的基本技能,不仅仅属于计算机科学家。它对所有的领域、职业都是适用的,都能够从中受益。我们应当使每个学生在培养解析能力时不仅掌握阅读、写作和算数,还要学会计算思维。计算思维的培养,离不开日常教学的点滴积累。计算思维的挖掘,对未来计算机科学的发展具有极大的意义。而算法是信息技术学科的核心课程,担负着培养学生计算思维能力的重任,需要信息技术教师花更多的时间与精力去探索与研究。

参考文献:

[1] Jeannette M.Wing.Computational Thinking[J].Communications of the ACM.2006,(03):34-35.

[2]苏小红,车万翔,王甜甜.如何在程序设计课程中培养计算思维能力[J].工业和信息化教育,(6):32-36.

猜你喜欢
灵活性程序设计算法
在小学数学教学中培养学生逻辑思维的措施
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
Is $2 million enough to feel wealthy 有多少钱才算富
Travellng thg World Full—time for Rree
在数学活动中培养幼儿思维的灵活性策略
学习算法的“三种境界”
算法框图的补全