前言
我曾是一名成绩普通的学生,但在初中时有幸遇到了一位信息学奥林匹克竞赛教练。她的指导不仅为我指明了方向,还让我逐渐找回自信,掌握了适合自己的学习方法。如今,我希望更多学生能像我一样,接受优质的计算机教育,找到方向、增强信心。同时,我期待有更多教师能成为像我教练那样的引路人—具备扎实的专业知识,为学生提供清晰的学习路径和高效的学习方法。基于这些愿望,我参与创立了执理(天津)教育科技有限公司,并以此为动力带领执理教研中心开发相关产品。
非常荣幸向您介绍这本《CCF GESP C++编程一级二级高分攻略》。在开发教学资源和授课过程中,我们始终在思考一个问题:什么样的教材最适合学生?为此,我们精心设计课件,系统整理知识框架,并精选了一系列典型练习题。然而,我们发现许多学生难以完全掌握课堂讲解的内容。例如,老师用20分钟讲解的知识点,学生可能只理解了前10分钟的内容,后续部分则因些许疑惑而无法跟上。
鉴于此,我们认为有必要编写一本教材,帮助学生预习、学习和复习。为应对信息学奥林匹克竞赛入门难的问题,我们总结了教学经验:首先精简知识点,将20节入门课程浓缩为20张知识卡片;然后通过丰富的实例和大量练习题充实内容,形成教学讲义;最后精选讲解与练习材料,编撰为本书。
本书旨在为初学者提供信息学奥林匹克竞赛的入门指导,涵盖C++基础语法及基本算法概念。每个知识点均配有编程例题、选择题和填空题,并包含编程能力等级认证(grade examination of software programming,GESP)真题及基于教学经验的例题。
此外,GESP为学生每季度提供一次检验学习成果的机会。相比每年仅有一次的信息学奥林匹克竞赛,GESP的考试频率更高,缩短了检测周期,减轻了教学压力,并能更直观地反映教学效果。感谢GESP的支持,我推荐各位学生和教师围绕GESP开展教学活动。
最后,我想谈谈如何准备信息学奥林匹克竞赛,其核心在于“通悟”。信息学奥林匹克竞赛是一门融合数学与编程的竞赛,考查学生扎实的数学能力和高强度下的编码能力。GESP与CSP-J(certified software professional-junior)的知识点难度适中,重点在于考查学生解构问题的能力。具体来说,学生需要做到以下几点。
(1)理解题目的要求。
(2)理解自己编写的代码。
(3)理解算法的目标及其实现方法。
(4)掌握每个技巧的核心要点。
因此,训练的重点可以分为四个方面:数学题的解题能力、复杂代码的编写能力、理解与表达能力,以及灵活运用技巧的能力。针对这四个方面,我们可以通过以下具体方法进行训练。
(1)通过手动计算每一道题目来提升解决问题的计算能力。
(2)编写复杂的代码和高封装度的模拟程序以增强编码能力。
(3)写注释、写总结,清晰地表达每一步的操作,提高表达能力。
(4)积累优秀的题目和解决方案,形成自己的“解题库”。
(5)补充思考题与数学题的解题技巧积累,也就是多做数学题。
我知道这些方法实践起来会有些困难,尤其对于习惯传统学习方式的同学来说。以往的学习可能缺乏主动性,未能积极地推进和解决问题。重要的是,信息学奥林匹克竞赛的学习不仅需要老师的指导,还需要自身的主动探索和解决问题的能力。
悟道需独行,心明见本真。
送大家一段在编著本书时,大语言模型辅助我编写的一句诗词:日复一日磨练意,月随月去积劲深。日日夜夜无怠慢,耐得寂寞见真金。
本书为读者配备了以下资源与服务。
(1)配套软件的安装、使用说明以及代码调试方法。
(2)与本书内容对应的编程练习题及参考答案。
在本书的编写过程中,尽管我们力求完美,但由于时间紧迫,书中可能仍存在疏漏和不足之处。我们诚挚地希望各位尊敬的教师、亲爱的同学以及广大读者在阅读过程中不吝赐教,提出宝贵的意见和建议,以便我们在未来的修订中能够不断完善和提升本书的质量。
