算法分析与设计课程总结

 如果说C语言,程序设计实践,数据结构我都没有取得满意成绩的话,那算法这门课我总算打了一个翻身仗。


从大二开始,我对编程的那种厌恶感逐渐散去,通过OJ获得快乐成了我当时极其看重的一件事。当时也许是为了刷题,遇到很多不会的就去请教ACM竞赛队的那些同学,例如老蒋,小白熊还有李皓大牛。通过长时间的练习,对一些常见的算法也有了了解,例如贪心,动态规划,回溯等经典算法。依然记得大二那时去机房,正好大一的同学是程序设计实践上机,许昌达是助教,我在刷OJ上面的水题,不懂也问问他,那时每周五下午反倒成了一个很快乐的时光。记得最清楚的那次是我过了一道题,然后许昌达过来看了一眼说这题应该可以再快点,我按照他的想法改了一下程序逻辑,时间立刻变成了本题最少的,在排行榜上排在了第一位。为什么要先说这段经历,我想正是由于自己这半年的改变才为我接下来的算法分析这门课做了铺垫。


很早就久仰林永钢老师的大名,参加过亚信杯比赛的同学没有人没听过他的,这是一个专门搞ACM的老师,对算法的研究自然不在话下,当然同时也要提下刘庆晖老师,而且正好我大三也选了他的《组合数学》这门课。本来算法这门课是安排张春霞老师讲的,可是张老师临时出国进修,于是还是交给了林老师,幸好没有教给张老师,否则可能就会上演离散数学那一出杯具了。


第一次课我就坐在教室左侧第二排靠过道的那个位置,以后一直都保持在那个位置,全班与老师直线距离最近的可能就是我那个位置了,不过奇怪的是一直没有人和我抢这个位置,可能每个人都认为那是我的专座了。


由于位置比较好所以经常被点名,第一次上课就被点名回答了两个问题,好在我上课都是认真听着,而且林老师讲课确实很不错,所以回答的还算满意。上过好几次课后,老师就开始认识我了,不过他不知道我名字,还是指指我让我回答。有次做了一道动态规划题,好像是算什么完成一项认为需要的最短时间,我算出来是90,不少人算的和我不一样都比我要大,后来老师让我解释一番,我说了自己的算法思路,老师说我是正确的,后来他就给我起了一个外号叫90,点名时就说90来回答下。


课间休息的时候我还问过他好几次问题,例如组合数学中关于集合的问题,林老师听过后还详细记了一下说以后上离散数学的时候给学生补充点组合数学中的知识。还有一次,北航OJ上面一道题目窗口超级版我一直不过,询问了老师,老师说回去想想,第二天在网络教室上面给我发了站内信,告诉我网上有人写了算法,是用线段树做的。我看了一下依然不是很懂,但不好意思再去麻烦老师就求助于ACM竞赛队的老范,老范没有给我讲算法直接帮我编程序过了,后来林老师问我那道题过没过,我说用网上的算法过了,其实我一行代码都没有编。又过了若干次课,他总算知道我名字了,不过那时离考试只有一两周了。


算法这门课最重要的还是通过实践来掌握知识,所以网络教室上面依然有题目。老师很照顾我们,觉得我们大三课多,只出了16道题,一周出两道题。每次题目下来我都想着尽快把题做完,第一次就是下午五点出题,我九点就把题目全部AC了,我知道自己不能再像大一时那样拖延了,遇到不会的只是去和同学讨论而没有参考别人的代码。有时12点断电了,我还拿着笔记本坐在过道里编程,还有多次去澡堂里接电源编程。题目只开放一周,但对于我来说前三天就够了。唯一的一次是最后一次作业中的IP攻击,我一直不知道自己错在哪里,保密用例也看不了,只好在下周课间问老师,老师很够意思,开了一个保密用例,我当天晚上就把那题过了。


由于上课认真听讲,而且常常被提问,编程也很努力,对这门课也很有兴趣,所以上这课对我是一种享受,无论之前多困一上课就精神特别好,就像初三时的数学课一样。很多同学都抱怨这课听不懂,其实是因为他们没有兴趣去听而已,一些算法其实很简单,完全不应该答不上来,最重要的是态度,就是这个道理。


平时成绩占50分,期末考试占50分,但是如果期末考试没有取得30分也算挂科,这就是这门课奇怪的地方。按林老师的话说,如果期末卷面分拿不到60%怎么能算过呢?考试前安排讲前两年的试卷,他直接把这任务交给了我和王涛,为此我专门做了一个PPT,对每道题都进行了认真的解答,然后才上台去讲,那是我在这门课上最觉得荣耀的时刻。讲完后林老师说还要给我总成绩额外加五分,不知道最终他加没加。


考试那天我中午没睡好,上午考完组合数学下午就考算法,在考试前还和小马看了一道算法题,结果正好考到了。考试时觉得自己的努力没有白费,除了一道题有点小问题外其他肯定都没有问题,那感觉就像当年考实验班提前招生数学考试那么爽,简直要兴奋过度。


没过几天林老师居然给我发短信告诉我考的不错,他先改了他觉得几个比较好的同学的试卷,所以我提前放心了。最终成绩出来,我终于让自己满意了。

 

很多同学都羡慕我和林老师的这种情谊,甚至有同学说林老师就像我干爹一样。确实这门课上他给了我很多帮助,尤其是点名,被点名回答问题绝对是一种荣幸,至于让我上台演讲,那更是值得骄傲的事情。不过更多的应该是自己对这门课的兴趣,如果没有大二这一年的积累,我对这门课没有兴趣怎么可能学好呢?遇到一个讲着自己喜欢课的好老师,这觉得是不可多得的一种运气。


后来在学校里还见过几次林老师,每次我们都是简单交谈几句而已。五月初去中教找他,他对我开玩笑的说怎么把算法分析这门课的代码都贴到了网上,我说当时准备亚信杯,就把算法课上的题目拿出来回顾了下,写了点解题思路,也贴了代码。他并没有怪我,告诉我他去看过我的博客,觉得我对算法还是挺有兴趣的,说了一番对我鼓励的话。现在想想,我贴代码的举动逼着老师出新题目,不知道这算不算一件坏事。


一提到算法,我就会想起林老师,以及大三上学期那段愉快轻松的经历。

你可能感兴趣的:(破晓印记)