大家好,我们今年再度邀请了 USACO 美国信息学奥林匹克竞赛负责人、美国国家队总教练 Dr. Brian Dean 和大家在教育论坛见面。本篇为下篇,赶紧来看官方答疑!
Q:USACO 是不是一年比一年难?
A:令人沮丧的是,我认为情况就是这样。有很多人问我这个问题,他们说,铜牌太难了,我们能回调难度吗?我们正在努力扭转这一局面。
挑战在于,我们的许多问题都是由前奥赛冠军设计的。他们可能不能很好地把握 Bronze 级别题目的难度。这是我非常关心的事情,因此,我试图在确保铜牌组不会在题目难度方面走得太远,也为此做出相当大的努力。我想有一种自然的力量确实在推动竞争性编程的难度级别上升,如果你看30年前的 IOI 问题,它们可能相当于今天的 Silver 级别。
所以,难度确实增加了,但这似乎是一种必然的趋势,因为学生们越来越聪明。因此,如果你认为问题变得更具挑战性,这是符合实际的,但我们正在努力不让难度上升得太快。
Q:通常情况下,学生们发现通过 Bronze 和 Silver 考试比较容易,不需要特别多的训练。但一旦他们达到了 Gold 和 Platinum 级别,他们就会发现这是一个非常非常不同的游戏。那么你会建议他们应该采取什么样的行动呢?为什么他们会有这种感觉即 Bronze,Silver 和 Gold,Platinum 之间有条明显的区分线。
A:我认为界限对每个人是不同的。很多学生长期都被困在 Silver 段位,另一些同学长期过不了 Gold Level。每个人的学习方式和碰壁的地方都不一样,他们必须进行大量的练习才能渡过难关。
你可能会认为,有人天生的聪明,他们可以用很少的努力成任何事情。但我在实践中从没见过这种情况。 我不知道有谁在没有大量练习和努力的情况下取得了成功。
我认识的每一个在编程奥赛中取得成功的人,都是在实践中付出了很多努力,我的建议是:训练自己,学习并变得更好。所以没有捷径,没有什么秘密方法能让你在一个月内跳到 Platinum,就是需要努力。
沿途你可能会遇到挑战,会被困在某个地方。你如何摆脱被困的感觉?我觉得这时候也许可以寻求别人的帮助。比如 X-Camp 有老师、助教和同学与你进行交流,也有一些网上论坛和其他在线资源;另外就是做大量的题目,看看你是否可以总结与识别题目的模式和发展趋势,这都有助于你走出被卡壳的地方。 我认为很多学生,当他们在解决一个问题时,他们会困于同一个解题思路走不出来。其实你真正需要的是一个算法工具箱。
当你试图解决一个问题的时候,你可以从中调取很多很多的想法,然后看看哪些行不通。解决问题时失败是正常的,这样能帮你快速识别那些无效的途径。优秀的 problem-solver 需要发展出一种直觉,即什么方向可能更容易成功。如何发展这种直觉?你只能通过解决许多不同的问题来训练。
每个人的学习方式都不一样,但共性是——练习和解决大量问题会让你最终实现目标。 (嗯,没错:想增加大量训练+努力?X-Camp 模考班看过来!USACO| X-Camp23秋季模考班招生啦!)
Q:USACO finalists 是如何被挑选出的?
A:总的来说,我们选择 Platinum 的尖子生进入国家集训队。有时,还有比这更微妙的事情。例如,如果一个学生是高年级学生,那么我们通常只会在他们有很强的潜力可以入选IOI团队成员的情况下才会选择他们。所以高年级学生的门槛可能比其他学生更高。
此外,如果一个学生已经参加过集训营,我们会仔细观察这些学生。如果邀请他们第二次来集训队,我们希望看到他们能有相当多的改进。所以如果一个学生在第二年的竞赛中表现更差,那被选中的概率就更低。所以我想这可能是两种更特殊的情况。但一般来说,通常是选择在 Platinum 组排行榜上名列前茅的同学进入国家集训队。
Q:你如何看待竞争、文化和参与者之间的差异,例如,在亚洲国家,如中国,以及在欧洲国家,如俄罗斯,或者其他美洲国家?
A:这个问题很有趣。我记得在IOI的一个时刻,编程性竞赛这并不是一项观赏性很强的活动,但有时看起来很有趣。就文化而言,确实有一些实质性的文化差异,就像中国队,他们准备得非常充分。他们训练、训练、再训练。他们知道每一个数据结构,知道里里外外每一个算法。我认为我们的训练更多一些注重在跳出框框思考,和如何变得更有创造力。我希望队员们遇到一个陌生未见过的问题,也能为此做好准备。
在我们的训练营里,我们不会花100%的时间只训练算法和数据结构。我们尝试并且仍然欣赏更广泛意义上的计算。我认为这很重要。所以,我认为我们的学生,有一种欣赏大局和欣赏创造力的能力。
欧洲的方法也有点不同,欧洲在解决组合数学和其他领域的数学问题方面有着很强的优秀传统,所以你可以在这些领域看到很多非常优秀的学生。和来自不同地理区域的学生交谈很有趣,因为大家有不同的思维方式。
这是IOI的一个有趣的事情,你可以遇到来自各种不同文化的人,他们以不同的方式思考,真的太棒了!
Q:在选择 finalists 时,评委们会看大量的提交代码吗?他们觉得代码的哪些质量比较重要?
A:我们只会在极少的情况下看代码质量。比如我们有三个空缺,但是有五个学生满足条件。那么我们可能会看看他们的代码,并试图找出他们的代码中是否有我们喜欢的,或者我们不太满意的指标和特征。
也许,我们看了某人的程序,然后感觉到这个人似乎并没有真正理解这个问题;或者一个考生用一个简单算法得到了很多分数,而其他人的代码有一些bug,这都会产生影响。所以我们有时候会通过看代码,判断哪个学生更值得被邀请参加集训营。
一开始,我们看代码的正确性,在需要的时候,我们会看代码的质量。
Q:您建议高中生每周花多少时间练习编程和准备 USACO?
A:我认为这取决于个人,取决于你有多少时间。你投入的时间越多,结果就会越好。但是每个人都有不同的时间投入到不同事情上。我会鼓励你不要只做USACO,并把它作为你的整个生活。成为一个全面发展的人很重要:学习如何解决问题,擅长计算和数学,但也
要擅长阅读、写作、演讲、交流、艺术、音乐和所有其他你想成为一个全面发展的人的事情。
在某种程度上,这也有助于你的创造性思维和解决问题的能力。所以投入你觉得舒服的时间量,就是最适合你的选择。
Q:大学在录取期间对申请者达到的 USACO 的每个 level 都是如何看待的?
A:我的确回答过很多大学招生人员向我提出的问题。问“你能证实某某学生是在 Platinum 级别”或“XX 的确曾经入选过集训队吗?”
我经常和大学招生官们交谈,我知道 USACO 确实有很大的影响。比如,我经常和麻省理工学院的招生人员谈论谁来参加集训营,谁到了 Platinum 级别。他们似乎非常热衷于了解这些数据,所以我认为大学招生人员肯定会密切关注这一点。
在大学招生方面,如果你有 Platinum Level 水平,甚至更好的 US Camp 履历,这通常是一件非常重要的事情。