徐明宽:蝉联CCSP冠军激发了我的科研兴趣
CCF CSP认证自2014年开展以来,已7载有余,这期间有400多所单位的学生和人员参加了CSP认证,累计参加人数逾14万人次,成立了156所高校认证点,受到越来越多的高校、企业以及大学生的关注。
今年,我们将陆续推出一批高校CSP/CCSP优秀学子的故事,他们当中有的继续深造读研,有的就职名企,有的获得过CCSP金奖,有的CSP成绩优异,希望这些分享文章,能够帮助更多的同学提升软件编程能力,取得更大的进步。本期推出的徐明宽同学就读于清华大学。清华大学作为CCF CSP认证点高校,是CSP合作高校成员,是CSP认证卓越单位,被评为2020年度CSP成绩优秀奖。
徐明宽:清华大学交叉信息研究院计算机科学实验班2017级学生,指导老师:胡伟栋(中学)、韩文弢。第5、13、20、21次CSP认证满分,2018年、2019年CCF CCSP竞赛全国冠军,2020年CCF CCSP竞赛全国金奖。
CSP助我高中增信心
我是从初中开始学习算法与编程的。自从第一次接触编程以来,我就对它充满了浓厚的兴趣。到了初三、由于精力有限不得不在几门竞赛中做出抉择时,我发现自己对信息学的热爱甚至胜过了从小学开始就很喜欢的数学,并立下了想考清华大学计算机系的目标。
第一次与CSP结识是在我高二刚开学不久。那时我刚在7月NOI的战场上失利,经过了两个月的训练,教练胡伟栋老师告诉我们有个机会可以和大学生们切磋一下。于是,我参加了2015年9月的第五次CSP认证,并获得了满分500分。这个成绩无疑让当时的我信心倍增。
之后,我开始了高强度的训练,高二结束时如愿以偿被保送清华。高三一年,我继续冲刺IOI(国际信息学奥林匹克竞赛),最终选择进入清华姚班学习。
CCSP助我定科研方向
进入大学,我最初参加CCF CCSP竞赛是因为了解到竞赛第一名有2万元奖金。不过,当我参加了CCSP竞赛后,我有了不一样的体会和更深的感受。
2018年我第一次参加CCSP,由于课内学业的压力,我只花了一天时间准备,主要学习了一下NOI系列赛事中没有涉及到的多线程相关知识,并把没看完的资料存到了U盘里。尽管之前参加过许多竞赛,但CCSP的赛制仍令我耳目一新,比如12个小时的马拉松式竞赛,有的题目提供大量资料供现场学习,有的题目按照程序的各项性能指标打分。我还现场学习了多线程与内存分配的相关知识,这让我在一年后学习《计算机组成与系统结构》这门课的相关内容时轻车熟路。由于优化是无止境的,我很享受这个不断优化的过程,因此我几乎用满了12个小时的比赛时间。最终我荣获了此次竞赛的金奖冠军。
2019年我第二次参加CCSP。这次不仅帮我“预习”了《操作系统》课程中的调度器相关知识,蝉联冠军的佳绩也让我认识到了自己的计算机系统综合能力,促使我开始了一段编译器领域的科研经历,并最终决定在相关领域继续深造。
几点建议
对于在中学时已经有一些OI(信息学奥林匹克竞赛)经验的学弟学妹们,我建议一定要来尝试一下CCSP竞赛。虽然大学很可能课业繁重,但不做准备、只靠着NOI系列赛事的经验来参加CCSP竞赛可以很好地锻炼自己在短时间内快速学习的能力。
对于大学才开始接触算法与编程的学弟学妹们,要想在CSP/CCSP中取得好成绩则需要日积月累的努力。就我自己的体会而言,CSP认证的题目质量较高,而且难度比较稳定,适合大家刷题、做模拟赛,来检验自己的算法与编程能力;而CCSP竞赛由于题目较难,难免会出现一些掌握特定知识的选手有优势的题,因此在往年题目中获得高分也不意味着能在下一次竞赛中取得好成绩。我认为备战CCSP可以分为三个方面:前两道算法题需要系统性地锻炼算法思维,可以通过CSP认证或在各大OJ上刷题来锻炼;系统实现题需要严密的编程能力,可以在各大OJ(Online Judge系统)上刷代码长度很长但算法要求不高的模拟题;系统优化题可以通过在系统类课程的各种大作业中思考如何优化来准备。
关于CSP和CCSP
CSP注重考查计算机算法、编程等基础能力,正逐步成为业内评测软件能力的基本标准。在CSP的基础上,CCF于2016年创立了面向大学生的年度竞赛CCSP(大学生计算机系统与程序设计竞赛),至今已成功举办5次,参加CCSP的选手均为CSP成绩优秀者,CCSP更注重考查计算机系统能力,选拔的是顶尖人才。