好久没有更新了。上次更新还是三个月之前。那时的算法课程,昏天黑地地写了三天的代码, BSTAVL TreeSplay Tree,稀里糊涂。

转眼已到春至。回想前面几个月的生活,百感交集。12 月份 1 月份以学习为主。专业课究竟是专业课,颇有力不从心的感觉。好在通过自己努力,成绩还不错,这么一来压力少了很多——我可以顺利毕业了,呵呵。

说说去年的课吧。

计算几何:唯一挂掉的课程。54分。主要是自己太过自信,秋学期考试前几天一直在看图形学,忽略了这门课的复习。我想我平时作业交了,期中考的还成,期末再怎么差也不会太难看。但事与愿违,老外的课不留水分。期末考试我觉得很难。很多人都弃考了,我也没有做出来几道题。考完了就有种不详的预感。最终悲剧的挂了。不过还是有所收获。除了一些入门知识,了解了 LaTeX PGF/TikZt 宏包的使用,还有 GeoGebra 软件。

计算理论:学过的所有课程中最为抽象的一门课程。半年就讲四章,中文书 100 页的内容,第四章图灵机的很多内容到现在还是不太明白,什么 NP、原始递归、判定性等等。DFANDFACFG 等,也是费了好大的力气才理解的差不多。作业占 10%,期中占 20%,期末 70%。算上期中考试,我就上过 3 次课。作业最后补了不少,打算考试时候交给老师,可惜老师没有收。这么算了我作业分 0 分了。最后的几天都在复习,期末感觉还不错。最后总分 80。比较满意了。现在想想这门课应该是蛮优美的一门理论,尤其是又穷自动机和正则语言、下推自动机和上下文无关文法、图灵机和文法之间的对应和转换关系,以及图灵机对很多问题的判定,都是非常抽象非常晦涩但是理解后又会使人感叹的东西。由此可见,本门课程的祖师爷 Alan Turing 先生的伟大之处。他在人们还没有搞懂什么是计算机的时候就发明了这套理论。

操作系统:78。比预期的要低。大概是自己太过自信,没有复习的缘故。14 次小作业完成的都不错,Presentation 满分,期末考的不咋样。客观的说,这门课只能算作科普课程。通过这门课学习,知道了进程、线程、DMA、MMU、死锁、进程同步、CPU 调度、文件系统、 磁盘结果等概念。主要收获还是自己参与的三次 Presentation。第一次写了基于浏览器的操作系统,第二次写了二十页英文的关于进程和线程的论述,第三次是 Linux 系统调用深入研究。

汇编与接口,重点了解了 x86 Intel 汇编,我对接口部分没啥兴趣。大一时买的清华那本 《IBM-PC 汇编语言程序设计》总算派上了用场。最后自己编了一个 200 多行浮点数运算四则运算模拟的汇编程序,深入研究了 IEEE 754 浮点数标准,了解了汇编程序的结构,一些重要的指令和伪指令。最后考试不咋样。没怎么复习,接口部分不熟,总成绩 66。

汇编与接口实验,多数实验是糊弄的……人家前脚做完实验,我后脚开机,开始“做实验”,最后参考别人程序,修修改改,蒙混过关……整个过程极其痛苦……发誓以后打死也不过电路芯片等硬件相关的东西。最后糊弄个 80 分了事。

计算机图形学,科普课程。课上只讲原理,不讲编程,作业却是用 OpenGL 编程,编六个大程序。结果考试却又完全不考 OpenGL,真是无语的一门课程。最后考试题目大体如下:

  1. 扫描线填充和种子填充算法概述,优缺点比较
  2. Phong 模型和 Gouraud 模型概述,比较
  3. 画家算法和 z-buffer 消隐算法概述,比较
  4. 光线跟踪算法和辐射度方法
  5. 如何用深度缓存生成影子

我答的还不错。最大的收获是 OpenGL 编程、OpenGL Pipeline、3D 几何变换,还有一些常用算法。不过说来容易做起来难,本身图形学对数学的要求极高,我这种水平也只能高山仰止,调调 OpenGL 函数糊弄了事。最后的程序搞了 600 多行,很是崩溃。尽管学的比较辛苦,但是成绩只有 72 分。大概是自己没上过几次课点名没到的缘故吧。

数值分析:很难的一门课。当然如果你有好的数学基础和扎实的编程基础,学起来还是蛮又收获的。讲到切比雪夫多项式的时候大家都晕了,只有老师一个人在台上无奈的叹气。实验要求是 8 个大程序,网址在这里,共 30 分。坦白的说,我一个人搞不定。最后的办法是借来了别人的程序,参考课本仔细研读,加上自己创造,终于在 deadline 之前搞定。考试也不简单,最后老师特地延长了时间。总成绩 80。比较满意了。收获是以后遇到此类问题知道去哪里查书了。

高级数据结构和算法:8次课,在 ZJG,去了 3 次。和两位大二的学弟组了队。编了大程序 ——见我前一篇日志。最后 80 左右。收获:没啥收获。这么短的时间,所谓高级算法,就是一个噱头。

逻辑与计算机基础:极其痛苦的一门课。本身对电类课程过敏。而这么课又是讲什么全加器、 选择器、译码器等数字电子电路相关的东西,加上课程在 ZJG,所以我也没怎么上。最后和别人组队,弄个文职,长者自己 LaTeX 略有小成,弄了份精美的文档过去。四次 Quiz 也是糊弄,期末考试也是糊弄,老师照顾,60分。总算过了。

逻辑与计算机基础实验:极其痛苦的一门课。13次实验 + 期末考试,只给一个学分。其实关于 Verilog,大家都不会,也没几个感兴趣的。实验课就是前人栽树后人乘凉,好在我们在下午上课,上课的内容就是找到别人编好的程序,鼠标点点,运行下,最后糊弄下老师,签字走人。收获:看过了 FPGA 开发板,知道了 Xilinx 这个软件 bug 多多,比较恶心。

操作系统实验:就是 Linux 的相关操作。四次实验,依次是 Linux AI,编译内核,系统调用,文件系统改造。收获不小。看了部分《UNIX 环境高级编程》,亲自动手编译了内核—— 以前不敢的。进一步熟悉了 Emacs、LaTeX,还有强大的 Cscope 的初步使用。最后 91 分。

马克思主义原理:没怎么去。只有 60 多分。收获:基本上复习了初中政治的内容,觉得资本主义本质、商品使用价值和价值的分析是最精彩的。课比较恶心,分比较低,老师比较不厚道。

游泳:60分。其实本不该这样。理论考考试系统出问题,一分钟刷出来一道题,做不完。体质测试又出问题,本来由于场地原因,我们这半年就上前面几周的课程,最后老师说我的体质测试成绩没有给他。可是我根本不知道那个时候该到哪里上课。结果 60 分。令人愤慨。

工程训练:暑假上的,科普课程。最令我感到震惊的是学医学的也要学这么课程,和我们这些工科男一起去打铁。最后自己做了个小锤子,送给 momo 了。82 分。收获:开阔了眼界。

Linux 程序设计:77分。作业都是在贵州做的,点名没到,貌似扣了 5 分。收获:进一步熟悉了各种命令。

还有一门弃考的计算机组成实验,今年再修。两门补考没去,分别是计算机组成和线性代数,都是大二挂的课程。大四再说了。这半年课程也不少,开学两周我还没怎么去上过课,惭愧。

今天先写到这里。去吃饭了。昨天搞 Gentoo 到四点多,今天中午才起,午饭还没有吃。肚子饿了。以后把一些重要的资料传上来。^_^