最近常听一些家长抱怨,孩子刚入门信息学经常遇到题就做不出来的情况,虽然没有解题思路,但是知识点学的不错,而且看到题解也能理解解题思路。
这是什么情况?
怎么说呢,这是大部分孩子刚才开始学习信息学时都会遇到的情况!
大家都知道信息学比赛比的是编程,它要求两部分能力。
一是实现算法的能力,如何把脑子里的算法转换成代码;
二是设计算法的能力,拿到题目后怎么去设计一个算法来快速解题。
其实,对信竞选手而言,刚开始学习信息学,最重要的不是掌握解题技巧,而是要先能够准确的辨别题目、认识到解法适用的场景……
看似相同的问题,可能会有九九八十一变,准确地辨识问题需要孩子练就一双火眼金睛。
如何才能准确的辨识问题?
准确的辨识问题,其实就是把题目读懂,然后去找解题思路。很多家长觉得读题很简单,其实不然。
题意有偏差就会耽误做题进度,后续的做题思路以及代码错误会耽误大量的时间。
那么,入门的同学如何才能准确辩题并且做出一道题呢?
1、一定要多读几遍题面,明白这道题到底考察的是什么,再去想做题思路。
2、观察题目询问的问题和题目里面体现出来的操作,去得到一个和这个题目直接相关、可以用来解决这个题的过程。
3、把这个过程去转化为代码实现。到了这一步,我们用到的这些语法,包括后面更困难的数据结构,其实形式是很固定的,就是需要把前面这些多种多样的思路转化成真正实现的步骤。
提升思维能力的锻炼
多做一些题之后就会发现,很多题目的考点不在于某个算法本身,而在于思维能力,需要观察并发现题目中的性质来帮助实现算法。
这类题目有很多,刚开始会遇到小学数学里面的应用题或者更难一点的小奥问题,到CSP-J/S阶段可能会考到构造题或者需要我们去猜结论的题目。
遇到这些内容的问题,一般要靠自己去想,去结合之前做过的题,或者找一些样例去寻找灵感,也可以去尝试一些非常通用的设计算法的思路等。
孩子做信奥题的过程要求孩子必须先在脑子里构思并模拟出结果,最后再由实际验证结果是否符合预期。
多想、多练、多总结,有的时候多换个角度考问题未必不是正解。
数学能力的提升
因为不管是入门级别还是提高阶段,很多信奥赛题都会考察到数学知识。尤其是对于刚入门的选手来说,数学能力和编程能力关系很大。
信竞是个算法竞赛,所以首先得知道怎么算,然后得知道怎么实现,最后还要会怎么分析算法的复杂度。这里的第一和第三步,都与数学紧密相关。
数学能力的提升能解决很大一部分同学辨识问题的能力。数学成绩好的同学,学习信息学成绩一定不会太差。
但是也不是说数学就直接决定了高度,反而会因为信息学的学习促进孩子反向去在数学中寻找更好的解题思维!
提升孩子的知识储备
读懂题目最重要的一点,是需要至少学过题目所需要的算法,具备足够的知识储备才去完成题目。
虽然每年的各大比赛能出的题目可能有几十道甚至上百道,但其实在信息学竞赛里能够用到的算法也就那么几种,所以那么多的题目不可能每一道都是全新的算法。
出题人一般要想出一道题,最方便的方法就是找一个以前出现过的模型或一个常见算法,然后去加一些别的元素去进行修改或者推广,甚至也可能会把好几个不同的算法合并成一道题放进赛题中。
所以绝大多数的题,尤其是比赛中简单到中档难度的题,一般情况下只要学过它对应的算法,都是能够通过稍微思考想出来的。
这就是为什么说具有足够的知识储备对做题非常重要。
除了以上几种方法,你下次遇到不会的问题,可以根据下面的问题先问自己一遍,再考虑如何去思考这道题吧~
1、你能读懂题目吗?
2、你能理解给出的输入输出吗?
3、你能想出这道题的解题思路吗?
4、你能尝试写代码实现你的思路吗?
5、是在做题中卡住了吗?
一直致力于4-9年级对计算机编程有浓厚兴趣的同学。通过系统学习能为在c++信息学竞赛获得优异奖项而打好坚实基础。让每个孩子听得懂、学得会,真正做到学有所长,学以致用,信奥赛路上我们携手前行!题库OJ网站