从1984年中国计算机学会创办NOI(也就是全国青少年计算机程序设计竞赛)以来,通过竞赛活动培养和发现了大批计算机爱好者。各类以算法为主的竞赛也吸引越来越多的青少年投身其中:在国内,有全国青少年信息学奥林匹克联赛(NOIP,该联赛与全国中学生生物学联赛、全国中学生物理竞赛、全国高中数学联赛、全国高中学生化学竞赛并称为国内影响力最大的“五大奥赛”);在国际上,有国际信息学奥林匹克竞赛(IOI)、亚洲与太平洋地区信息学奥林匹克(APIO)、国际大学生程序设计竞赛(ACM/ICPC)等。

各类算法竞赛要求参赛选手不仅具有深厚的计算机算法功底、快速并准确编程的能力以及创造性的思维,而且有团队合作精神和抗压能力,因此编程竞赛在高校、IT公司和其他社会各界中获得越来越多的认同和重视。编程竞赛的优胜者更是Microsoft、Google、百度、Facebook等全球知名IT公司青睐的对象。

那么怎么报考信息学竞赛呢?

暑期来临,我们准备了《编程竞赛宝典》的5天读书学习计划,这本书是信息学竞赛资深教练精心之作,涉及到算法竞赛需要的C 语法知识及简单的算法学习。

— 01 —

为什么要学习算法

算法(Algorithm)一词源于算术(Algorism),具体地说,算法是一个由已知推求未知的运算过程。后来,人们把它推广到一般过程,即把进行某一工作的方法和步骤称为算法。

经常有人说:“我不学算法也照样可以通过编程开发软件。”那么,为什么还要学习算法呢?

首先,一个程序要完成一个任务,其背后大多会涉及算法的实现,算法的优劣直接决定了程序的优劣。因此,算法是程序的“灵魂”。学好了算法,才能够设计出更加优异的软件,以非常有效的方式实现复杂的功能。

其次,算法是对事物本质的数学抽象。真正懂计算机的人既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——这种思维和手段的最佳演绎之一就是“算法”。学习算法更是培养逻辑推理能力的非常好的方法之一。

最后,学习算法本身很有意思、很有趣味。所谓“技术做到极致就是艺术”,当一个人真正沉浸到算法研究中时,他会感受到精妙绝伦的算法的艺术之美,也会为它的惊人的运行速度和构思而深深震撼,并从中体会到一种不可言喻的美感和愉悦。

当然,算法的那份“优雅”与“精巧”虽然吸引人,却也令很多人望而生畏。事实证明,对很多人来说,学习算法是一件非常有难度的事情。

算法竞赛这个领域,能很幸运地找到一个合适的指导老师其实可遇不可求的,大多数人,大多数情况下,都是需要自己去辛苦摸索的。

入门级的算法竞赛宝典《编程竞赛宝典:C 语言和算法入门》全新上市,让读者能循序渐进地掌握C 语言、算法知识,并正确地入门算法竞赛。

本书以Dev-C 为C 语言的开发环境,首先带领读者入门C 语言,然后循序渐进、由浅入深地讲解C 语言和算法知识,并编排了竞赛模拟、阶段检测等内容,使读者能及时评估自己的学习效果。

  • 《编程竞赛宝典:C 语言和算法入门》

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: ” “; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 编程竞赛宝典 C 语言和算法入门 ¥89.9 购买

编程类竞赛活动受各级各类学校重视,受青少年学生欢迎。

本书以Dev-C 为C 语言的开发环境,首先带领读者入门C 语言,然后循序渐进、由浅入深地讲解C 语言的基本结构、数组、函数、指针、结构体、位运算等知识,并编排了竞赛模拟、阶段检测等内容,使读者能及时评估自己的学习效果。

本书作者:

本书作者张新华,毕业于浙江大学和厦门大学。中学高级教师,信息学资深教练。长期从事中小学信息学竞赛辅导工作,无论是在信息学还是在教学上都有着数十年的深厚积淀,获得过2009年普通高中信息技术现场优质课比赛全国一等奖获得者。培养的学生更多次获得全国青少年信息学奥林匹克联赛国家一等奖及亚洲与太平洋地区信息学奥林匹克竞赛奖牌。

开发了三维图形化C 编程工具Dev-C 智能开发平台和Python 可视化界面设计软件Visual Python。

— 02 —

本书的特色

1.知识点全面,入门C 与算法

这本书主要是带领读者入门C 和算法,对于C 语言的基本知识,包括数据类型、输入/输出、基本结构、函数、数组、结构体、指针、位运算与进制、STL编程等都进行了讲解,更将常用、常查找的内容整理了5个附录。

C语言入门

数据类型及运算 字符和字符串 输入/输出 运算规则

基本结构

顺序结构 选择结构 循环结构

数组

函数

指针

结构体

位运算与进制

指针

STL编程

5个附录,查找便捷

ASCII 对照表 关键字 运算符及其优先级 常用函数库 常用函数

2.设计结构合理,快速熟悉竞赛

