本篇文章的内容,从强化信息学和数学的融合、强化数据结构和算法知识学习、深化原理认知并重视思维发展、一题多解等维度,探讨如何通过信息学竞赛培养学生的计算思维,提升学生核心素养。

目前,越来越多的专家学者认识到计算思维的重要性,计算思维的两大核心特征是抽象建模和自动化。这两大核心特征概括了计算机解决问题过程中的核心步骤。

信息学竞赛的解题过程可以分为四步:分析问题、理解题意;梳理问题、建立数学模型;设计算法、时空复杂度分析;实现程序、调试程序。计算思维体现在以上各个方面,尤其在算法设计上,可以从以下三个方面提升学生计算思维的能力。

一、强化信息学和数学的融合

1.强化数学知识的学习

信息学竞赛解题过程中常用的数学知识主要分布于高等数学、离散数学、概率论。高等数学常用对数函数、指数函数中的知识,如利用对数函数对算法的时间复杂度进行分析。离散数学知识在信息学竞赛中应用更为普遍,主要分布于数论、计数模块,如数论中的素数、丑数、最大公约数、最小公倍数,计数模块主要分布于排列组合、二项式定理、加法原理、减法原理、鸽巢原理等。

2.强化数学方法的学习

数学方法、思想的学习对于信息学竞赛同等重要,数学归纳、递推是信息学竞赛中常用的方法,也是发现问题中隐藏规律的重要方法。如数学中的递推方法是理解递归程序的基础,递推是由已知推向未知的过程,是正向求解问题,递归是借助计算机函数调用的原理,由未知推向已知的过程,是逆向求解问题。

二、强化数据结构和算法知识学习

数据结构与算法是计算机学科的核心内容,是计算机解决问题过程中的必备知识。数据结构主要研究数据的组织、存储的方式,也就是数据运算过程中逻辑主旨结构和物理存储结构。任何一种算法都有对应的数据结构,算法本质上反映了对数据的操作,而数据又是通过某种数据结构进行存储。

例如,二分查找算法是一种效率较高的查找元素的方法,其要求线性表必须采用顺序存储结构,表中元素按关键字有序排列,数组数据结构恰好满足二分查找的所有要求。信息学竞赛常用的数据结构有数组、链表、堆栈、队列、哈希表、堆、树、图表、线段树等,常用算法有排序、查找、分治、贪心、递归、动态规划、深度优先搜索、宽度优先搜索、拓扑排序。学生需要知道每种数据结构和算法的作用、特征,在解决问题的过程中根据实际需要选择合适的数据结构和算法。

三、深化原理认知并重视思维发展

信息学竞赛的知识既与数学有关,又有自己的特征。教师在教学过程中不仅要传授知识,更要注重知识的传递方式。教学过程围绕理解概念、认识原理、证明过程、应用练习、创新应用5个步骤展开,让学生知道每一个算法设计的理论依据,加深学生对经典算法的理解,同时,还要通过学练结合、巩固应用等环节,强化知识。

四、一题多解、多题一解

一题多解就是从不同的视角分析问题,从不同的层次理解问题,进而用不同的知识解决问题,加深学生对知识的理解。一题多解需要学生具有较强的知识整合能力,将已有的知识和方法灵活运用。通过一题多解可以有效培养学生的创造性思维、发散思维。

多题一解就是看似不同的题目可以用同一种方法进行问题求解。信息学竞赛的题目是无限的,方法、思路是有限的。多题一解是对知识总结反思的过程,通过多题一解将问题的类型进行归纳总结。

信息学教学过程中通过“一题多解和多题一解”的教学策略可提升学生学习的效率,拓宽学生的解题思路,培养学生自主探究的学习意识和能力。