乐人教育昨天收到一个学生妈妈的报喜,我们的一个学生入选美国计算机奥林匹克(USACO)国家队了。今年夏天他将和其他3名选手一起,代表美国队,参加国际计算机奥林匹克比赛。
我昨晚收到消息后,激动了好几个小时。我问他爸爸是不是很兴奋, 他妈妈开玩笑说:“我给他准备了速效救心丸;-)”
这个奖项有多难?有多牛?让我们来分析一下:
USA Computing Olympiad (即USACO, 美国计算机奥林匹克竞赛)初次举办于1992 年,参赛者以高中生为多。开设目的是为每年夏季举办的国际信息学奥林匹克竞赛(IOI)选拔美国队队员。
对喜爱编程和计算机的学生来说,USACO是一件大事。
USACO每年从12月开始。从12月到4月有4场US Open。随后会按照US Open成绩为主,其他三场月赛参考的标准,教练会联系前25名选手参加5月底6月初举办的USACO Camp即国家队选拔训练营。学生进了选拔营就是一件殊荣, 很多高中还会兴奋地发布新闻。
USACO 选拔营有六场比赛,从26名选手中,选出国家队的4名选手,代表美国队参加国际比赛。
US Open每场比赛4个小时。
在比赛规定时间开始后登陆USACO官网账号,从在线打开试题后开始计时。参赛选手就每个问题编写一个程序,读入数据,输出结果。选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网给出用test case检测程序的结果,并根据结果给出这一题的得分。
可以使用C++,Java,Python,Pascal,和C中的任意一种编程语言。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。C, C++, Pascal要求在一秒钟之内完成运行,Java和Python可在2秒内完成运行。每次比赛,实力强的选手可以连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。
开始比赛4小时内,如果拿到了高分(接近满分或满分),系统会提示直接晋级,可以在这三天内继续挑战下一等级,只要实力足够,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。
USACO是一个难得的学习机会。通过赛前的准备,学生可以大大增强利用编程解决问题的能力。USACO又是一个难得的发挥才能的机会。
USACO还提供了非常方便的时间和晋级安排,允许参赛者每年多次参赛,可以在同一层次重复,也可以一年晋级多次。已经取得的级别被予以保存,成为未来参赛的起点。USACO竞赛中所取得的成绩被普遍承认,有助于大学的申请和工作的申请。成绩优异者广受瞩目。
一进入USACO注册账号即为铜级。
只要有基本编程常识,会至少一种编程语言。编程限制时间足够,大部分初次参赛的选手应该都能在第一次考试中晋级白银级。
但是我们也有学生在课外辅导了很久,考了好几次都无法从铜级晋升到白银。辅导老师的反馈是,虽然学生学了好几年计算机编程,但是解决问题的能力不强。而对于USACO, 会编程只是最基础的,关键是考验解决问题的能力。但是这个学生,今年在乐人教育升学辅导下,也录取了加州大学伯克利的CS专业(不是EECS)。
通过铜级比赛的选手。
需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
通过白银级比赛的选手。
需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。
通过黄金级比赛的选手。
需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个。
所有初次参赛者都从铜级竞赛开始,胜出者进入银牌等级。银牌竞赛胜出者进入金牌等级。金牌竞赛胜出者进入白金等级。白金竞赛中有25名学生被邀请在五、六月份参加USACO夏令营集训。经过集训,选出4名学生组成国家队,在七、八月份代表美国参加一年一次的国际信息学奥林匹克(International Olympiad of Informatics,简称IOI)。夏令营仅在美国高中生中选拔。今年我们这个学生就过关斩将,杀出重围,进入了这4名学生的国家队。
前三轮优秀选手可以参加全美公开赛,但是需要美国护照或者绿卡。
每年16-24个选手会被邀请参加训练营,地点通常在Clemson 大学,需要美国护照或者绿卡身份,夏令营是为全球计算机奥林匹克(IOI)做选拔。
需要说明的是,这个学生从初中就发现自己很喜欢计算机编程。除了入门知识之外,大部分都是自学的。并在初中毕业就打过了白金级别,他是有惊人的天分的。这样的学生是非常少的,毕竟,全美国每年才4个。
但是你并不需要有这样的extraordinary talent(天分),才能学计算机。只要喜欢, 都可以学。
绝大部分人,因为付出的努力还不够多,根本没有到要去拼天分的地步。不要过早的给自己下结论,担心“我有没有天分啊?” 你需要努力学习基本知识,保持好奇心和探索精神, 培养解决问题的能力,并在这个过程中,不断衡量自己的天赋才能和人格特征。如果你不清楚,乐人教育也会通过各种测试,帮助你更好的了解自己。
到大学去学习计算机还有很多种不同的路径,参加USACO只是其中一种途径。
事实上,我们去年还有个学生,只在铜级拿了满分,自动晋升了白银级别,但是白银级别他都没有去考,也一样录取了卡内基-梅隆的计算机学院。因为这个学生在其他方面显示了杰出的领导能力、和超出他年龄的成熟度和正直的品格。(CMU 计算机学院的录取率低于5%,竞争太激烈了。)
乐人教育这些年,有很多在大学本科学习计算机专业的学生,申请时的策略和途径也都各不相同,乐人教育将为您一一分析。
*注:乐人教育不辅导USACO竞赛。这个学生也没有在任何机构接受过USACO辅导。