今天为大家介绍的是USACO ——美国计算机奥林匹克学术活动!
USACO 简介
USACO的全称是United States of America Computing Olympiad,即美国计算机奥林匹克学术活动。学术活动主要衡量算法和运用两大方面的技能,旨在锻炼学生用计算机编程解决问题的能力。
相信大部分的同学一定都听说过奥林匹克学术活动,奥林匹克包括数学,物理,化学,生物和信息学。而USACO就是美国的信息学奥林匹克学术活动,对于申请美国大学本科(尤其是计算机专业)的学生有帮助,历届顶尖选手受到牛校钟爱,开设目的是为国际性赛事IOI选拔美国队队员。
为什么要参加USACO?
赛事含金量
USACO学术活动的成绩对申请美国大学是非常有帮助的,如下是国外著名网站Quora上的回答,可以看到,大家对USACO申请美国大学的作用还是给予了非常肯定的回答的。
- 图源网络 -
下图在罗列对申请美国大学有帮助的活动时,第一项就强调了USACO的作用。
- 图源网络 -
最后这张给出了USACO等级对应的数学奥林匹克学术活动等级,很多偏理科的大学都会要求AIME(美国高中数学邀请赛)成绩,但如果你有对应的USACO成绩,大学也是认可的。
- 图源网络 -
目前,USACO在美国非常热衷,但是国内参与的人员还比较少,以2018年公布的数据为例,总共有65个国家3048 名学生参加学术活动,其中来自中国的学生只有280 人。相信随着STEM教育理念,及编程低龄化,普及化的发展,国内USACO 的参加人数和热度会越来越高。
思维训练和能力提升
接受一个编程项目,独立思考相关知识点(数学逻辑、数据结构、算法、计算机体系结构、英语理解等),运用各种能力(计算思维、资料收集、刻意练习)设计并实现,验证正确性,反复迭代修正。
整个流程在普通的学制教育中往往要到硕博士才有训练机会,而参加学术活动的选手从小就在以这种方式训练着思维,对于专注力和独立解决问题的能力提升非常有帮助。
同时,参加高阶信息学学术活动的往往是最优秀的孩子,他们一起交流、学习、讨论和竞争会潜移默化地影响每个孩子的能力、习惯和学习方式。
而且学术活动的打分,不仅仅是解决问题,还要考量解决的时间效率和空间效率。不同解决策略的得分不一样。这种评价方式,培训和锻炼的就是学生的效率意识和全局规划意识。
对学业和工作的帮助
在USACO学术活动中证明自己的问题解决能力和学习能力,会对今后的学业和工作都有很大的帮助。现在很多互联网公司内,特别是偏向于人工智能的技术公司,都在大量吸纳学术活动人才,因为这些人非常善于解决核心问题。人工智能的核心就是算法。
例如搜狗的CEO王小川(IOI 1996年金牌),旷视科技CTO, 人工智能学术界陈启峰(IOI 2007金牌),陈丹琦(IOI 2008金牌),周源(IOI 2005金牌)等,信息学学术活动对于未来想从事计算机相关工作的人有很大的提升作用。
USACO 比赛资讯
1.如何报名参加比赛?
USACO学术活动是免费的,参赛选手不限国籍,考试形式为机考。在www.usaco.org 注册一个免费账户(只需要有邮箱就能注册),注册时不需要选定特定的比赛日期,只要有了这个账户,可以在学术活动开始后随时参与学术活动。
2.如何注册报名及获取考试信息?
- 图源网络 -
注册: 在右栏your account部分,有一个选项为“register for new account”,点击,然后出现下图,填信息,提交就好了。
- 图源网络 -
系统会发password到你的邮箱。然后就可以登录了,登陆后可以修改password。
参赛选手请提前注册,注册通过需要一点时间。学生可以凭借这个账户,随时登录查看考试资讯和获取题库,每年考试期间登陆参加具体月份的考试。
3.USACO什么时候举行比赛?
USACO 一般是每年12 月份开始到次年3月份进行,会选择四个周末举办主要的比赛,从周五到周一,在这个时间段内学生可以选择在任何时间比赛,通常来说每次学术活动的时间为4个小时,但有时候是3个小时或者5个小时。
4.如何准备USACO?
登录官网后可以看到上面有一个训练题库(https://train.usaco.org),可以登陆这个题库并进行注册,这个网站和USACO官网的注册是分开的,需要独立注册,可以这上面进行训练。
同时,登录官网还可以查看历年的学术活动真题(http://usaco.org/index.php?page=contests),可以做一下这些题目,对题目的类型有一个基本的了解。只有对学术活动做好万全的准备,才能拥有十足的信心去应对学术活动的挑战。
USACO难度及等级
青铜参赛资格:一进入USACO注册账号即为铜级。
难度等级:铜级考试只要基本编程常识,会至少一种编程语言。铜级的编程限制时间还是够用的,大部分初次参赛的选手都能在第一次考试中晋级白银级。
白银参赛资格:通过青铜级比赛的选手。
难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
黄金参赛资格:通过白银级比赛的选手。
难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。
白金参赛资格:通过黄金级比赛的选手。
难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个
USACO比赛规则介绍
个人战,USACO每场比赛4-5个小时。可以在比赛规定时间开始后登陆USACO账号,从在线打开试题后开始计时。一套试题中有三道题。选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网会给出用test case检测程序的结果,并根据结果给出这一题的得分。可以使用C++,Java,Python,和C中的任意一种编程。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。
每次比赛,实力强的选手可以连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。开始比赛4小时内,如果拿到了高分(接近满分或满分),系统会提示直接晋级,可以在这三天内继续挑战下一级,只要实力足够,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。
USACO 使用的编程语言
USACO 接受多种语言的解决方案,包括 C++,C,Java 和 Python。由于Java 和 Python 相比于 C++/C语言运行的会慢一些,所以这两种语言所允许的运行时间是 C++ 和 C 的两倍。USACO 提供了更加灵活的支持,使得比较喜欢 Java 和 Python 的人也有机会参与到算法学术活动中。
经过本文的讲解,相信大家对USACO学术活动有初步的了解。总而言之,USACO是不仅仅是一项可以让申请者提高学术背景的比赛,编程本身作为一门使用技能也会让学理工科的学生受益终生!即便是商科文科的同学,编程训练本身带来的思维优势也可以对专业的学习也大有帮助哦~
如果你想在这样的活动里挑战自己,那就不要错过当下的黄金准备时间,翰林助你备战USACO,感兴趣的同学可以联系翰林顾问老师一对一咨询哦~
© 2024. All Rights Reserved. 沪ICP备2023009024号-1