资源与提示
(1)在线判题系统是ACM/ICPC竞赛的题库。它有各种算法、各种难度的题目。在基本的编程练习后,可以自己到网上查找它的复杂题。
对ACM/ICPC题不了解的同学,读这本书可以入门:《程序设计导引及在线实践》 李文新
(2)ACM/ICPC竞赛的作用,重要的有3个:
ACM队员编写了大量有质量的代码,培养了动手能力。差不多每个ACM队员都写了几万行代码,而且这些代码在数据结构和算法上都是有质量的。达到一定的代码量应该是计算机专业学生的基本功。
思维能力。ACM题是针对具体实际问题,抽象出数学模型,然后用程序算法解决。在这样的练习过程中,使学生得到思维的锻炼,能很快找到问题的要点。
主动学习的能力。ACM竞赛涉及的知识和技巧很多,ACM队员的编程知识约有90%以上是通过自学获得的,并且由于竞赛的压力,需要1年到2年的持续努力。这个过程让他们培养了主动学习的能力,能自觉地完成任务。
(3) 大学期间,学生应非常重视自觉学习能力的培养。计算机科学的学习,主要还是靠兴趣,培养自学能力,不要仅仅局限在课堂。大一新生们应该意识到,虽然处于一个高端的知识群体,但是在一个普通大学里,大部分的课程几乎都是缺乏深度的。老师必须为学生的平均水平而降低课程的深度和广度,真正的计算机科学远不止如此。应该从大一开始就养成彻底的自学习惯。
(4) 推荐读书。
《Outliers: the story of success》。网上有电子版。只要看前半本即可。主要是10000小时的准则,这是一个神奇的数字。必须明白,付出的时间和收获并不是一个线性关系,它很可能是一个S形的函数或者甚至是分段函数,不连续的。
《ACM图灵奖》和《IEEE计算机先驱奖》。吴鹤龄,崔林。了解计算机科学的历史。 《魔鬼出没的世界》。卡尔·萨根著。科学方法和科学思维。 《爱因斯坦论文集》第一卷。科学方法。 《万物简史 》、《圆的历史》、《未了的传奇》乔·萨特、《自私的基因》、《社会生物学》爱德华·O·威尔逊。
(5)关于ACM/ICPC队
老队员认为:华东理工大学ACM竞赛队员,代表了本校计算机类本科生的最高水平,毕业后的找的工作是同年级毕业生最好的。有必要给新同学灌输一点精英教育的思想。远不能满足于现状, 即使ACM也只是一个平台, 一个激励措施, 一个形成精英小圈子方式, 当然也有其它的方式, 如数模竞赛、智能车竞赛等等, 甚至跟着老师做项目也能形成精英圈子,只是我认为ACM是最公平,最有挑战性的。一旦进入这样的圈子,同学们交流的可以不仅仅限于ACM,还有各种编程语言、技巧、数学知识,这些都是只能在圈子里交流得通的东西。总之,对于新生,需要向他们传达的最重要的事情就是尽快进入这样的精英圈子。做ACM竞赛题就是一种方式。有必要让他们明确做题的目的不仅仅是提高编程能力,更是他们踏入精英圈子的第一步,是精英教育的起点。
作者:s8达克斯
领取专属 10元无门槛券
私享最新 技术干货