【入门篇2】NOIP开篇(二)
一、学习的顺序
对于零基础编程入门学员,需要解决三个问题:语法、算法、数据结构。其中算法是核心,语法是入门,数据结构是辅助算法更好地实现。对于三者的关系,很显然,先选择一门语言,学习基本语法,能够熟练地写出代码,然后接触基本算法,再接触简单数据结构,体会数据结构给算法实现带来的便利,最后再深入研究比较高级的算法。
二、课前准备
1、一个简单说明
尽管我们最终是用C++进行编程,然而我们并不是从最初的C++开始的,而是从C开始的,因为C更容易上手,也更容易用于教学。同时在实际的使用中,C++又明显比C更加实用和高效,因此我们在后面会再转到C++,具体原因可以查看《入门经典》中前言部分,这里不再累赘。
2、相关教学资源
入门教材 进阶教材·教材 1、入门教材:信息学奥赛一本通 C++版 第四版
2、进阶教材:刘汝佳《算法竞赛入门经典》第2版
·网易云课堂 浙江大学翁恺老师《程序设计入门—C语言》
·NOIP环境安装包(至少包含Dev c++)
·网络测试平台:洛谷OJ、codevs
三、如何学习
1、入门语法学习
·跟随翁恺老师脚步自学
因为该课程是托管在网易云课堂中,所以自学前,需要你注册一个帐号。课程网址是:http://www.icourse163.org/learn/ZJU-199001?tid=417003#/learn/content
·掌握《入门经典》前三章
在自学翁恺老师课程的同时,结合《入门经典》,提升知识的深度,理解教材内容,尤其注意书本提醒注意点,认真完成教材例题和课后习题,确保自己能熟练地掌握全部内容。
·洛谷、codeVS刷题
单纯完成教材的例题和课后习题,并不足以让你有足够的代码量,结合洛谷等OJ平台,充实自己的代码量,尝试解决实际问题。在刷代码之前,需要注册一个github帐号,来管理自己的代码。
2、基本算法和数据结构
·自编教材(参照pascal入门教材)
重点掌握排序、递归、递推、穷举、深搜、广搜、贪心、分治、高精度算法;
重点掌握数组、字符串、二叉树、大小根堆、简单图论等数据结构
·《入门经典》第四章内容
结合教材,加深对基本算法的理解,完成例题和课后习题。
·OJ刷题
同上
3、进阶学习
·转C++
《入门经典》第五章