本文所说的C++,指的是C++和后续的数据结构和算法,即信奥。C++用途很广,信奥只是C++的方向之一。因为本文面向的是中小学生,中小学阶段是打基础、提升思维的好时间,多数学C++的中小学生,都是以参加信息学奥赛为目标。
(零)
如果不考虑升学并且时间充裕的话,初中阶段学C++是最合适的。 因为这个时候,小朋友已经打下了一些语数英的底子,思维也比小学阶段好不少,所以初中阶段学比较合适。
但是,初中阶段有个不利的地方,就是学习科目比较多。初一比小学多了历史、地理、政治三门,初二在初一的基础上加了物理和生物,初三在初二的基础上加了化学。不同省份安排的科目时间可能不尽不同,但终归大同小异。这里我还没有算上体育、美术、音乐等科目。这样的话,课余时间就没有那么充足了。
另外,有些家长期待小朋友能通过信奥成绩,为升学提供帮助。有些信奥教练反对家长这种功利的思想,我倒觉得家长功利不功利都不要紧,重要的是小朋友要有兴趣。如果小朋友有兴趣的话,再顺便考虑一下升学,也未尝不可。
因为上面两个原因,可以考虑让小朋友在四或五年级开始学信奥。当然六年级也可以,但是如果是六年级开始学信奥的话,可能不容易实现“有助于升学”这一目标。
不是所有的小朋友都可以在**四或五年级**
的时候开始学信奥,四五年级的小朋友因为年龄小,知识储备不如初中生,通常学起来会慢一些,所以四五年级的小朋友要学信奥,校内语数英得比较好,尤其是数学基础要扎实。
四年级以下的学生,原则上不推荐学信奥。 但是如果符合“对编程很感兴趣、数学基础好、愿意学高年级的数学内容、专注、勤勉”这些条件,那么低于四年级的学生也是可以学的。
(壹)
小学生学信奥,会面临知识储备不足从而学的慢的问题。不仅仅是数学储备不够,语文英语也同样储备不够。只不过数学跟信奥的关系更密切一些。
那么,要不要提前或超前学习呢?
这里我不赞同把学生学习高于他所在年级的知识当作是“提前学习”或“超前学习”。我认为,如果六年级的学生有能力学高一的内容,那么他学高一的内容就不算“提前”或“超前”。反过来,如果一位高一的学生初中基础没打好,那么他学高一的知识就是“提前”或“超前”学习,他更应该先把初中基础打好,否则会越学越不明白越学越不感兴趣从而陷入恶性循环。
如果一个小学生在小学阶段开始学信奥,那么他可以在能力范围内学高年级的数学,注意只要是能学的懂,那么无论他学的是初中的数学内容还是高中的数学内容,都是与其能力匹配的。高年级数学内容具体要学到什么程度,有一种建议可供参考:小学学完初中数学内容,初中学完高中数学内容。
语文和英语倒不一定学高年级的内容,但是可以通过多学习一些词汇、多阅读的方法来提升水平。
其他的科目,比如物理、化学、生物等,都不需要在小学阶段“提前”学习。
应该优先深度学习,而非广度学习。 深度学习难,广度学习易。
应该把提升思维放在第一位,知识点进度放在第二位。 思维是通用的,思维提升后,学其他科目就会顺利很多、快很多。