前言1致同学们的一封信
同学们,能读到这段文字,让我们有缘相遇,我感到万分荣幸。
老师发自内心地羡慕你们,你们生活在人工智能快速发展的时代,可以接触到计算机,可以翻开这类书,基于兴趣的阅读与学习,这是老师当年的求学生涯中无法享受到的待遇。
学习信息学奥赛,需要有基础吗?同学们别担心,万丈高楼平地起,老师已经在第1章为大家列出了所需的准备工作,让大家可以零基础入门。
学习信息学,C++语言基础的学习比各类算法的学习更为重要,如果在语言基础不熟练的基础上学习编程,无异于在地基不牢的建筑上构建摩天大楼,迟早一天会轰然倒下。因此,老师会在这本书中,尽量讲得详尽,希望同学们能够真正理解并掌握C++语言的基本知识。
同学们,无论男生或女生都可以学习编程,不要用世俗的眼光看待,觉得男生更适合学习编程,这是错误的观念。在美国硅谷最新的调查报告中,女性程序员的占比已经超过50 %,从这个数据可以看出,在编程学习方面,男女生是没有差别的。
每逢看到有同学在学习信息学的道路上,遇到问题,或者遇到本该能解决的难点与痛点,就此而放弃,老师都觉得很心痛; 同学们可能会觉得自己的能力不足,甚至是智商不够,或者因为听到一些并不符合客观规律的言论而放弃,这令人感到痛心。这也是编写这本书的初衷,我想是为了让大部分同学能够顺畅地进入编程的世界。
希望同学们能够在本书的字里行间感受到老师的诚意。老师知道在学习编程时,你们会遇到各种痛点、难点和劝退点,因为老师曾经也像你们一样,会遇到各种状况,但老师总是会在解决相关问题后感觉到充实与满足。在本书中,老师尽量逐一注释与讲解,真心希望对编程感兴趣的同学们能够有所收获,勇攀高峰。如果你学习了一段时间,依然选择暂时放弃,请相信,这不是你的问题,而是老师没有引导好。请相信自己,如果你感到退缩,那很正常,即使无法坚持下去,也可以在一段时间后再重新拾起,老师相信你们都是最棒的。
只要你感兴趣,只要你想尝试,这扇大门永远为你敞开。不要因为自己的学习成绩平平而退缩,或许在这方面,你其实是个天才。这条路注定是孤独而精彩的,它不是人多拥挤的大路,但具有独特的风景,能带你去你想看的远方。同学们,学习信息学需要付出努力、毅力与汗水,请相信,没有谁能随随便便成功,学习编程的路需要坚忍不拔的品格。在写这本书的时候,老师也曾多次想要放弃,有时因为遇到困难的知识点不知如何去表达,有时又担心安排的例题是否合理,等等,老师有无数个理由去放弃,甚至在梦里都在想某道题目或某个难点阐述的思路。但是老师依然选择坚持,因为老师和你们一样,都是出于热爱。正因为如此,老师想要分享自己的学习心得,让同学们更容易进入编程的世界,希望这本书能够在你编程的学习过程中,成为你最好的陪伴。
前言2致家长们的一封信
作为一位女儿的父亲,我深知选择适合孩子的兴趣课是一项非常重要的事项。虽然我女儿现在还未到学龄,但作为父亲,今后一定会考虑各种因素,如学习时间、学习周期以及能够促进哪些个人素养的成长等,如果有人问我是否会让我的孩子学习编程,我想我一定会,只要她对此感兴趣,我将全力支持她的学习。
作为一名家长,我希望能够在我的能力范围内,给孩子一个较为清晰的学习计划,避免走弯路,当然,也并没有捷径可以走。但是家长可以提供良好的引导和支持,帮助孩子成功地实现自己的理想目标。由于不同地区的师资水平和教学氛围的差异,课程体系也不尽相同,因此制订一个适合孩子的学习计划和发展框架尤为重要。
ChatGPT来了,它是写代码的高手,接触过信息学奥赛的孩子能够轻松地阅读ChatGPT写的程序,这类人工智能在未来会成为强大的辅助工具,但是我们不能过于依赖它,而忽略了人类自身的能力和思考方式。人类进步的核心永远是设计与驾驭工具的人,就像有了计算器,依然要学习计算一样,这是基本的底层逻辑,是无可替代的。
许多家长会担心是否只有那些能力超群的孩子才能学习 C++编程。实际上,在学习语法基础的阶段,并不存在能力的差异,这是一门和计算机沟通的语言,是不断熟悉一门新语言的过程,所以只存在掌握语言熟练度的差异。因此,在这个阶段,只要孩子有一定量的练习,并及时巩固都是没有问题的。
为了让孩子更好地掌握信息学,家长应该允许孩子使用计算机,并引导他们正确地使用计算机,让他们意识到计算机的价值和潜力。在信息学的世界中,大部分时间都需要借助计算机进行上机实践。
学习信息学的初衷是为了学习编码的底层逻辑,学习一门技能,培养孩子的信息素养,而不仅仅是为了参加竞赛升学。当然参加竞赛获取荣誉是很现实的目标,高考也将会涉及编程的内容,这是一个趋势,家长可以提前为孩子做好准备。但这不应该是唯一的目的,是要为孩子未来的职业发展打下坚实的基础,对于立志参加信息学竞赛的孩子,学习信息学是一项极具挑战而充实的旅程,家长应该给予他们无条件的支持和鼓励。
家长不必担心自己不会编程而不能辅导孩子,本质上家长也没有义务去辅导孩子,学习应该是孩子自己的事情,我们家长能做的是给予孩子信心、支持和鼓励。最重要的是,要陪伴孩子一起学习,让他们感到自己不是孤独的,而是有家人一直在支持和关心着他们。在这个知识快速迭代的时代,编程已经成为一门必修课程,不仅是计算机学科专业学生的必修课,也是其他专业学生的必修课。根据本人截至目前对所辅导学生的不完全统计,编程能力优秀的同学,绝大部分的家长并没有编程的基础,但是他们都会无条件地支持孩子的兴趣爱好。
家长的陪伴和支持是孩子学习编程最重要的动力,不能把编程视为一种负担和压力,而要让孩子在自主、愉快、积极的环境下学习编程,探索编程的魅力和乐趣,同时,也要给予孩子充足的试错时间,让他们有机会自己探索与发现编程的奥秘。相信在家长的陪伴下,孩子一定会在编程学习的道路上越走越远。
本书特色
1. 本书配备了专业的在线评测OJ平台,从顺序结构的章节开始,每道例题都可以进行在线评测,平台还会不定期举办在线PK赛,组织互动探讨活动,帮助同学们更好地掌握编程技能。
2. 本书原创了大量高质量的具有代表性的例题,并注重一题多解,每个案例代码的注释都尽可能详尽,解决同学们的痛点,帮助深入理解编程思路,尽量避免偏题与难题,注重培养同学们的编程基本功与知识迁移的能力。
3. 配套详细注释的源代码,代码格式规范,严格按照Google代码规范,与世界接轨,培养学生书写代码的良好习惯,具有广泛的适用性。
4. 配套近千页的精美课件,旨在为广大读者提供一份丰富而全面的学习资料,教师与学生可以轻松运用课件开展教学与研讨活动,提升学习体验。
读者对象
本书适合于有意向参加各类白名单赛事,尤其是参加C++信息学相关比赛的同学,以及对算法竞赛感兴趣的读者,还可以作为面向各类等级考试或认证的学生用书,适用领域如下:
竞 赛 名 称具 体 项 目
全国中学生信息学奥林匹克竞赛NOI、NOIP
全国青少年人工智能创新挑战赛编程创作与信息学专项赛
全国中小学信息技术创新与实践大赛(NOC)编程赛道——软件创意编程
全国青少年信息素养大赛智能算法挑战赛
全国青少年科技教育成果展示大赛AI算法挑战赛
蓝桥杯全国软件和信息技术专业人才大赛蓝桥杯青少组C++
等级考试或认证的项目主 办 单 位
CCF CSP非专业级别的软件能力认证中国计算机学会
GESP中国计算机学会编程能力等级认证中国计算机学会
全国青少年软件编程等级考试中国电子学会
蓝桥杯青少年信息技术等级考试蓝桥杯大赛组委会
PAAT全国青少年编程能力等级考试全国高等学校计算机教育研究会
全国青少年编程能力等级测试(NCT)中国软件行业协会
青少年编程能力等级测评(CPA)中国青少年宫协会
关于勘误
尽管作者花了很多时间和精力去校对书中的文字、代码与图片等,但由于篇幅和写作时间的限制,书中难免有疏漏之处,恳请阅读本书的教师、同学、读者给与批评指正,以便再版时改进。
致谢
感谢我的家人,你们是我前行的动力,没有你们的支持与鼓励,这本书是不可能面世的。无论是在书写的清晨还是深夜,你们在整个写作过程中给予的理解,都让我感到无比幸运。特别要感谢顾赟杰女士,你的陪伴与坚守一直温暖着我。
感谢清华大学出版社的赵凯编辑及其他工作人员,赵编辑工作认真负责,对本书的编写给予了专业的指导与帮助,正是在她的帮助与鼓励下,本书才能变得更加完善并顺利出版。
翁文强
2024年4月于南京
电 子 资 源
全套教学课件PPT(共11章)下载
编程打字专项训练字库下载
DevC++编程软件下载
金山打字通软件下载
