大家讲坛(44):我的IOI生涯

综合报道

  他们辛勤地致力于计算机知识的普及;

  他们敏锐地洞察IT领域的发展方向;

  他们孜孜不倦地探求科技前沿的最新进展;

  他们是科技界的大家,学术界的带头人;

  在“大家讲坛”,你将聆听他们的教诲;

  分享他们对IT产业的观察和思考。

  编者按:本报举办的“软件原创大赛”正在如火如荼地举行,不仅大批编程爱好者踊跃参加,也吸引了不少计算机专家的目光。和软件原创大赛一样,国际信息学奥林匹克竞赛也需要创新的精神。本期“大家讲坛”,本次大赛评委吴文虎教授告诉你中国学生在国际信息学奥林匹克竞赛中脱颖而出的奥秘所在。

吴文虎教授

  很多记者朋友问我,为什么这种学科竞赛要冠以“奥林匹克”字样。我回答说:普通人只会做广播体操,而体育奥赛中,李宁、李小双等体操运动员在鞍马上要做托马斯全旋,这是要经过特殊训练的。智力的竞赛,同样要经过特殊的训练,同样要求“更高、更快、更强”,这是IOI(国际信息学奥林匹克竞赛)与奥林匹克的共同点。

  首届IOI竞赛于1989年5月在保加利亚的布拉维茨举行,当年有13个国家的46名选手参赛。此后每年举办一届,到2003年已举办了15届,参赛国家和地区达到了70多个,参赛选手近300人。

  IOI竞赛属于智力与应用计算机解题能力的比赛。题目有相当的难度,而且有越来越难的趋势。要解决这类题目,需要具备很强的全面素质与综合能力。首先是读题能力,英语和语文好的当然占先;之后是观察和分析问题的能力,一下就能切入主题抓住本质者占先;再就是将实际问题进行抽象并转化为数学模型的能力,这就要求数学功底要强;接着是灵活运用各种算法的能力,有时还得自己针对题目设计新的算法;想好算法之后,要在某种语言环境下,熟练地编写程序,并将它快速无误地调试通过的能力;最后一条是根据题目的要求和对边界条件的估计,自己设计测试数据,检查自己的算法及其实现是否正确,是否完备的能力。

  IOI选手的赛前准备要“以不变应万变”。不变的东西是基础,是素养。

  1984年小平同志提出“计算机普及要从娃娃抓起”后,我被选中去做计算机普及工作,转眼已是20年过去了。

  迄今为止的15届信息学奥赛,中国队届届名列前茅,小选手们给了我信心。

  普及计算机教育光靠课内的教育远远不够。课外活动是学生发展个性与专长、培养创造才能的重要场所。在我当北京市计算机奥林匹克学校校长的时候,我提出办校的指导思想是:重在培养能力,提高素质。我说知识是基础,能力是核心,实践是能力赖以生长的土壤。能够参加信息学活动的学生,大多是各个学校中学有余力的拔尖学生,可以说构成了志趣一致的“智力群体”。

  奥林匹克学科竞赛活动是一种特殊的训练,特殊在学习理念和模式上。训练思维能力旨在开发智力。通过电脑帮助开发人脑是IOI活动的一个特点。

  很多竞赛试题适合于让学生自主进行研究,在研究中学会如何透过现象看清本质,在纷繁的矛盾中抓住主要矛盾,切入主题,运用所学知识对问题进行抽象化、模型化,最后通过编程将问题加以解决。

  在这一过程中,选手们要去钻研很多可能在大学阶段才能学到的知识,比如数据结构、组合数学、人工智能搜索算法、图论与集合论等等。这个学习任务不是老师强加给选手的,而是研究性学习当中他们自己必然会遇到的,兴趣使然,再难他们也愿意去学,而且有的放矢,理论结合实际。研究性学习的最大好处是能使选手有效地提高科学思维能力。我个人认为,科学思维能力的提高是成就事业最重要的一个因素。

  IOI十五年,NOI(全国信息学奥林匹克竞赛)二十年,就我个人教学中的感受而言,算法的确是艺术。艺术与科学本来就是孪生姊妹,算法属于数学文化范畴,数学的美在算法中得到了充分的体现,特别是当今数学已经进入了新的机器时代,利用计算机求解问题,需要人充分开动脑筋,解题过程本身就是一个精益求精追求完美的过程,编程者在付出艰辛之后,会有一种获得成功的愉悦。

  在编程解题中,通过理性思维和理性实践,选手们感受到了思维艺术之美。因此,当我问起参加过NOI和IOI大赛的选手当年拼搏是否感觉很苦时,他们回答:苦中有乐,苦中有甜。这可能就是感受到了这种思维艺术魅力的缘故吧。