荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: selahx (宿醉未散,早梦半醒), 信区: ACMICPC
标  题: 胡侃学习理论计算机 zZ
发信站: 荔园晨风BBS站 (2005年04月23日12:33:50 星期六), 站内信件

(1)
我也来冒充一回高手,谈谈学习计算机的一点个人体会。
由于我是做理论的,所以先着重谈谈理论。
记得当年大一,刚上南京大学本科的时候,每周六课时数学分析,
六课时高等代数,天天作业不断(那时是六日工作制)。
颇有些同学惊呼走错了门:咱们这到底念的是什么系?
不错,你没走错门,这就是(当时的)南大计算机系。系
里的传统是培养做学术研究,尤其是理论研究的人。而
计算机的理论研究,说到底了就是数学,虽然也许是
正统数学家眼里非主流的数学。
(2)
数学分析这个东东,咱们学计算机的人对它有很复杂
的感情。爱它在于它是第一门,也是学分最多的一门
数学课,又长期为考研课程--94以前可以选考数学分析
与高等代数,以后则并轨到著名的所谓“工科数学一”。
其重要性可见一斑。恨它则在于它好象难得有用到的
机会,而且思维跟咱们平常做的这些离散/有限的工作
截然不同。当年出现的怪现象是:计算机系学生的高中
数学基础在全校数一数二(希望没有冒犯其它系的同学),
教学课时数也仅次于数学系,但学完之后的效果却几
乎是倒数第一。其中原因何在,发人深思。
我个人的浅见是:计算机类的学生,对数学的要求固然
跟数学系不同,跟物理类差别则更大。通常非数学专业
的所谓“高等数学”,无非是把数学分析中较困难的理论
部分删去,强调套用公式计算而已。而对计算机系来说,
数学分析里用处最大的恰恰是被删去的理论部分。说得
难听一点,对计算机系学生而言,追求算来算去的所谓
“工科数学一”已经彻底地走进了魔道。记上一堆曲面积分
的公式,难道就能算懂了数学分析?
中文的数学分析书,一般都认为以北大张筑生老师的
“数学分析新讲”为最好。我个人认为南大数学系的“数学
分析教程”也还不错,至少属于典型的南大风格,咱们
看着亲切。随便学通哪一本都行。万一你的数学实在
太好,这两本书都吃不饱,那就去看菲赫金哥尔茨的
“微积分学教程”好了--但我认为没什么必要,毕竟你
不想转到数学系去。
吉米多维奇的“数学分析习题集”也基本上是计算型的
东东。如果你打算去考那个什么“工科数学一”,可以
做一做。否则,不做也罢。
(3)
中国的所谓高等代数,就等于线性代数加上一点多项式
理论。我以为这有好的一面,因为可以让学生较早感觉
到代数是一种结构,而非一堆矩阵翻来覆去。当年我们
用林成森,盛松柏两位老师编的“高等代数”,感觉相当
舒服,我直到现在还保留着教材。此书相当全面地包含
了关于多项式和线性代数的基本初等结果,同时还提供
了一些有用的比较深的内容,如Sturm序列,Shermon
-Morrison公式,广义逆矩阵等等。可以说,作为本科
生如能吃透此书,就可以算高手。后来它得以在南大出
版社出版,可惜好象并轨以后就没有再用了。
国内较好的高等代数教材还有清华计算机系用的那本,
清华出版社出版,书店里多多,一看就知道。特点嘛,
跟南大那本差不太多。
但以上两本书也不能说完美无缺。从抽象代数的观点
来看,高等代数里的结果不过是代数系统性质的一些
例子而已。莫宗坚先生的“代数学”里,对此进行了深刻
的讨论。然而莫先生的书实在深得很,作为本科生恐
怕难以接受,不妨等到自己以后成熟了一些再读。
(4)
概率论与数理统计这门课很重要,可惜少了些东西。
少了的东西是随机过程。到毕业还没有听说过Markov
过程,此乃计算机系学生的耻辱。没有随机过程,
你怎么分析网络和分布式系统?怎么设计随机化算法
和协议?据说清华计算机系开有“随机数学”,早就是
必修课。人家可是工科学校,作为自以为“理科计算机
系”出身的人,我感到惭愧。
另外,离散概率对计算机系学生来说有特殊的重要性。
现在,美国已经有些学校开设了单纯的“离散概率论”
课程,干脆把连续概率删去,把离散概率讲深些。我们
不一定要这么做,但应该更加强调离散概率是没有疑
问的。
(5)
计算方法是最后一门由数学系给我们开的课。一般学生对
这门课的重视程度有限,以为没什么用。其实,做图形
图像可离不开它。而且,在很多科学工程中的应用计算,
都以数值的为主。
这门课有两个极端的讲法:一个是古典的“数值分析”,
完全讲数学原理和算法;另一个是现在日趋流行的“科学
与工程计算”,干脆教学生用软件包编程。南大数学系
的几位老师做了件大好事,把前者的一本极为经典的
教材翻译出版了:德国Stoer的“数值分析引论”。如果
你能学会此书中最浅显的三分之一,就算没有白上过
计算方法这门课!而后一种讲法似乎国内还没有跟上
潮流?不过,只要你有机会在自己的电脑上装个matlab
之类,完全可以无师自通。
(6)
本系里,通常开一门离散数学,包括集合论,图论,
和抽象代数,另外再单开一门数理逻辑。这样安排,
主要由于南大的逻辑传统:系里很多老师都算莫先生
的门人,就连孙先生都是逻辑专业出身(见孙先生自
述)。
不过,这么多内容挤在离散数学一门课里,是否
时间太紧了点?另外,计算机系学生不懂组合和
数论,也是巨大的缺陷。要做理论,不懂组合或
者数论吃亏可就太大了。
从理想的状态来看,最好分开六门课:集合,
逻辑,图论,组合,代数,数论。这个当然不现实,
因为没那么多课时。也许将来可以开三门课:集合
与逻辑,图论与组合,代数与数论。
不管课怎么开,学生总一样要学。下面分别谈
谈上面的三组内容。
(7)
古典集合论,北师大出过一本“基础集合论”不错。
南大出版朱梧(木贾)老师的“集合论导引”也许观点更
高些,但他的书形式化得太厉害,念起来吃力。
数理逻辑,莫先生的书自然是经典。然而我们也
不得不承认,此书年代久远,光读它恐怕不够。
尤其是命题/谓词演算本身有好多种不同的讲法,
多看几家能大大开阔自己的视野。例如陆钟万老师
的“面向计算机科学的数理逻辑”就不错。朱老师也
著有“数理逻辑教程”一书,但也同样读起来费力些。
总的来说,学集合/逻辑起手不难,但越往后越感觉
深不可测。建议有兴趣的同学读读朱老师的“数学
基础引论”--此书有点时间简史的风格,讲到精彩处,
所谓“天花乱坠,妙雨缤纷”,令人目不暇接。读完
以后,你对这些数学/哲学中最根本的问题有了个大概
了解,也知道了山有多高,海有多深。
学完以上各书之后,如果你还有精力兴趣进一步
深究,那么可以试一下GTM系列中的"Introduction
to Axiomatic Set Theory"和"A Course of Mathematical
Logic"。这两本都有世界图书的引进版。你如果
能搞定这两本,可以说在逻辑方面真正入了门,
也就不用再浪费时间听我瞎侃了。:)
(8)
据说全中国最多只有三十个人懂图论(当年上课时陈道蓄
老师转引张克民老师的话)。此言不虚。图论这东东,
技巧性太强,几乎每题都有一个独特的方法,让人头痛。
不过这也正是它魅力所在:只要你有创造性,它就能
给你成就感。所以学图论没什么好说的,做题吧。
国内的图论书中,王树禾老师的“图论及其算法”非常
成功。一方面,其内容在国内教材里算非常全面的。
另一方面,其对算法的强调非常适合计算机系(本来
就是科大计算机系教材)。有了这本书为主,再参考
几本翻译的,如Bondy&Murty的“图论及其应用”,
邮电出版社翻译的“图论和电路网络”等等,就马马
虎虎,对本科生足够了。
再进一步,世界图书引进有GTM系列的"Modern
Graph Theory"。此书确实经典!国内好象还有一
家出版了个翻译版。不过,学到这个层次,还是
读原版好。搞定这本书,也标志着图论入了门,呵呵。
组合感觉没有太适合的国产书。还是读Graham和Knuth
等人合著的经典“具体数学”吧,有翻译版,西电出的。
(9)
抽象代数,国内经典为莫宗坚先生的“代数学”。此书
是北大数学系教材,深得好评。然而对本科生来说,
此书未免太深。可以先学习一些其它的教材,然后
再回头来看“代数学”。国际上的经典可就多了,GTM
系列里就有一大堆。推荐一本谈不上经典,但却最简
单的,最容易学的:
http://www.math.miami.edu/~ec/book/
这本“Introduction to Linear and Abstract Algebra"
非常通俗易懂,而且把抽象代数和线性代数结合起来,
对初学者来说非常理想。不过请注意版权问题,不要
违反法律噢。
数论方面,国内有经典而且以困难著称的”初等数论“
(潘氏兄弟著,北大版)。再追溯一点,还有更加经典
(可以算世界级)并且更加困难的”数论导引“(华罗庚先生
的名著,科学版,九章书店重印)。把基础的几章搞
定一个大概,对本科生来讲足够了。但这只是初等数
论。本科毕业后要学计算数论,你必须看英文的书,
如Bach的"Introduction to Algorithmic Number Theory"。
(10)
理论计算机的根本,在于算法。现在系里给本科生
开设算法设计与分析,确实非常正确。环顾西方世界,
大约没有一个三流以上计算机系不把算法作为必修的。
算法教材目前公认以Corman等著的"Introduction to
Algorithms"为最优。对入门而言,这一本已经足够,
不需要再参考其它书。南大曾翻译出版此书,中文名
为”现代计算机常用数据结构与算法“。pie好象提供了
网上课程的link,我也就不用废话。
(11)
最后说说形式语言与自动机。我们用过北邮的教材,
应该说写的还清楚。但是,有一点要强调:形式语言
和自动机的作用主要在作为计算模型,而不是用来
做编译。事实上,编译前端已经是死领域,没有任何
open problem。如果为了这个,我们完全没必要去学
形式语言--用用yacc什么的就完了。北邮的那本,在深
度上,在跟可计算性的联系上都有较大的局限,现代
感也不足。所以建议有兴趣的同学去读英文书......不过
英文书中好的也不多,而且国内似乎没引进这方面的
教材。
入门以后,把形式语言与自动机中定义的模型,和
数理逻辑中用递归函数定义的模型比较一番,可以
说非常有趣。现在才知道,什么叫”宫室之美,百官
之富“!


--


※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.64.1]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 210.39.3.80]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店