学计算机这么久,你参加过程序设计竞赛吗?

 

《CS 209: 程序设计竞赛入门》上线啦!...

语文有作文大赛,数学有奥数竞赛,美术也有绘画比赛,体育相关的比赛更是五花八门。你知道学习计算机能参加什么比赛吗?

比写代码速度?代码风格?代码长度?

当然不是啦!

常见的计算机类竞赛有程序设计竞赛、黑客马拉松等等。比如每年盛夏,计蒜客都会举办的“计蒜之道程序设计大赛”。
计蒜之道 2016 程序设计大赛


可能很多小伙伴已经猜到了,今天小蒜要给大家科普的就是“程序设计竞赛”!究竟什么是程序设计竞赛?参加程序设计竞赛需要掌握哪些知识?参加程序设计竞赛的好处有哪些?
中国大学生程序设计竞赛  合肥站


什么是程序设计竞赛

程序设计竞赛是指考察程序设计能力的竞赛,分为解题竞赛、创意竞赛、性能竞赛等。程序设计竞赛的主要代表是 ACM-ICPC(ACM 国际大学生程序设计竞赛),ACM 程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。

这项竞赛的历史可以上溯到 1970 年,当时在美国德克萨斯 A&M 大学举办了首届比赛。作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的积极响应。1977 年,在 ACM 计算机科学会议期间举办了首次总决赛,并演变成为目前的一年一届的多国参与的国际性比赛。

参加程序设计竞赛需要掌握哪些知识?

语言是最重要的基本功 

无论侧重于什么方面,只要是通过计算机程序去最终实现的竞赛,语言都是大家要过的第一道关。绝大多数比赛都会支持 C 、C++、Java 等主流语言。语言方面,对于经常用到的部分,必须十分熟练,不能有半点不清楚的地方。

小蒜推荐大家可以学习计蒜客的《CS 112: C++ 程序设计》

以数学为主的基础知识十分重要

虽然被定性为程序设计竞赛,但是参赛选手所遇到的问题更多的是没有解决问题的思路,而不是有了思路却死活不能实现,这就是平时积累的基础知识不够。

离散数学——作为计算机学科的基础,离散数学是竞赛中涉及最多的数学分支,其重中之重又在于图论和组合数学,尤其是图论。

小蒜推荐大家可以学习计蒜客的《CS 161: 离散结构》

数据结构与算法是真正的核心

既然是程序设计大赛,那么数据结构和算法就不能差了。掌握队列、堆栈和图的基本表达与操作是必需的,除此之外,排序和查找并不需要对所有方式都能很熟练的掌握,但你必须保证自己对于各种情况都有一个在时间复杂度上满足最低要求的解决方案。算法中最基本和常用的是搜索,主要是回溯和分支限界法的使用。

小蒜推荐大家可以学习计蒜客的《CS 261: 数据结构》

参加程序设计竞赛的好处都有啥?

能力提升

首先参加竞赛一定会提高自身的能力。对数据结构和算法有更深刻和全面的应用,程序设计竞赛中要把它们都用上并用对,而做工程也很难有机会去做这么全面的算法训练。

成就感与工作

既然是比赛,自然会带来很多成就感,去 OJ A 题目就像玩游戏、打怪升级刷榜。参加程序设计竞赛是对实力的证明,对找工作也有很大的帮助,现在很多公司招聘时都非常注重算法的运用。

如何入门程序设计竞赛?

参加程序设计竞赛却不知从何入手?不用担心,有小蒜来帮你!

在计蒜客中《CS 209: 程序设计竞赛入门》已经上线!这门课程的内容适合对竞赛有一定兴趣的同学学习,主要针对已经学习过 C++ 程序设计、离散结构(或离散数学)、数据结构等基础性课程的同学。

通过这门课程的学习,你将能够理解并掌握程序设计竞赛中用到的诸如线段树、贪心、动态规划、组合数学、数论、计算几何、图论、串匹配、后缀数组等数据结构和算法,且能够运用它们解决解题竞赛中常见类型的题目,从而具备参与到各类解题竞赛中的能力。

更重要的是!在本课程的学习过程中将会有数位 ACM 金牌获得者为大家提供问答平台 24 小时答疑服务和在线视频答疑服务。(教学团队承诺,问答平台中对于任何问题最慢 24 小时内给予回应)
本课教师团队


点击阅读原文 了解课程

↓↓↓


    关注 计蒜客


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册