【精品】計算機牛人心得.doc_第1頁
【精品】計算機牛人心得.doc_第2頁
【精品】計算機牛人心得.doc_第3頁
【精品】計算機牛人心得.doc_第4頁
【精品】計算機牛人心得.doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

【精品】計算機牛人心得 轉(zhuǎn)一位計算機牛人的心得,談計算機和數(shù)學(xué),很實用計算機科學(xué)與技術(shù)反思錄計算機科學(xué)與技術(shù)這一門科學(xué)深深的吸引著我們這些同學(xué)們,上計算機系已經(jīng)有近三年了,自己也做了一些思考,我一直認(rèn)為計算機科學(xué)與技術(shù)這門專業(yè),在本科階段是不可能切分成計算機科學(xué)和計算機技術(shù)的,因為計算機科學(xué)需要相當(dāng)多的實踐,而實踐需要技術(shù);每一個人(包括非計算機專業(yè)),掌握簡單的計算機技術(shù)都很容易(包括程序設(shè)計),但計算機專業(yè)的優(yōu)勢就在于,我們掌握許多其他專業(yè)并不“深究”的東西,例如,算法,體系結(jié)構(gòu),等等。 非計算機專業(yè)的人可以很容易地做一個芯片,寫一段程序,但他們做不出計算機專業(yè)能夠做出來的大型系統(tǒng)。 今天我想專門談一談計算機科學(xué),并將重點放在計算理論上。 計算機理論的一個核心問題從數(shù)學(xué)談起記得當(dāng)年大一入學(xué),每周六課時高等數(shù)學(xué),天天作業(yè)不斷(那時是六日工作制)。 頗有些同學(xué)驚呼走錯了門:咱們這到底念的是什么系?不錯,你沒走錯門,這就是計算機科學(xué)與技術(shù)系。 我國計算機科學(xué)系里的傳統(tǒng)是培養(yǎng)做學(xué)術(shù)研究,尤其是理論研究的人(方向不見得有問題,但是做得不是那么盡如人意)。 而計算機的理論研究,說到底了,如網(wǎng)絡(luò)安全,圖形圖像學(xué),視頻音頻處理,哪個方向都與數(shù)學(xué)有著很大的關(guān)系,雖然也許是正統(tǒng)數(shù)學(xué)家眼里非主流的數(shù)學(xué)。 這里我還想闡明我的一個觀點我們都知道,數(shù)學(xué)是從實際生活當(dāng)中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在于想用抽象出來的理論去更好的指導(dǎo)實踐,有些數(shù)學(xué)研究工作者喜歡用一些現(xiàn)存的理論知識去推導(dǎo)若干條推論,殊不知其一問題考慮不全很可能是個錯誤的推論,其二他的推論在現(xiàn)實生活中找不到原型,不能指導(dǎo)實踐。 嚴(yán)格的說,我并不是一個理想主義者,政治課上學(xué)的理論聯(lián)系實際一直是指導(dǎo)我學(xué)習(xí)科學(xué)文化知識的航標(biāo)(至少我認(rèn)為搞計算機科學(xué)與技術(shù)的應(yīng)當(dāng)本著這個方向)。 其實我們計算機系學(xué)數(shù)學(xué)光學(xué)高等數(shù)學(xué)是不夠的(典型的工科院校一般都開的是高等數(shù)學(xué)),我們應(yīng)該像數(shù)學(xué)系一樣學(xué)一下數(shù)學(xué)分析(清華計算機系開的好像就是數(shù)學(xué)分析),數(shù)學(xué)分析這門科學(xué),咱們學(xué)計算機的人對它有很復(fù)雜的感情。 在于它是偏向于證明型的數(shù)學(xué)課程,這對我們培養(yǎng)良好的分析能力極有幫助。 我的軟件工程學(xué)導(dǎo)師北工大數(shù)理學(xué)院的王儀華先生就曾經(jīng)教導(dǎo)過我們,數(shù)學(xué)系的學(xué)生到軟件企業(yè)中大多作軟件設(shè)計與分析工作,而計算機系的學(xué)生做程序員的居多,原因就在于數(shù)學(xué)系的學(xué)生分析推理能力,從所受訓(xùn)練的角度上要遠(yuǎn)遠(yuǎn)在我們之上。 當(dāng)年出現(xiàn)的怪現(xiàn)象是計算機系學(xué)生的高中數(shù)學(xué)基礎(chǔ)在全校數(shù)一數(shù)二(希望沒有冒犯其它系的同學(xué)),教學(xué)課時數(shù)也僅次于數(shù)學(xué)系,但學(xué)完之后的效果卻不盡如人意。 難道都是學(xué)生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發(fā)人深思。 我個人的淺見是計算機系的學(xué)生,對數(shù)學(xué)的要求固然跟數(shù)學(xué)系不同,跟物理類差別則更大。 通常非數(shù)學(xué)專業(yè)的所謂“高等數(shù)學(xué)”,無非是把數(shù)學(xué)分析中較困難的理論部分刪去,強調(diào)套用公式計算而已。 而對計算機系來說,數(shù)學(xué)分析里用處最大的恰恰是被刪去的理論部分。 說得難聽一點,對計算機系學(xué)生而言,追求算來算去的所謂“工程數(shù)學(xué)”已經(jīng)徹底地走進了誤區(qū)。 記上一堆曲面積分的公式,難道就能算懂了數(shù)學(xué)?那倒不如現(xiàn)用現(xiàn)查,何必費事記呢?再不然直接用Mathematics或是Matalab好了。 我在系里最愛做的事情就是給學(xué)弟學(xué)妹們推薦參考書。 中文的數(shù)學(xué)分析書,一般都認(rèn)為以北大張筑生老師的“數(shù)學(xué)分析新講”為最好。 萬一你的數(shù)學(xué)實在太好,那就去看菲赫金哥爾茨的“微積分學(xué)教程”好了-但我認(rèn)為沒什么必要,畢竟你不想轉(zhuǎn)到數(shù)學(xué)系去。 吉米多維奇的“數(shù)學(xué)分析習(xí)題集”也基本上是計算型的東東。 書的名氣很大,倒不見得適合我們,還是那句話,重要的是數(shù)學(xué)思想的建立,生活在信息社會里我們求的是高效,計算這玩意還是留給計算機吧。 不過現(xiàn)在多用的似乎是復(fù)旦大學(xué)的數(shù)學(xué)分析也是很好的教材。 中國的所謂高等代數(shù),就等于線性代數(shù)加上一點多項式理論。 我以為這有好的一面,因為可以讓學(xué)生較早感覺到代數(shù)是一種結(jié)構(gòu),而非一堆矩陣翻來覆去。 這里不得不提南京大學(xué)林成森,盛松柏兩位老師編的“高等代數(shù)”,感覺相當(dāng)舒服。 此書相當(dāng)全面地包含了關(guān)于多項式和線性代數(shù)的基本初等結(jié)果,同時還提供了一些有用的又比較深刻的內(nèi)容,如Sturm序列,Shermon-Morrison公式,廣義逆矩陣等等。 可以說,作為本科生如能吃透此書,就可以算高手。 國內(nèi)較好的高等代數(shù)教材還有清華計算機系用的那本,清華出版社出版,書店里多多,一看就知道。 從抽象代數(shù)的觀點來看,高等代數(shù)里的結(jié)果不過是代數(shù)系統(tǒng)性質(zhì)的一些例子而已。 莫宗堅先生的代數(shù)學(xué)里,對此進行了深刻的討論。 然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以后成熟了一些再讀。 正如上面所論述的,計算機系的學(xué)生學(xué)習(xí)高等數(shù)學(xué)知其然更要知其所以然。 你學(xué)習(xí)的目的應(yīng)該是將抽象的理論再應(yīng)用于實踐,不但要掌握題目的解題方法,更要掌握解題思想,對于定理的學(xué)習(xí)不是簡單的應(yīng)用,而是掌握證明過程即掌握定理的由來,訓(xùn)練自己的推理能力。 只有這樣才達到了學(xué)習(xí)這門科學(xué)的目的,同時也縮小了我們與數(shù)學(xué)系的同學(xué)之間思維上的差距。 概率論與數(shù)理統(tǒng)計這門課很重要,可惜大多數(shù)院校講授這門課都會少些東西。 少了的東西現(xiàn)在看至少有隨機過程。 到畢業(yè)還沒有聽說過Markov過程,此乃計算機系學(xué)生的恥辱。 沒有隨機過程,你怎么分析網(wǎng)絡(luò)和分布式系統(tǒng)?怎么設(shè)計隨機化算法和協(xié)議?據(jù)說清華計算機系開有“隨機數(shù)學(xué)”,早就是必修課。 另外,離散概率論對計算機系學(xué)生來說有特殊的重要性。 而我們國家工程數(shù)學(xué)講的都是連續(xù)概率。 現(xiàn)在,美國已經(jīng)有些學(xué)校開設(shè)了單純的“離散概率論”課程,干脆把連續(xù)概率刪去,把離散概率講深些。 我們不一定要這么做,但應(yīng)該更加強調(diào)離散概率是沒有疑問的。 這個工作我看還是盡早的做為好。 計算方法學(xué)(有些學(xué)校也稱為數(shù)學(xué)分析學(xué))是最后一門由數(shù)理學(xué)院給我們開的課。 一般學(xué)生對這門課的重視程度有限,以為沒什么用。 不就是照套公式嘛!其實,做圖形圖像可離不開它,密碼學(xué)搞深了也離不開它。 而且,在很多科學(xué)工程中的應(yīng)用計算,都以數(shù)值的為主。 這門課有兩個極端的講法一個是古典的“數(shù)值分析”,完全講數(shù)學(xué)原理和算法;另一個是現(xiàn)在日趨流行的“科學(xué)與工程計算”,干脆教學(xué)生用軟件包編程。 我個人認(rèn)為,計算機系的學(xué)生一定要認(rèn)識清楚我們計算機系的學(xué)生為什么要學(xué)這門課,我是很偏向于學(xué)好理論后用計算機實現(xiàn)的,最好使用C語言或C+編程實現(xiàn)。 向這個方向努力的書籍還是挺多的,這里推薦大家高等教育出版社(CHEP)和施普林格出版社(Springer)聯(lián)合出版的計算方法(Computational Methods),華中理工大學(xué)數(shù)學(xué)系寫的(現(xiàn)華中科技大學(xué)),這方面華科大做的工作在國內(nèi)應(yīng)算是比較多的,而個人認(rèn)為以這本最好,至少程序設(shè)計方面涉及了任意數(shù)學(xué)函數(shù)的求值,方程求根,線性方程組求解,插值方法,數(shù)值積分,場微分方程數(shù)值求解。 李慶揚的那本則理論性過強,與實際應(yīng)用結(jié)合得不太緊。 每個學(xué)校本系里都會開一門離散數(shù)學(xué),涉及集合論,圖論,和抽象代數(shù),數(shù)理邏輯。 不過,這么多內(nèi)容擠在離散數(shù)學(xué)一門課里,是否時間太緊了點?另外,計算機系學(xué)生不懂組合和數(shù)論,也是巨大的缺陷。 要做理論,不懂組合或者數(shù)論吃虧可就太大了。 從理想的狀態(tài)來看,最好分開六門課集合,邏輯,圖論,組合,代數(shù),數(shù)論。 這個當(dāng)然不現(xiàn)實,因為沒那么多課時。 也許將來可以開三門課集合與邏輯,圖論與組合,代數(shù)與數(shù)論。 (這方面我們學(xué)校已經(jīng)著手開始做了)不管課怎么開,學(xué)生總一樣要學(xué)。 下面分別談?wù)勆厦娴娜M內(nèi)容。 古典集合論,北師大出過一本基礎(chǔ)集合論不錯。 數(shù)理邏輯,中科院軟件所陸鐘萬教授的面向計算機科學(xué)的數(shù)理邏輯就不錯。 現(xiàn)在可以找到陸鐘萬教授的講課錄像,.cas.ac./html/Dir/xx/11/06/3391.htm自己去看看吧。 總的來說,學(xué)集合/邏輯起手不難,普通高中生都能看懂。 但越往后越感覺深不可測。 學(xué)完以上各書之后,如果你還有精力興趣進一步深究,那么可以試一下GTM系列中的Introduction toAxiomatic SetTheoryLogic。 這兩本都有世界圖書出版社的引進版。 你如果能搞定這兩本,可以說在邏輯方面真和A Courseof Mathematical正入了門,也就不用再浪費時間聽我瞎侃了。 據(jù)說全中國最多只有三十個人懂圖論。 此言不虛。 圖論這東東,技巧性太強,幾乎每個問題都有一個獨特的方法,讓人頭痛。 不過這也正是它魅力所在只要你有創(chuàng)造性,它就能給你成就感。 我的導(dǎo)師說,圖論里面隨便揪一塊東西就可以寫篇論文。 大家可以體會里面內(nèi)容之深廣了吧!國內(nèi)的圖論書中,王樹禾老師的“圖論及其算法”非常成功。 一方面,其內(nèi)容在國內(nèi)教材里算非常全面的。 另一方面,其對算法的強調(diào)非常適合計算機系(本來就是科大計算機系教材)。 有了這本書為主,&Murty的圖論及其應(yīng)用,人民郵電出版社翻譯的圖論和電路網(wǎng)絡(luò)等等,就馬馬虎世界圖書引進有GTM系列的Modern GraphTheory。 此書確實經(jīng)典!國內(nèi)好象還有一家出版了個翻譯版。 不過,學(xué)到這個層次,還是讀原版好。 搞定這本書,也標(biāo)志著圖論入了門。 再參考幾本翻譯的,如Bondy虎,對本科生足夠了。 再進一步,離散數(shù)學(xué)方面我們北京工業(yè)大學(xué)實驗學(xué)院有個世界級的專家,叫邵學(xué)才,復(fù)旦大學(xué)概率論畢業(yè)的,教過高等數(shù)學(xué),線性代數(shù),概率論,最后轉(zhuǎn)向離散數(shù)學(xué),出版著作無數(shù),論文集新加坡有一本,堪稱經(jīng)典,大家想學(xué)離散數(shù)學(xué)的真諦不妨找來看看。 這老師的課我專門去聽過,極為經(jīng)典。 不過你要從他的不經(jīng)意的話中去挖掘精髓。 在同他的交談當(dāng)中我又深刻地發(fā)現(xiàn)一個問題,雖說邵先生寫書無數(shù),但依他自己的說法每本都差不多,我實在覺得詫異,他說主要是有大綱的限制,不便多寫。 這就難怪了,很少聽說國外寫書還要依據(jù)個什么大綱(就算有,內(nèi)容也寬泛的多),不敢越雷池半步,這樣不是看誰的都一樣了。 外版的書好就好在這里,最新的科技成果里面都有論述,別的先不說,至少是“緊跟時代的理論知識”。 組合感覺沒有太適合的國產(chǎn)書。 還是讀Graham和Knuth等人合著的經(jīng)典“具體數(shù)學(xué)”吧,西安電子科技大學(xué)出版社有翻譯版。 抽象代數(shù),國內(nèi)經(jīng)典為莫宗堅先生的“代數(shù)學(xué)”。 此書是北大數(shù)學(xué)系教材,深得好評。 然而對本科生來說,此書未免太深。 可以先學(xué)習(xí)一些其它的教材,然后再回頭來看“代數(shù)學(xué)”。 國際上的經(jīng)典可就多了,GTM系列里就有一大堆。 推薦一本談不上經(jīng)典,但卻最簡.math.miami/ec/book/這本“Introduction toLinear andAbstract Algebra非常通俗易懂,而且把抽象代數(shù)和線性代數(shù)結(jié)合起來,對初學(xué)者來說非常理想,我校比較牛的同學(xué)都有收藏。 數(shù)論方面,國內(nèi)有經(jīng)典而且以困難著稱的”初等數(shù)論“(潘氏兄弟著,北大版)。 再追溯一點,還有更加經(jīng)典(可以算世界級)并且更加困難的”數(shù)論導(dǎo)引“(華羅庚先生的名著,科學(xué)版,九章書店重印,繁體的看起來可能比較困難)。 把基礎(chǔ)的幾章搞定一個大概,對本科生來講足夠了。 但這只是初等數(shù)論。 本科畢業(yè)后要學(xué)計算數(shù)論,你必須看英文的書,如Bach的Introduction toAlgorithmic NumberTheory。 計算機科學(xué)理論的根本,在于算法。 現(xiàn)在很多系里給本科生開設(shè)算法設(shè)計與分析,確單的,最容易學(xué)的實非常正確。 環(huán)顧西方世界,大約沒有一個三流以上計算機系不把算法作為必修的。 算法教材目前公認(rèn)以Corman等著的Introduction toAlgorithms為最優(yōu)。 對入門而言,這一本已經(jīng)足夠,不需要再參考其它書。 再說說形式語言與自動機。 我看過北郵的教材,應(yīng)該說寫的還清楚。 但是,有一點要強調(diào)形式語言和自動機的作用主要在作為計算模型,而不是用來做編譯。 事實上,編譯前端已經(jīng)是死領(lǐng)域,沒有任何open problems,北科大的班曉娟博士也曾經(jīng)說過,編譯的技術(shù)已相當(dāng)成熟。 如果為了這個,我們完全沒必要去學(xué)形式語言-用用ya什么的就完了。 北郵的那本在國內(nèi)還算比較好,但是在深度上,在跟可計算性的聯(lián)系上都有較大的局限,現(xiàn)代感也不足。 所以建議有興趣的同學(xué)去讀英文書,不過國內(nèi)似乎沒引進這方面的教材。 可以去互動出版網(wǎng)上看一看。 入門以后,把形式語言與自動機中定義的模型,和數(shù)理邏輯中用遞歸函數(shù)定義的模型比較一番,可以說非常有趣。 現(xiàn)在才知道,什么叫“宮室之美,百官之富”!計算機科學(xué)和數(shù)學(xué)的關(guān)系有點奇怪。 二三十年以前,計算機科學(xué)基本上還是數(shù)學(xué)的一個分支。 而現(xiàn)在,計算機科學(xué)擁有廣泛的研究領(lǐng)域和眾多的研究人員,在很多方面反過來推動數(shù)學(xué)發(fā)展,從某種意義上可以說是孩子長得比媽媽還高了。 但不管怎么樣,這個孩子身上始the mathematicalunderpinning ofputer終流著母親的血液。 science(計算機科學(xué)的數(shù)學(xué)基礎(chǔ)),也就是理論計算機科學(xué)。 原來在東方大學(xué)城圖書館中曾經(jīng)這血液是看過一本七十年代的譯本(書皮都沒了,可我就愛關(guān)注這種書),大概就叫計算機數(shù)學(xué)。 那本書若是放在當(dāng)時來講決是一本好書,但現(xiàn)在看來,涵蓋的范圍還算廣,深度則差了許多,不過推薦大一的學(xué)生倒可以看一看,至少可以使你的計算數(shù)學(xué)入入門。 最常和理論計算機科學(xué)放在一起的一個詞是什么?答離散數(shù)學(xué)。 這兩者的關(guān)系是如此密切,以至于它們在不少場合下成為同義詞。 (這一點在前面的那本書中也有體現(xiàn))傳統(tǒng)上,數(shù)學(xué)是以分析為中心的。 數(shù)學(xué)系的同學(xué)要學(xué)習(xí)三四個學(xué)期的數(shù)學(xué)分析,然后是復(fù)變函數(shù),實變函數(shù),泛函數(shù)等等。 實變和泛函被很多人認(rèn)為是現(xiàn)代數(shù)學(xué)的入門。 在物理,化學(xué),工程上應(yīng)用的,也以分析為主。 隨著計算機科學(xué)的出現(xiàn),一些以前不太受到重視的數(shù)學(xué)分支突然重要起來。 人們發(fā)現(xiàn),這些分支處理的數(shù)學(xué)對象與傳統(tǒng)的分析有明顯的區(qū)別分析研究的問題解決方案是連續(xù)的,因而微分,積分成為基本的運算;而這些分支研究的對象是離散的,因而很少有機會進行此類的計算。 人們從而稱這些分支為“離散數(shù)學(xué)”。 “離散數(shù)學(xué)”的名字越來越響亮,最后導(dǎo)致以分析為中心的傳統(tǒng)數(shù)學(xué)分支被相對稱為“連續(xù)數(shù)學(xué)”。 離散數(shù)學(xué)經(jīng)過幾十年發(fā)展,基本上穩(wěn)定下來。 一般認(rèn)為,離散數(shù)學(xué)包含以下學(xué)科1)集合論,數(shù)理邏輯與元數(shù)學(xué)。 這是整個數(shù)學(xué)的基礎(chǔ),也是計算機科學(xué)的基礎(chǔ)。 2)圖論,算法圖論;組合數(shù)學(xué),組合算法。 計算機科學(xué),尤其是理論計算機科學(xué)的核心是算法,而大量的算法建立在圖和組合的基礎(chǔ)上。 3)抽象代數(shù)。 代數(shù)是無所不在的,本來在數(shù)學(xué)中就非常重要。 在計算機科學(xué)中,人們驚訝地發(fā)現(xiàn)代數(shù)竟然有如此之多的應(yīng)用。 但是,理論計算機科學(xué)僅僅就是在數(shù)學(xué)的上面加上“離散”的帽子這么簡單嗎?一直到大約十幾年前,終于有一位大師告訴我們不是。 D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設(shè)了一門全新的課程Concrete Mathematics。 Concrete這個詞在這里有兩層含義首先對abstract而言。 Knuth認(rèn)為,傳統(tǒng)數(shù)學(xué)研究的對象過于抽象,導(dǎo)致對具體的問題關(guān)心不夠。 他抱怨說,在研究中他需要的數(shù)學(xué)往往并不存在,所以他只能自己去創(chuàng)造一些數(shù)學(xué)。 為了直接面向應(yīng)用的需要,他要提倡“具體”的數(shù)學(xué)。 在這里我做一點簡單的解釋。 例如在集合論中,數(shù)學(xué)家關(guān)心的都是最根本的問題-公理系統(tǒng)的各種性質(zhì)之類。 而一些具體集合的性質(zhì),各種常見集合,關(guān)系,映射都是什么樣的,數(shù)學(xué)家覺得并不重要。 然而,在計算機科學(xué)中應(yīng)用的,恰恰就是這些具體的東西。 Knuth能夠首先看到這一點,不愧為當(dāng)世計算機第一人。 其次,Concrete是Continuous(連續(xù))加上discrete(離散)。 不管連續(xù)數(shù)學(xué)還是離散數(shù)學(xué),都是有用的數(shù)學(xué)!理論與實際的結(jié)合計算機科學(xué)研究的范疇前面主要是從數(shù)學(xué)角度來看的。 從計算機角度來看,理論計算機科學(xué)目前主要的研究領(lǐng)域包括可計算性理論,算法設(shè)計與復(fù)雜性分析,密碼學(xué)與信息安全,分布式計算理論,并行計算理論,網(wǎng)絡(luò)理論,生物信息計算,計算幾何學(xué),程序語言理論等等。 這些領(lǐng)域互相交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。 想搞搞這方面的工作,推薦看中國計算機學(xué)會的一系列書籍,至少代表了我國的權(quán)威。 下面隨便舉一些例子。 由于應(yīng)用需求的推動,密碼學(xué)現(xiàn)在成為研究的熱點。 密碼學(xué)建立在數(shù)論(尤其是計算數(shù)論),代數(shù),信息論,概率論和隨機過程的基礎(chǔ)上,有時也用到圖論和組合學(xué)等。 很多人以為密碼學(xué)就是加密解密,而加密就是用一個函數(shù)把數(shù)據(jù)打亂。 這樣的理解太淺顯了。 現(xiàn)代密碼學(xué)至少包含以下層次的內(nèi)容第一,密碼學(xué)的基礎(chǔ)。 例如,分解一個大數(shù)真的很困難嗎?能否有一般的工具證明協(xié)議正確?第二,密碼學(xué)的基本課題。 例如,比以前更好的單向函數(shù),簽名協(xié)議等。 第三,密碼學(xué)的高級問題。 例如,零知識證明的長度,秘密分享的方法。 第四,密碼學(xué)的新應(yīng)用。 例如,數(shù)字現(xiàn)金,叛徒追蹤等。 在分布式系統(tǒng)中,也有很多重要的理論問題。 例如,進程之間的同步,互斥協(xié)議。 一個經(jīng)典的結(jié)果是在通信信道不可靠時,沒有確定型算法能實現(xiàn)進程間協(xié)同。 所以,改進TCP三次握手幾乎沒有意義。 例如時序問題。 常用的一種序是因果序,但因果序直到不久前才有一個理論上的結(jié)果.例如,死鎖沒有實用的方法能完美地對付。 例如,.操作系統(tǒng)研究過就自己去舉吧!如果計算機只有理論,那么它不過是數(shù)學(xué)的一個分支,而不成為一門獨立的科學(xué)。 事實上,在理論之外,計算機科學(xué)還有更廣闊的天空。 我一直認(rèn)為,4年根本不夠?qū)W習(xí)計算機的基礎(chǔ)知識,因為面太寬了.這方面我想先說說我們系在各校普遍開設(shè)的計算機基礎(chǔ)。 在高等學(xué)校開設(shè)計算機基礎(chǔ)課程是我國高教司明文規(guī)定的各專業(yè)必修課程要求。 主要內(nèi)容是使學(xué)生初步掌握計算機的發(fā)展歷史,學(xué)會簡單的使用操作系統(tǒng),文字處理,表格處理功能和初步的網(wǎng)絡(luò)應(yīng)用功能。 但是在計算機科學(xué)系教授此門課程的目標(biāo)決不能與此一致。 在計算機系課程中目標(biāo)應(yīng)是讓學(xué)生較為全面的了解計算機學(xué)科的發(fā)展,清晰的把握計算機學(xué)科研究的方向,發(fā)展的前沿即每一個課程在整個學(xué)科體系中所處的地位。 搞清各學(xué)科的學(xué)習(xí)目的,學(xué)習(xí)內(nèi)容,應(yīng)用領(lǐng)域。 使學(xué)生在學(xué)科學(xué)習(xí)初期就對整個學(xué)科有一個整體的認(rèn)識,以做到在今后的學(xué)習(xí)中清楚要學(xué)什么,怎么學(xué)。 計算機基本應(yīng)用技能的位置應(yīng)當(dāng)放在第二位或更靠后,因為這一點對于本系的學(xué)生應(yīng)當(dāng)有這個摸索能力。 這一點很重要。 推薦給大家一本書機械工業(yè)出版社的計算機文化(New Perspectiveof ComputerScience),看了這本書我才深刻的體會到自己還是個計算機科學(xué)初學(xué)者,才比較透徹的了解了什么是計算機科學(xué)。 另外在廈門大學(xué)趙致琢老師的著作計算科學(xué)導(dǎo)論當(dāng)中的很多經(jīng)典理論都是在同類書籍中很難找到的。 看看他也許你才會明白一個最基本的問題為什么計算機科學(xué)叫計算科學(xué)更為準(zhǔn)確。 這本書在世界上也可成為精品級的著作。 一個一流計算機系的優(yōu)秀學(xué)生決不該僅僅是一個編程高手,但他一定首先是一個編程高手。 我上大學(xué)的時候,第一門專業(yè)課是C語言程序設(shè)計,念計算機的人從某種角度講相當(dāng)一部分人是靠寫程序吃飯的。 在我們北京工業(yè)大學(xué)實驗學(xué)院計算機系里一直有這樣的爭論(時至今日CSDN上也有),關(guān)于第一程序設(shè)計語言該用哪一種。 我個人認(rèn)為,用哪種語言屬于末節(jié),關(guān)鍵在養(yǎng)成良好的編程習(xí)慣。 當(dāng)年老師對我們說,打好基礎(chǔ)后學(xué)一門新語言只要一個星期。 現(xiàn)在我覺得根本不用一個星期,前提是先把基礎(chǔ)打好。 不要再猶豫了,學(xué)了再說,等你抉擇好了,別人已經(jīng)會了幾門語言了。 匯編語言和微機原理是兩門特?zé)┤说恼n。 你的數(shù)學(xué)/理論基礎(chǔ)再好,也占不到什么便宜。 這兩門課之間的次序也好比先有雞還是先有蛋,無論你先學(xué)哪門,都會牽扯另一門課里的東西。 所以,只能靜下來慢慢琢磨。 這就是典型的工程課,不需要太多的聰明和頓悟,卻需要水滴石穿的漸悟。 有關(guān)這兩門課的書,計算機書店里不難找到。 弄幾本最新的,對照著看吧。 組成原理推薦計算機組成與結(jié)構(gòu)清華大學(xué)王愛英教授寫的。 匯編語言大家拿8086/8088入個門,之后一定要學(xué)80x86匯編語言。 實用價值大,不落后,結(jié)構(gòu)又好,寫寫高效病毒,高級語言里嵌一點匯編,進行底層開發(fā),總也離不開他,推薦清華大學(xué)沈美明的IBMPC匯編語言程序設(shè)計。 有些人說不想了解計算機體系結(jié)構(gòu),也不想制造計算機,所以諸如計算機原理,匯編語言,接口之類的課覺得沒必要學(xué),這樣合理嗎?顯然不合理,這些東西遲早得掌握,肯定得接觸,而且,這是計算機專業(yè)與其他專業(yè)學(xué)生相比的少有的幾項優(yōu)勢。 做項目的時候,了解這些是非常重要的,不可能說,僅僅為了技術(shù)而技術(shù),只懂技術(shù)的人最多做一個編碼工人,而永遠(yuǎn)不可能全面地了解整個系統(tǒng)的設(shè)計,而編碼工人是越老越不值錢。 關(guān)于組成原理還有個講授的問題,在我學(xué)這門課程時老師講授時把CPU工作原理譽微程序設(shè)計這一塊略掉了,理由是我們國家搞CPU技術(shù)不如別的國家,搞了這么長時間好不容易出了個龍芯比Intel的還差個十萬八千里,所以建議我們不要學(xué)了。 我看這在各校也未見得不是個問題吧!若真是如他所說,那中國的計算機科學(xué)哪個方向都可以停了,軟硬件,應(yīng)用,有幾項搞得過美國,搞不過別人就不搞了,那我們坐在這里干什么?教學(xué)的觀念需要轉(zhuǎn)變的。 模擬電路這東東,如今不僅計算機系學(xué)生搞不定,電子系學(xué)生也多半害怕。 如果你真想軟硬件通吃,那么建議你先看看邱關(guān)源的“電路原理”,也許此后再看模擬電路底氣會足些。 教材康華光的“電子技術(shù)基礎(chǔ)”(高等教育出版社)還是不錯的(我校電子系在用)。 有興趣也可以參考童詩白的書。 數(shù)字電路比模擬電路要好懂得多。 推薦大家看一看我們北工大劉英嫻教授寫的數(shù)字邏輯業(yè)績?nèi)耸慷颊f這本書很有參考價值(機械工業(yè)出版社的)。 原因很明了,實用價值高,能聽聽她講授的課程更是有一種“享受科學(xué)”的感覺。 清華大學(xué)閻石的書也算一本好教材,遺憾的一點是集成電路講少了些。 真有興趣,看一看大規(guī)模數(shù)字系統(tǒng)設(shè)計吧(北航那本用的還比較多)。 計算機系統(tǒng)結(jié)構(gòu)該怎么教,國際上還在爭論。 國內(nèi)能找到的較好教材為Stallings的Computer Organizationand Architectureesigningfor Performance(清華影印本)。 國際上最流行的則是“Computer architecture:aquantitative approach,by Patterson&Hennessy。 操作系統(tǒng)可以隨便選用操作系統(tǒng)的內(nèi)核設(shè)計與實現(xiàn)和現(xiàn)代操作系統(tǒng)兩書之一。 這兩部都可以算經(jīng)典,唯一缺點就是理論上不夠嚴(yán)格。 不過這領(lǐng)域?qū)儆贖ardcore System,所以在理論上馬虎一點也情有可原。 想看理論方面的就推薦清華大學(xué)出版社操作系統(tǒng)吧,高教司司長張堯?qū)W寫的,我們教材用的是那本。 另外推薦一本W(wǎng)indows操作系統(tǒng)原理機械工業(yè)出版社的,這本書是我國操作系統(tǒng)專家在微軟零距離考察半年,寫作歷時一年多寫成的,教操作系統(tǒng)的專家除了清華大學(xué)的張堯?qū)W(現(xiàn)高教司司長)幾乎所有人都參加了。 Bill Gates親自寫序。 里面不但結(jié)合windows2000,xp詳述操作系統(tǒng)的內(nèi)核,而且后面講了一些windows編程基礎(chǔ),有外版書的味道,而且上面一些內(nèi)容可以說在國內(nèi)外只有那本書才有對windows內(nèi)核細(xì)致入微的介紹,如果先把形式語言學(xué)好了,則編譯原理中的前端我看只要學(xué)四個算法最容易實現(xiàn)的遞歸下降;最好的自頂向下算法LL(k);最好的自底向上算法LR(k);LR (1)的簡化SLR(也許LALR)。 后端完全屬于工程性質(zhì),story。 、推薦教材Kenh C.Loudenand Practice”即是編譯原理及實踐(機械工業(yè)出版社的譯本)學(xué)數(shù)據(jù)庫要提醒大家的是,會用VFP,VB,Power builder不等于懂?dāng)?shù)據(jù)庫。 (這世界上自以為懂?dāng)?shù)據(jù)庫的人太多了!)數(shù)據(jù)庫設(shè)計既是科學(xué)又是藝術(shù),數(shù)據(jù)庫實現(xiàn)則是典型的工程。 還有另一簡化自然又是another寫的“Compiler ConstructionPrinciples所以從某種意義上講,數(shù)據(jù)庫是最典型的一門計算機課程理工結(jié)合,互相滲透。 另外推薦大家學(xué)完軟件工程學(xué)后再翻過來看看數(shù)據(jù)庫技術(shù),又會是一番新感覺。 推薦教材Abraham Silberschatz等著的Database SystemConcepts.作為知識的完整性,還推薦大家看一看機械工業(yè)出版社的數(shù)據(jù)倉庫譯本。 計算機網(wǎng)絡(luò)的標(biāo)準(zhǔn)教材還是Networks(清華大學(xué)有譯本)。 還有就是推薦謝希仁的計算機網(wǎng)絡(luò)教程(人民郵電出版Tanenbaum的Computer社)問題講得比較清楚,System,所以光看書是不夠的。 建議多讀RFC,.ietf/rfc.htm里可以按編號下載RFC文檔。 從IP的讀起。 等到能掌握10種左右常用協(xié)議,就沒有幾個人敢小看你了。 再做的工作我看放在網(wǎng)絡(luò)設(shè)計上就比較好了。 參考文獻也比較權(quán)威。 不過,網(wǎng)絡(luò)也屬于Hardcore數(shù)據(jù)結(jié)構(gòu)的重要性就不言而喻了,學(xué)完數(shù)據(jù)結(jié)構(gòu)你會對你的編程思想進行一番革命性的洗禮,會對如何建立一個合理高效的算法有一個清楚的認(rèn)識。 對于算法的建立我想大家應(yīng)當(dāng)注意以下幾點當(dāng)遇到一個算法問題時,首先要知道自己以前有沒有處理過這種問題.如果見過,那么你一般會順利地做出來;如果沒見過,那么考慮以下問題:1.問題是否是建立在某種已知的熟悉的數(shù)據(jù)結(jié)構(gòu)(例如,二叉樹)上?如果不是,則要自己設(shè)計數(shù)據(jù)結(jié)構(gòu)。 2.問題所要求編寫的算法屬于以下哪種類型?(建立數(shù)據(jù)結(jié)構(gòu),修改數(shù)據(jù)結(jié)構(gòu),遍歷,查找,排序.)3.分析問題所要求編寫的算法的數(shù)學(xué)性質(zhì).是否具備遞歸特征?(對于遞歸程序設(shè)計,只要設(shè)計出合理的參數(shù)表以及遞歸結(jié)束的條件,則基本上大功告成.)4.繼續(xù)分析問題的數(shù)學(xué)本質(zhì).根據(jù)你以前的編程經(jīng)驗,設(shè)想一種可能是可行的解決辦法,并證明這種解決辦法的正確性.如果題目對算法有時空方面的要求,證明你的設(shè)想滿足其要求.一般的,時間效率和空間效率難以兼得.有時必須通過建立輔助存儲的方法來節(jié)省時間.5.通過一段時間的分析,你對解決這個問題已經(jīng)有了自己的一些思路.或者說,你已經(jīng)可以用自然語言把你的算法簡單描述出來.繼續(xù)驗證其正確性,努力發(fā)現(xiàn)其中的錯誤并找出解決辦法.在必要的時候(發(fā)現(xiàn)了無法解決的矛盾),推翻自己的思路,從頭開始構(gòu)思.6.確認(rèn)你的思路可行以后,開始編寫程序.在編寫代碼的過程中,盡可能把各種問題考慮得詳細(xì),周密.程序應(yīng)該具有良好的結(jié)構(gòu),并且在關(guān)鍵的地方配有注釋.7.舉一個例子,然后在紙上用筆執(zhí)行你的程序,進一步驗證其正確性.當(dāng)遇到與你

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論