• Contact Us Today!

    (925) 218-1816 or (510) 676-0415 | info@shengmengedu.com | 11840 Dublin Blvd, Dublin, CA 94568

  • 揭秘美国计算机奥林匹克竞赛(USACO)

    美国计算机奥林匹克竞赛USA Computing Olympiad (USACO, http//www.usaco.org)是一项面向全世界初中和高中生的个人计算机编程竞赛,来自70多个国家的学生参加这一比赛。USACO主要测试学生抽象思维能力和解决复杂编程问题的能力。数学好的学生参加USACO竞赛有得天独厚的优势,优异的USACO竞赛成绩是著名高中生夏 令营的入场卷和名校的敲门砖。

    USACO每个赛季有四次竞级赛,分别在12、1、2和3-4月份,一次比赛的时间限定为4小时,在指定的竞赛日期范围内(通常是一个周末从星期五至星期一的4天),竞赛选手可以灵活选择比赛开始时间,并在规定的4小时内和在四天截止日期结束前完成比赛并提交答案。选手通常需要完成3道编程题目。学生只需在比赛前在USACO.org 网站上注册一个免费帐号即可参赛。学生在自己家里,在自己的计算机上解题编程。尽管比赛是开卷的,可以翻书和网上搜索基本概念和函数的使用方法,但是禁止作弊,禁止与任何人商量,提交的程序必须是自己独立完成的。学生可以从下列五种计算机编程语言中任选一种参赛:C,C++,Java, Python and Pascal,USACO最流行的语言主要是C++, Java和Python三种语言,C和Pascal很少有人用。提交答案后,USACO的网站会即时改卷,如果没有通过所有的test cases,选手还可以修改程序,重新提交,不会扣分。

    USACO是计算机编程升级赛,有点像钢琴考级或围棋的升段赛。USACO 比赛分Bronze, Silver, Gold和Platinum四级 (four divisions),所有学生都要从Bronze division 开始,逐级向上“爬”。一个学生如果在一次竞赛时通过所有的test cases (得到满分),  他会得到即时晋级到更高的级别(instant promotion),没得满分的,需要等统一改卷后,根据得分排名晋级。十二月份如果不能通过,1月,2月和3-4月还可以再试,不会扣分,也不用交报名费。3-4月进行的公开赛也是美国的冠军赛,大约30名竞赛的优胜者将获得邀请参加在六月份主办的集训营,从中选拔四个学生代表美国参加国际信息学奥林匹克竞赛。

    1)每年大约有多少学生参加USACO竞赛?

    美国数学竞赛 AMC 每年有30 多万学生参加,竞争激烈。而美国计算机奥林匹克竞赛USACO 每年只有两万多学生参加,更容易脱颖而出。USACO不仅让学生学到实用的计算机编程技能,而且提高学生的抽象思维能力和解决问题的能力。参加USACO竞赛的学生最近每年以 30% 快速增长。

  • 2) USACO 是国际比赛吗?

    USACO是美国计算机奥林匹克竞赛的首字母缩写,由美国发起和主办,但是现在有70多个国家的选手参加USACO竞赛。美国的考生占全部参赛选手的50%左右,中国大陆的选手占20%以上,而且增长迅速,其余的选手来自70多个国家。我们华人不仅有与生俱来的数学天赋,也有计算机天赋,参加USACO的中国大陆学生人数在最近2-3年将赶上甚至超过美国的参赛选手人数。参加USACO竞赛的选手大约有60% 以上是美国和世界各地的华人学生。

     

  • 3)USACO四个级别的参赛人数有什么差别吗?

    绝大多数学生参加Bronze级别的竞赛,往上逐级人数至少减半。以2019 年12 月的竞赛为例,Bronze有4442个学生,占62.8%;Silver有1617个学生,占22.9%;Gold 694个学生,占9.8%;Platinum 317个学生,占4.5%。

     

  • 4)哪种编程语言最适合于USACO竞赛?

    USACO允许使用五种编程语言(C, C++, Pascal, Java and Python)中的任意一种语言参赛,但是C和Pascal几乎没有人用,主要的参赛语言有三种:C++,Java and Python。使用C++的学生是Java的两倍,使用Java的学生又是Python的两倍。USACO的比赛成绩取决于:正确答案,程序运行速度和计算机内存的使用。针对一个test case,即使学生得到正确答案,如果程序运行太慢或使用内存太多,学生将不能得分。C++在运行速度和控制内存使用上有得天独厚的优势,是USACO竞赛使用最多的语言,适合于USACO所有四个级别的竞赛。Java最高可以考过Gold,并且Java是美国高中AP计算机课的指定语言,学Java事半功倍。Python最高可以考过Silver,Python简单易学,特别适合于初中生,也是考Bronze的最佳语言。另外,如果学生对data science and AI感兴起,必须先学Python编程。最近两年使用Python参加USACO竞赛的学生大幅度增加。

     

  • 5)在USACO竞赛中可以使用多种语言吗?

    可以。一次USACO竞赛一般有三道题,每道题都可以自选一种语言编程解题。学生完全可以第一题用Python,第二题用Java,第三题用C++。有的题可能用Python更容易解答,而别的题可能必须用C++才能得分,但是同一道题只能用一种语言。

    6)得多少分可以晋级?

    每个级别每次竞赛晋级分数线是不同的。每次竞赛常常有三道题,大约30个判例 (test cases),总分是1000 分,每个判例33 分。Bronze, Silver 和Gold的晋级分数线通常在700-800 分之间,也就是要通过21-24个判例。Platinum晋级的分数线变化很大,就像是不可能的任务。得满分的选手将获得即时晋级,马上可以参加下一个级别的竞赛

  • 7)USACO晋级比例是多少?

    每个级别每次竞赛的晋级比例起伏很大,在5% 到50% 之间变化,一般来说,级别越高,晋级比例越低。Bronze 晋级比例最高, Platinum最低。每年12 月Bronze 的晋级比例最高,在40%以上,这当中的原因也许是学生从4月到12 月勤学苦练了8个月(期间没有竞赛),12月竞赛的选手准备得最充分。相对来说,晋级的分数线比较稳定。

     

  • 8)USACO自动阅卷系统是如何打分的?

    当一个选手提交答案后,自动阅卷系统会用大约十个判例(test cases)作为你的程序的输入数据,运行测试你的程序,反馈信息如下:绿色代表正确答案,红色代表错误答案。红框中的字母含义:X= 错误答案,  T=超时,  !=超用内存或bug,  E=空白输出文件,  M=没有输出文件。最佳结果是所有方框都变成绿色。

     

  • 9)USACO有什么指定教材吗?

    没有USACO指定教材! 网上有很多辅助材料和信息:

    USACO Resources: http://www.usaco.org/index.php?page=resources

    USACO Guide:https://usaco.guide/

    Book: Introduction to USACO,  https://codeforces.com/blog/entry/78841

    Search for Youtube video tutorials and lectures about USACO.

    10)USACO 有什么比赛纪律和规定?

    • 选手必须独立解答竞赛题,禁止组队参赛,禁止与任何人讨论。
    • 禁止提交你以前写的或别人的程序。
    • 禁止向任何人求教。如果有问题,只可以问USACO竞赛负责人。
    • 学生可以从书上或网上借鉴他人的小程序,例如,如何调用一个库函数,如何进行文件的输入输出。要求在注释中标明程序出处。
    • 在竞赛结束前,禁止上传你的答案到网上。

    盛萌教育中心(Shengmeng Education Center)提供USACO训练系列课程,针对六年级以上的学生,无论是否有计算机编程基础,也无论你喜欢Python,Java或C++中的哪种编程语言,盛萌都有相应的课程满足你的要求。除USACO竞赛课程外,盛萌还提供计算机编程启蒙,AP计算机科学,3D 游戏,手机App,数据科学和人工智能方面的课程。盛萌教育中心的USACO老师Mr. James Dowdell毕业于哈佛大学计算机专业,先后在Microsoft, eBay and Google 做软件工程师和经理。 几年前发现自己对计算机教学充满热情,希望把盛萌教育中心变成 USACO竞赛的明星摇篮! 他在读高中时就是计算机编程大赛的高手。他讲课概念清晰, 深入浅出, 生动活泼, 认真负责, 热爱学生,善于激发学生学习计算机的兴趣,深受三谷地区学生和家长的喜爱!

    盛萌教育中心是一家综合文化教育课后补习中心,旨在帮助学生和家长应对当今激烈的竞争环境,使学生在学术和品格上都得到充分的发展,充满自信地面对初中和高中的学业、大学申请和今后的就业。除了为忙碌的双职工家长提供K-5课后班服务外,我们也提供高质量的学术和人文课程和夏令营。盛萌教育衷心服务本地社区十多年,是家长和学生信赖的中小学教育合作伙伴。