在很多家长眼里,信息学竞赛就是每天在电脑前练习编程,不断地敲代码。只要编程学好了,就能在信息学竞赛中取得不错的成绩。
但是,信息学竞赛并不只是单纯地学编程!
01信息学竞赛真正学的是什么?
信息学竞赛不仅仅只是考察学生对编程语言语法的了解程度,更重要的是以算法和数据结构为核心,运用数学知识构建合适的模型,然后采用计算机程序设计语言(C++)编写程序来解决实际问题的能力。
也就是说,对于参加信息学竞赛的同学,真正考察的能力是算法设计、编程知识和数学知识,这三者缺一不可。
信息学竞赛注重于考察算法,而算法背后更多的是以数学思维、逻辑思维主导的解题方法。什么是算法?
解决实践问题的思路或步骤,也就是对数据运算(问题)的描述。
数据结构?
描述数据元素的组织形式,也就是数据的逻辑结构和存储结构。
著名的瑞士计算机科学家沃思(NWirth)曾指出:算法+数据结构=程序。由此可见,程序设计的实质是对所提出的问题选择一种好的数据结构,加之设计一个好的算法;而好的算法在很大程度上取决于描述该问题的数据结构。
一般来说,数学好的同学在信息学学习中更占优势,而学习信息学,在一定程度也会提升孩子的数学成绩。
02信息学中含有奥数内容
在信息学竞赛中,通常除了考察基本的数学知识,还会涉及到一些奥数内容。比如,信息学竞赛经常会考奥数里的排列组合、周期问题。而奥数里的二进制部分,也是编程里的重要内容。所以奥数好的孩子,通常在信息学学习中也会游刃有余。
如果孩子数学基础扎实,逻辑思维能力比较强,那么在信息学竞赛中就会很容易找到解题方法,再结合计算机设计语言C++编程,用代码实现解题步骤,就很容易在竞赛中获得好成绩。
如果孩子数学基础不好,那么倘若结合编程的趣味性加以训练,数学思维也会有明显的提升。这也是为什么学习信息学能提高数学成绩的原因。
小年龄段的孩子(小学三年级以下)不建议学习信息学,这部分学生年龄偏小,数学基础薄弱,理解能力不足,很难吸收信息学竞赛内容。可以让孩子先补充数学知识,或者学习图形化编程Scratch等内容,逐步培养创新和逻辑思维能力。
03编程锻炼逻辑思维能力
编程学得好的孩子,在数学方面也有很强的优势。编程中的算法会提高孩子的逻辑思维能力,而逻辑思维能力也是数学测试的考察方向之一。比如,年全国高考二卷文科数学第7题,考察信息学中的循环语句。年高考数学江苏试卷第5题,考察简单的条件判断。
除此之外,编程中还会学习到其他数学知识,比如坐标系,区间,函数等等。很多参加过信息学竞赛的孩子,逻辑思维能力比一般孩子更强,数学成绩也普遍偏高。
总之,信息学和数学相辅相成。两者都对逻辑思维能力、解决问题的能力、创新能力有很大的帮助!