本书作者进行信息学竞赛的辅导已有十多年时间,收集整理了大量的竞赛资料,并按照初学者易于理解、更学得懂的方式进行了整理。作者也将这些经验积累融合在了本书中,编排了竞赛模拟和两个阶段检测,让读者在初期就能快速熟悉竞赛环境,了解笔试和上机检测。

3.题目经典,讲解细致

书中的所有题目都是经过精挑细选的经典题目,并且根据难易程度和知识体系进行设计和安排。对C 中容易忽略的小知识点都有详尽解释,穿插多个小提示,指出常见误区和错误。

精心录制了252个讲解视频,即使学习者自学也可以比较轻松地掌握书中内容,可以通过反复观看视频掌握书中内容。

4.注重思维训练

本书采用的是循序渐进、由浅入深的教学方法。一开始引入新知识点的题目时,书中会提供该题目的完整参考代码以供读者参考,但随着读者对此知识点的理解逐步加深,后续的同类型题目将逐步向仅提供算法思路、提供伪代码和无任何提示的方式转变。此外,对于一些思维跨度较大的题目,本书会酌情给予读者一定的提示。

本书中部分题目采用了“多向思考”“一题多解”“一题多变”的解决方法,其目的主要有3点:

  • 一是充分调动读者思维的积极性,提高读者综合运用已学知识解答问题的技能;
  • 二是锻炼读者思维的灵活性,促进读者知识和智慧的增长;
  • 三是增加读者思维的深度和广度,引导读者灵活地掌握知识的纵横联系,培养和发挥读者的创造性。

5.超值在线评测系统,丰富的测试数据

作者及其团队还开发维护了在线评测系统(http://www.magicoj.com),在该系统中包含了本书的所有题目和丰富的测试数据,可在这个系统中在线提交代码,获得实时反馈。

Ps:在该网站可下载作者开发的三维图形化C 编程工具Dev-C 智能开发平台和Python 可视化界面设计软件Visual Python。

6.有趣新颖

在书中随机设置了十几个AR视频入口,根据提示可体验视频在图书上播放的效果。

— 03 —

本书适合哪些读者

准备参加或正在学习算法竞赛的读者:从入门知识到竞赛模拟,从例题讲解到动手实战,合理的内容设计,详细的讲解视频,好似一位经验丰富的教练,让C 入门与算法竞赛入门少走弯路。

算法竞赛教练和中小学算法竞赛辅导老师:设计合理、丰富经典的题目,详细的知识讲解和视频解答,可供参考的在线课件,都是教学上的一大助力。

计算机专业学生、算法爱好者:掌握C 语言知识,在一道道题目的实战中掌握算法知识。

— 04 —

信息学领域多位专家力荐

李艺 | 南京师范大学教授

本书是作者沉淀多年宝贵经验的精心之作,知识体系设计合理,有非常好的针对性,结合例题讲解深入浅出,且每一道题都配有讲解视频,大大提高了易用性与有效性,是入门信息学的理想用书。

邱桂香 | 东北育才学校 信息学国际金牌教练

编程类书籍很多,写成“艺术”的不多,致力于多角度培养思维的更少,张老师为此做出的努力值得点赞。一本书写了十年,足见其诚意;在多所学校进行检验,更见其对品质的追求。希望作者的付出能让更多读者受益。

江涛 | 佛山市南海区石门中学 信息学国际金牌教练

这本书风格细腻,对 C 中容易忽略的小知识点都有详尽解释,并恰当地插入编程竞赛的相关内容,很接地气。相信本书对信息学初学者很有帮助。

叶国平 | 安徽师范大学附属中学 信息学国际金牌教练

这本书的部分题目采用多种方法来解决,能调动读者思维的积极性,锻炼读者思维的灵活性,有助于增加读者思维的深度和广度,对信息学学习者的能力有很好的提升。

谢秋锋 | 长沙市长郡中学 信息学国际金牌教练

本书例题新颖,习题丰富,配套完善,比较全面地介绍了与编程竞赛相关的 C 语言知识和简单算法,为初学者了解和参与编程竞赛提供了全面的引导,是学习信息学很好的入门书籍。

江逸君 | 福建省厦门第一中学 信息学国际金牌教练

本书理论与实践紧密结合,适合学生自学,适合老师开拓教学思路。提高独立思考和内化编程算法知识的能力,让你的编程思维真正实现“观察、联想、变换”。

郑立言 | 清华大学研究生 NOI2015 邀请赛金牌得主

本书从基础的语言知识入手,深入浅出地介绍了C 语言和算法在编程竞赛中的应用。本书将丰富的知识以易于理解的方式展现给读者,同时兼顾了针对编程入门者的趣味性。通过阅读本书,读者不仅能掌握编程语言知识,更能领略其中的算法艺术,走进信息学的世界。

最后值得一提的是,这一系列的图书和在线评测系统都在不断丰富中,后续还将推出基础算法、动态规划、数据结构基础、编程与数学的更多精彩内容。

发表回复

后才能评论