理工科强校麻省理工MIT、CalTech加州理工、CMU卡耐基梅隆大学等,都从哪里招收学生?想要毕业后获得科技大厂、金融投行类的高薪工作?想在大学中感受跨学科专业的魅力?想实现以上梦想,就需要强有力的编程基础。
USACO美国计算机奥赛训练营绝对是每年最强的生源之一!让我们看看之前的决赛选手最后都去了哪些学校:
再往后统计,陆续有大学还没毕业就被Apple、Amazon、SpaceX科技大厂“抢走”的USACO决赛选手大有人在。
为了让大家更好的了解USACO,我们特意请到“前USACO决赛选手”“现各大编程竞赛命题人”——卡耐基梅隆计算机大神Shiva老师,为大家简单介绍USACO。
小科普:USACO美国计算机奥林匹克竞赛是竞技性编程的竞赛,学生需要在3个小时内完成4道题,题目中列出具体问题和输入代码,学生在运行自己编写的程序后,需要得出题目给出的输出内容。例题如下:
此题为2023年USACO二月月赛铜级中的题目,USACO一共有四个级别:
所有的学生都从青铜Bronze开始,通过参加月赛晋级,最终全年排名前4名将代表美国队参加世界信息奥林匹克大赛。
Q&A
本文将以Q&A的模式,从4大方面为大家全面梳理USACO干货!妥妥的USACO万能晋级宝典,快点赞收藏并转发给想要申请理工科名校的同学!
赛前准备
Q1、用哪种编程语言有区别吗?需要提前学习编程基础吗?达到什么水平可以参赛?
不同语言之间有语法区别,运行速度区别是更重要的,JAVA PYTHON比C++要慢几秒,推荐C++。编程基础是必须的,先会编程才能参赛。
Q2、用哪种编程语言授课?只会Python可以参加课程吗?
Shiva老师的课程更多讲解的是解决问题所需的概念和逻辑,不会讲不同编程语言的语法。所以只会Python也可以听的。
如何晋级
Q3、只会一点C++,能从青铜到白银晋级吗?哪里可以找到USACO题目练习呢?
建议在参加USACO之前把编程语言熟练掌握,越熟练越有机会晋级。题源网站有以下推荐:
?Codeforces.com
(Shiva老师是该网站供题者之一)
?atcoder.jp
?oj.uz
?cses.fi
Q4、第一年USACO白银没晋级,第二年还从青铜级别开始吗?怎样突破自己的水平?
不需要,可以直接从白银级别开始。推荐去codeforces.com这样的网站找具有针对性作用的算法题练习,积累一类题目的计算量就会实现突破。
竞赛规划
Q5、USACO大概要学多久?如果目标不是计算机科学专业但很感兴趣,还应该学吗?
当然!如果孩子对比赛感到有兴趣的话一定要试一下!比赛过程会很有意思,会带来不止编程能力、解决问题能力的提升,也更有可能交到志同道合的朋友、获得专业的人脉等等收益终身。
Q6、比赛中题目只有英语吗?要达到什么英语水平?
比赛中有翻译,但是考虑到翻译版本中对于计算机算法术语表达不一定准确,建议参加竞赛的同学找一些英语真题来测试一下。
Q7、如果目标为USACO黄金,数学要什么水平?
在代数、数论和排列组合这三个单元一定要有深厚的基础。AMC竞赛与USACO也相辅相成,Shiva老师本人晋级过5次AIME,2次USAJMO,最后进入了USACO决赛圈。
Q8、Shiva老师达到全球排名第7花了多长时间练习?
从Bronze青铜到Gold黄金用了100-200小时,从Gold黄金到Platinum白金用了200-300小时,从Platinum白金到Camp训练营→TOP7 ,总共用了至少3,000小时。
比赛时间
Q9、USACO什么赛制?每年什么时候举办?
12、1、2、3月赛(4次),每个月赛都有青铜、白银、黄金、白金四个级别的题目,3月会举行决赛公开赛,选出国家训练营选手。
Q10、马上要11年级了,没参加过USACO学习,现在备赛还来得及吗?
现在开始学,在12年级之前从青铜到白银是很有可能的,但是想要晋级黄金以上在这么短的时间内比较困难,除非付出足够多的练习时间。建议结合自己的申请目标设定USACO目标,抓紧时间就从这个暑假开始练习!