经常有家长问我一个问题,小朋友学C++已经有x个月了,不知道何时参加比赛比较合适?这个因人而异,具体跟小朋友的思维、年龄、学习累计时长有关系。
假如一个高年级的小朋友已经学了半年,每周花10个小时在信奥上面,半年差不多有260个小时,认真学的话应该能学的还不错;假如一个低年级的小朋友已经学了半年,每周花1个小时在信奥上面,半年差不多只有26个小时,他的水平可能只比刚起步强一点点。
不管花几个小时,实力才是检验学习效果的唯一标准。
比赛有好多种,对于新手来说,含金量最高的比赛当然是CSP-J认证。但是,CSP-J比较难,在信奥强省有可能需要两年才有机会晋级复赛。对于新手而言,不用把目标仅仅盯在CSP-J上,可以参加许多其他的比赛,比如各省市区县的教育局、科协、计算机学会举办的地区比赛,或者AtCoder、上海月赛等在线比赛,或者GESP、蓝桥杯之类的等级考试或比赛。
首次参加比赛的时机,取决于小朋友何时能独立做出一道题。
C++的比赛通常有三四题左右,只要能做出一道,往往就不会空手而归。如果能拿到三等奖或二等奖,就会大幅增进小朋友学信奥的信心和兴趣。
假如下面这道题小朋友会做的话,基本上就有机会在比赛中做出一道题。
从不超过100万个数的数列中,查找一个数。
很多在线评测平台(即OJ平台)上都有这道题。比如在洛谷上这道题的编号是B2093(题目链接请见文末参考资料):
这道题,会用到循环、数组、条件判断,如果想得满分还需要对找不到的情景进行判断,对基础知识考察的比较全面。所以我有时候去学校讲课,经常会出这道题给学生做。
参考资料:【1】洛谷B2093https://www.luogu.com.cn/problem/B2093