开学后正式进入了研究生学习阶段,其实早在6月份就和导师到深圳的实验室去做项目,干了两个半月,对以前学的技术熟悉了一下,对后来的研究生学习挺有帮助。
第一次到南方,很兴奋,和导师带的另一个同学一起去的,做了24个小时的火车,下车后还是导师亲自来接站,感觉荣幸之至。
住在挨着华强北的一个小区内,实验室在南山区的科技园内,每天按上下班的点去实验室,第一次体验了一把上班族的生活。华强北真热闹,以前都在小地方,没怎么见过市面,第一次见六条人行横道的十字路口,隔三差五就去华强北转,晚上吃完晚饭经常去电器城里吹冷风,各种新上市的电子产品也把玩了个遍。唯一感觉不好的就是南方的气候,经常潮湿的不行,蟑螂还很多,个头又大,住了两个月就怀念北方干燥的天气了。
下面主要说说研究生第一学期的学习。
本着求知好学的精神,加上刚上研究生干劲十足,这学期选的课很多,各方面都想学,问了周围的同学,还没见到比我选的课多的。
过了半个学期就开始后悔,课程太多应付不过来,几乎每门课都有大作业,想着如果让我重新选课,肯定不选这么多。尤其到了最后一个月,简直要忙死,好几个课程的大作业都是在截止日期前一天才做完。进入考期后更是紧张,要考试的科目比别人多出四五门,一直愁怎么安排复习时间。最重要的两门,矩阵理论和算法还是在相邻的两天内考,一直担心要是挂科怎么办。那几天又过上了考研期间的生活,每天背着书包去自习室。直到最后一科考完,才发现自己竟然做到了,之前担心的几个科目也都比较有把握。再次验证了人的潜力是逼出来的,如果当初选的课比较少,会过的比较轻松,但学不到的东西,到头来坑的是自己;选的课多了,学习过程会很紧张,但激发的潜力会逼自己完成所有科目,多学了东西,最终受益的还是自己。
这学期一共选了13门课,分别说说感受。
(1)中国特色社会主义理论与实践研究
必修的政治课,由好几位老师讲,每位老师讲一个主题,与以往的政治课最大的不同是从不同的角度看历史政治问题,讲了些一般 政治历史课本上没有的。只是每次上课的时间太长,一上就是一下午,没什么耐心听。最后是开卷考试,买的讲课老师自己编的书,只要把相关内容答上去就有分。
(2)英语
选课前有个英语免修的考试,我没参加,因为我还是挺喜欢英语的,也不怕英语考试,每堂课跟着听一听,比较轻松也能复习复习 英语,顺带学点东西。英语课每周两节,一节外教讲,一节是中国的英语老师讲。外教是苏格兰人,英式发音一开始听着很别扭,后来习惯了感觉还挺有意思。上课一般是讲一些西方文化,分组讨论,最后的考试是几分钟的口语面试,也挺简单。中国的英语老师是剑桥留学回来的博士,水平还是很高的,上课多是讲一些英文写作的技巧,确实对以后写论文有帮助。其实想一想,以后再想找个高水平的英语老师给讲课机会可就不多了,所以这次选英语课一点也不后悔。
(3)矩阵理论
工科的必修课之一,可以从数理统计、矩阵理论、数值分析三门里选一门,听说矩阵论算是其中简单的,就选了矩阵。第一章的内容是接着本科学的线性代数讲的,后面讲一些深入的东西,像矩阵分解、伪逆矩阵、矩阵函数之类的。本身我们实验室就搞图像处理,学一学矩阵对以后还是挺有帮助的。每周有两节课,都是上午第一节,总是起不来。最后考试前也很担心,总怕挂掉,复习资料是看往年的矩阵论考题,针对每个题型复习。在考场上见到考题后才放下心来,题目还是很简单的,都是些固定题型,没有很偏很难的。
(4)经济学思想
跨学科的一门选修课,本身对经济学很感兴趣,就想选这门课。这门课还是很热门的,选课开始的第一天我选的时候已经满员了,第二天早晨看的时候发现有人退了,还剩一个名额,就赶紧退掉其他跨学科选修课,选了这门。前几节课讲的东西都很好理解,到后来有很多经济学里的公式图表,就听不懂了。考试是闭卷,50道2分的选择题,没一点弹性。参考书指定的是曼昆的《经济学原理》,在网上找了这本书的要点总结看了一遍,也没记住多少。考试的时候全靠理解加常识,最后还是过了。
(5)算法设计与分析
计算机专业的重量级必修课,授课老师韩军教授水平很高,澳大利亚邦德大学毕业的,讲课生动有趣,参考书就用的王晓东的《计算机算法设计与分析》。还是按照分治算法、动态规划、分支定界、贪心算法、随机算法、np理论这一套讲下来,也算是又复习了一遍。
不过相比本科学的内容深入了,像分治算法里面又分为分治、减治、变治。动态规划部分讲的也很好,对动态规划的理解又加深了。平时有三次作业,一次算法性能分析题,一次动态规划题,一次分支界限题,
,这几次作业还是很锻炼人的。最后考试还是参照往年试题复习, 考之前也很担心,最后发现题目有80%是重复的。
(6)高等计算机网络
这门课也相当于把本科讲的计算机网络又复习了一遍,还是分层讲,内容上加深了,介绍了一些以前没讲过的协议。老师的讲课方式比较枯燥,一个人就能说两个多小时,没有互动。不过老师给安排的作业还是很锻炼人的。平时有5次针对不同主题的论文阅读,每个人人选三个主题,也就是三篇论文,进行阅读和分析,候选论文都是老师给仔细挑选的英文经典论文,读完后要写分析报告,一篇word,一篇ppt,word上交,ppt在课堂上抽人演讲。通过这几次作业锻炼了英文原版论文的阅读能力,提高了英语水平和专业水平,虽然过程很难熬,不过对自己的提高有很大帮助。还有个分组大作业,可以做网络性能分析、网络参数测量或者网络相关的应用。我们组本来想直接交我本科做的一个局域网抓包分析的程序,结果开题时被毙了,说做这些没有研究意义。后来又临时选题,做的p2p流量识别和分析。
由于是临时选题,开题后一点思路也没有,愁了好几个星期,直到最后截止日期前才做完。这门课是我所选的课中作业最多的,同时对自我提高帮助也很大。
(7)程序语言设计原理
院长讲的一门课,之前还对院长的水平抱有怀疑,总认为干上行政工作后学术水平会有所降低,后来上课后才发现院长水平真的很高。
这门课不是讲具体的语言,而是讲程序语言的设计原则和分类,很高深的东西,还夹杂着很多编译原理相关的内容,到后来基本听不懂了。
通过这门课第一次知道了什么是函数式语言。老师留的作业也很有意思,共三个作业,分别是程序之美、语言之美、形式之美。程序之美是让分析一段1000行左右的程序,指出其中体现了哪些程序语言的设计原则。语言之美是分组作业,老师给定一些少见的编程语言,分组研究其类型系统、束定机制、存储机制、程序控制、编译环境等。给定的语言有objective-c、python、haskell、scheme、clojure、scala、erlang、 ruby、php、html5。我们组选的是scala,本来想选objective-c、python、php这些常用语言,学习一下以后可能用得到,但由于
太热门,名额早就被占光了。scala也不错,兼具函数式和面向对象式语言的特点,分析过程中确实也学到很多东西。形式之美是让写形式化表达,这次作业也被当做最后的考试。
(8)人机交互
这门课主要讲一些设计准则,这些准则告诉我们在设计软件(或其他任何人类使用的物品)时如何才能更好的被人使用。对于以后做界面开发有很大帮助。比如做网站,有的网站我们一看就知道各个功能都在哪里,用起来使人很愉悦;但有的网站给人的感觉却是乱七八糟,想找的功能找不到,不想要的功能堆在眼前,这就是设计的好与不好造成的。其实感觉这门课对我当前阶段来说用处不大,因为现在做的东西基本功能都还实现不了,谈不上美和易用性。并且大家应该都有这样的认识,一些专业性很强的软件,往往界面不怎么美也不怎么易用,但强悍的功能让人们还是对它爱不释手。但这些设计原则对于一些很成熟的通用软件来说,就有很大作用了,比如腾讯qq的客户端,这几年的新版本功能上没有太大改变,都在强调用户的易用性。这门课也是分组作业,我们选了以前做的一个项目,没怎么改就交上去了,老师主要看你演示时能不能将课堂上讲的一些人机交互的原则在你的程序中的体现说出来。
(9)航天型号软件工程
这门课就是讲航天领域里软件工程的一些准则和注意事项,基本上也就是把软件工程的流程再讲一遍。老师讲课挺有激情,还请了航天软件领域的几位专家来给讲解。作业也很简单,就提交一个需求分析文档,也没考试。
(10)遥感图像解译
这是我们导师的一门课,讲遥感图像的处理流程。课时比较短,只有半个学期,很多细节都不明白,作业也就是按照老师给的步骤处理了 几个遥感图像。有人觉得这样的课根本学不到东西,上了等于白上,但我觉得上过这门课和没上是有不同的。如果没上过这门课,对于这个 领域里的东西完全是一抹黑,不了解。上过一遍课,虽然很多东西还是不懂,但起码有个入门,以后在遇到这个领域里的问题时,自己知道如何自学了。
(11)科学计算可视化算法
这门课我觉得选的还是比较值的,算是我计算机图形学的一个入门。主要是讲如何生成各种物体的三维体数据并绘制出来,是图形学的入门课程。老师教的也很好,讲的很细。主要讲了基于面片提取的marching cube算法和直接体绘制的ray casting算法,一些细节和算法实现还是不懂,但算法思想理解了。虽然选这门课的大多是虚拟现实实验室的,也就是专门搞图形学的,但对我来说帮助也很大。本课时没学过图形学,
这是第一次接触计算机图形学,了解了很多图形学的基本知识,为以后的学习奠定了基础。课程的大作业是让生成三维球体的体数据并绘制,完成大作业的过程中第一次接触了opengl,虽然完成的过程中很多是参照网络上已有的程序,但还是自己动手写了一遍。以后如果遇到计算机图形学的东西,也不至于束手无策了。
(12)视频编码技术及其应用
这门课主要讲视频编码领域的基础知识和各种编码标准,由于和计算机视觉有关,学完了觉得还是很有用。有两个作业,分组作业我们做的
是快速运动估计算法的研究分析,大作业做的是hevc算法的分析。学完这门课后看电影有个习惯,总是想帧与帧之间是如何预测的。
(13)机器学习
这是多数计算机学院学生都会选的一门课,现在什么都讲究智能化,机器学习的应用自然少不了。老师讲的比较笼统,只讲算法思想,把多数数学推导都省去了,感觉这样更不利于理解,但课时有限也只能这样了。有个大作业,自己实现了一下感知机算法,也算加深了理解。
感觉研究生阶段最重要的还是自学,课堂上老师教的都只是带你入门,没有本科阶段讲的那么细,通过做大作业过程中的资料查询来学习是主要的提高方法。
在实验室内的工作方面,这学期可以说基本没怎么做,导师也是看到第一学期课程比较多,没有给指派多少任务。但我们实验室一些能力比较强的同学还是跟着导师做了很多东西,真佩服他们,能够在完成所选课程的同时又做很多实验室内的项目。我这学期在实验室内就是帮老师写了几篇文档,翻译了几篇论文,对暑假做的一个项目进行了改进分析。放寒假前导师就给布置了下学期工作的大致安排,还是挺有挑战性的,越
接近开学心里越不踏实,总觉得有很多完不成的任务在等着自己。
其实不应该抱怨实验室任务太重啊什么的,在考上研究生之前这不就是自己梦想的生活吗?以前也发誓考上研后要加倍努力,现在实现了又开始不满足,人都是这样欲求不满。所以还是好好干吧。
另外复试结束后有一段时间闲着没事干,于是开始自学日语,现在基本入门,学到了新标日课本的第9课,由于前段时间考试有一个多月没学了,以后继续按照两星期一节课的速度推进,也不着急。