数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式
Posted 李阿昀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式相关的知识,希望对你有一定的参考价值。
接下来,在这一讲,我会花一点时间同同学们达成一个共识,就是我们这套系列教程在讲述的时候,究竟是以一种什么方式来讲述的。我希望,经过我的讲解之后,大家能够对我们这套系列教程的课程亮点和授课方式达成如下这样一个统一共识,如此就不枉费我的一片苦心了。
课程亮点
课程深入,非蜻蜓点水
首先,我想告诉大家的一点是,我们这套系列教程一定会讲解得比较深入,不是说蜻蜓点水就完事了,这一点相信大家从我前面给大家介绍我们这套系列教程所要讲述的内容中便可知道。
此外,我相信大家对学习这件事情也是有很高的要求的,故鉴于此,我们这套系列教程就不能随随便便就讲那么一点点了,讲那么一点点,够谁学啊!
课程成体系,非星星点灯
不知道大家学习时有没有这样一个体会,就是不管学什么东西,都得成体系地去学,这样学到的知识掌握得才更牢固。而这里,我就想说,我用心写就的这套讲述数据结构与算法的系列教程就是成体系的,而且全网就独我这一份,说是东半球最系统全面的一套讲述数据结构与算法(Java版)的系列教程一点也不为过!
请把所有的赞美都献给我吧😁!
当然,有一点还得给大家强调一下,就是我们这套系列教程是将数据结构与算法结合起来一道讲的,如此,我们这套系列教程便自然而然要向大家阐述清楚以下问题了。
- 数据结构与算法之间的关系:偷偷给大家说一下,数据结构与算法它俩之间既有区别,同时也存在着联系。
- 线性结构和非线性结构:不用我脱裤子放屁吧,想必大家也都知道了,数据结构是有线性结构和非线性结构之分的。
我希望大家能够高效而又愉快的学习,不仅能够从心底真正感受到数据结构与算法的好玩之处,而且还要能觉得数据结构与算法很有用
在学习数据结构与算法的过程中,我希望大家的学习是高效而又愉快的,如果说大家不仅能够从心底真正感受到数据结构与算法的好玩之处,而且还能觉得数据结构与算法很有用,那么我攥写这套系列教程的良苦用心也就不会白白枉费了。要是大家仅仅只是觉得数据结构与算法很有用,但学起来不好玩或者很枯燥,那么我们这套系列教程也就失去初心了,就不太容易让人掌握了,毕竟大家都知道数据结构这门课在大学里面学起来还是相当有难度的。
总之,正如标题所说,我希望大家能够高效而又愉快的学习,不仅能够从心底真正感受到数据结构与算法的好玩之处,而且还要能觉得数据结构与算法很有用。
数据结构与算法很重要,但它学起来相对困难,所以我会努力地做到通俗易懂
相信大家也都知道,数据结构与算法是非常非常重要的,然而不幸的是对大家来说它学起来相对比较困难,因此要想让大家比较容易地掌握与理解,那我便要让我攥写的这套系列教程努力地做到通俗易懂了。但毕竟数据结构与算法学起来还是具有一定难度的,所以大家在学习之前一定要做好心理准备。
做好心理准备之后,这样大家在学习数据结构与算法的过程中,碰到需要耗费脑细胞去思考的地方就不会心里发怵了!我说这么多,无非就是想提前给大家提个醒,就是在学习数据结构与算法的过程中,肯定是有些地方需要你去努力思考的,然而不幸的是很多人不知道该怎么去思考,或者绞尽脑汁去思考,结果却思考了个寂寞,所以这时就必须要有个人带着大家一块去思考了,没错,这个人正是在下!
总之,到时候我会教大家如何去思考,而且在思考的这个过程中,该debug
时咱们就去debug
,该画图时咱们就去画图,该做分析时咱们就去做分析。
授课方式
在我们这套系列教程中,我采用的是如下这样一个授课方式。
先说一下要讲的数据结构或者算法的应用场景,然后引出该数据结构或者算法,接着剖析原理,紧接着分析实现步骤,当然,在这一步骤中,少不了需要用画图的方式来向大家进行说明,也就是说我会以图文并茂的方式来讲这一步,这样大家理解起来也会容易许多,最后则就是代码实现了。
如果大家按照以上这个舞步来学习数据结构与算法,那么我想你学起来也会顺畅很多,不说一马平川驰骋万里,至少也是平平顺顺的。
给大家说清楚我们这套系列教程采用的一个授课方式之后,接下来大家就来看看我是如何采用这样一个授课方式来讲述八皇后问题和动态规划算法的吧!要不,这里我先给大家说一下在我们这套系列教程里面,我是如何来讲八皇后问题的吧!
首先,我会将八皇后问题提出来,提出来之后会再作一个简单介绍,这样大家一下子就明白原来八皇后问题就是这样一个问题了,在脑海中也就有了对该问题的一个初步印象。
然后,通过该问题引出递归(回溯算法),引出来之后我势必就要对其作一番解释了,如何解释递归(回溯算法)是怎么一回事呢?这里,我就要借助两个小案例,即打印问题和阶乘问题,来帮助大家进行理解了。当然,你要是知道递归(回溯算法)是怎么一回事,那么这里你就略微听一下就行,就权当作是回顾与复习了,可要是你不知道的话,那你就得好好听了,听完你就明白递归(回溯算法)到底是怎么一回事了。总之,大家一定要弄清楚递归(回溯算法)的调用机制,否则你就找不到解决八皇后问题的关键钥匙。
接着,我会对八皇后问题算法思路进行一个分析,说得清楚一点,就是要想解决八皇后问题,第一步、第二步、第三步、第四步、······,你应该怎么去做。值得注意的是,在对八皇后问题算法思路分析的整个过程中,我会根据该问题所具备的特点给大家画一个图,总之,就是尽量以图解的方式来帮助大家理解八皇后问题算法的思路。
既然都分析清楚了八皇后问题算法的思路和实现步骤,那接下来我们便要编写代码来实现八皇后问题算法了。当代码实现完了过后,是不是就没什么事了呢?那肯定不是,因为我还要给大家分析为什么要这样写,如果有些地方需要debug
,那么我就会给大家去debug
,如果有些地方需要追踪一下源代码,那么我就会给大家去追踪一下源代码,总之,就是尽量做到深入透彻,一步到位。
最后,当八皇后问题算法代码实现完毕之后,我还要去给大家玩几把网络上的一款八皇后在线玩的小游戏,其目的就是为了测试算法代码是否正确。就是你写完代码之后,你怎么知道你写的代码是正确的呢?很简单,打开网络上的一款八皇后在线玩的小游戏,去玩几把,你就知道了,当然,符合要求的八皇后摆法一共有92种,每一种摆法都让我试一下,那我肯定搞不定,但我挑其中几种摆法去测试一下还是可以搞得定的,嘻嘻😄!
如果游戏最终能顺利通关,那么说明咱们的算法代码就是正确的,就是没有任何问题的。现在,大家该知道算法的确是可以用到实际案例中的了吧!
讲完八皇后问题是怎么样一个授课方式之后,接下来我便要给大家说一下在我们这套系列教程中,我是如何来讲动态规划算法的了。
首先,我会讲一下动态规划算法的应用场景,即引出背包问题;然后,再给大家介绍一下动态规划算法,当然,在介绍的过程中我肯定会为大家配备图解;介绍完动态规划算法之后,接着我们便要回头解决背包问题了;最后便是测试算法代码是否正确了。
清楚我们这套系列教程以上这样一个授课方式之后,我相信大家学习数据结构与算法起来,难度相对来讲就不会那么大了,大家学习的兴趣也会浓烈许多,至少不会感到枯燥,毕竟兴趣是最好的老师!总之,如果你自己发自内心愿意去学数据结构与算法,那么我可以告诉你问题就已经解决一大半了。
课程目标
我们学东西,是一定要有一个目标的,所以大家学习我们这套系列教程也一定要有个目标,即掌握数据结构与算法的本质,到达能在工作中灵活运用解决实际问题和优化程序的目的。
总之,就是你学完之后一定要觉得有用,不然这不就是浪费你的时间吗?对吧!还有,就是大家学习也学习了一段时间了,但是回头发现却没有什么意义,那我们这套系列教程不终究还是失败的吗?
不管怎么说吧,我衷心希望同学们学完我们这套系列教程之后,的确能够利用数据结构与算法解决在工作中遇到的实际问题,当然,能够对优化程序提出自己的观点那就是再好不过的了。你想想,要是你能在开小会的时候,作为一个组员能够给你的组长或者其他组员提出我们应该在程序的哪个地方做一个优化的观点,那你程序员的价值不就是得到提升了吗,你程序员的价值提升了,自然你的薪水就会慢慢往上涨了。
至此,相信大家现在该明白我呕心沥血写就的这套讲述数据结构与算法的系列教程的宗旨了吧!无非就是尽量让大家在学数据结构与算法时既觉得很好玩也觉得很有用,而且学起来还不算太难,最后以达到能在工作中灵活运用解决实际问题和优化程序的目的!
以上是关于数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式的主要内容,如果未能解决你的问题,请参考以下文章
数据结构与算法(Java版) | 本套系列教程的内容介绍和授课方式
数据结构与算法(Java版) | 本套系列教程的内容介绍和授课方式
数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式