- 相關(guān)推薦
計算機科學(xué)與技術(shù)學(xué)習心得
從網(wǎng)絡(luò)上找到的一篇文章,希望對計算機專業(yè)有疑惑的同學(xué)讀讀。計算機科學(xué)與技術(shù)學(xué)習心得撰文曾毅
計算機科學(xué)與技術(shù)這一門科學(xué)深深的吸引著我們這些同學(xué)們,上計算機系已經(jīng)有近三年了,自己也做了一些思考,原先不管是國內(nèi)還是國外都喜歡把這個系分為計算機軟件理論、計算機系統(tǒng)、計算機技術(shù)與應(yīng)用。后來又合到一起,變成了現(xiàn)在的計算機科學(xué)與技術(shù)。
司徒彥南提到:我一直認為計算機科學(xué)與技術(shù)這門專業(yè),在本科階段是不可能切分成計算機科學(xué)和計算機技術(shù)的,因為計算機科學(xué)需要相當多的實踐,而實踐需要技術(shù);每一個人(包括非計算機專業(yè)),掌握簡單的計算機技術(shù)都很容易(包括原先Major們自以為得意的程序設(shè)計),但計算機專業(yè)的優(yōu)勢是:我們掌握許多其他專業(yè)并不"深究"的東西,例如,算法,體系結(jié)構(gòu),等等。非計算機專業(yè)的人可以很容易地做一個芯片,寫一段程序,但他們做不出計算機專業(yè)能夠做出來的大型系統(tǒng)。
今天我想專門談一談計算機科學(xué),并將重點放在計算理論上。
在我大一時無意中找到了南京大學(xué)網(wǎng)友sir的帖子"胡侃(理論)計算機學(xué)習",這個帖子對我大學(xué)學(xué)習起到了至關(guān)重要的指導(dǎo)作用,我在這篇文章成文的時候正是基于sir的文章做得必要的補充和修改,并得到了sir的支持。再有就是每次和本系司徒彥南兄的交談,都能從中學(xué)到很多東西,在這份材料中也有很多體現(xiàn)。這份材料是我原來給學(xué)弟學(xué)妹們?nèi)雽W(xué)教育的講稿之一,原有基礎(chǔ)上改進了其中我認為不太合適的理論,修正了一些觀點,在推薦教材方面結(jié)合我的學(xué)習情況有了較大改變。值得一提的是增加了一些計算機理論的內(nèi)容,計算機技術(shù)的內(nèi)容結(jié)合我國的教學(xué)情況和我們學(xué)習的實際情況進行了重寫。這里所作的工作也只是將各位學(xué)長和同學(xué)們的學(xué)習體會以及我在學(xué)習計算機科學(xué)時的所思所想?yún)R總在一起寫了下來,很不成熟。目的就是希望能夠給一些剛?cè)雽W(xué)或者是學(xué)習計算機科學(xué)還沒有入門的同學(xué)以一些建議。不期能夠起到多大的作用,但求能為同學(xué)們的學(xué)習計算機科學(xué)與技術(shù)帶來微薄的幫助。還是那句話,計算機科學(xué)博大精深,我只是個初學(xué)者,不當之處希望大家批評指正。
1、計算機理論的一個核心問題--從數(shù)學(xué)談起:
[1]高等數(shù)學(xué)Vs數(shù)學(xué)分析
記得當年大一入學(xué),每周四課時高等數(shù)學(xué)。我國計算機科學(xué)系里的傳統(tǒng)是培養(yǎng)做學(xué)術(shù)研究,尤其是理論研究的人(方向不見得有多大的問題,但是做得不是那么盡如人意)。而計算機的理論研究,如網(wǎng)絡(luò)安全學(xué),圖形圖像學(xué),視頻音頻處理,哪個方向都與數(shù)學(xué)有著很大的關(guān)系。這里我還想闡明我的一個觀點:我們都知道,數(shù)學(xué)是從實際生活當中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在于想用抽象出來的理論去更好的指導(dǎo)實踐,有些數(shù)學(xué)研究工作者喜歡用一些現(xiàn)存的理論知識去推導(dǎo)若干條推論,殊不知其一:問題考慮不全很可能是個錯誤的推論,其二:他的推論在現(xiàn)實生活中找不到原型,不能指導(dǎo)實踐。嚴格的說,我并不是一個理想主義者,政治課上學(xué)的理論聯(lián)系實際一直是指導(dǎo)我學(xué)習科學(xué)文化知識的航標(至少我認為搞計算機科學(xué)與技術(shù)的應(yīng)當本著這個方向)。
其實我們計算機系學(xué)數(shù)學(xué)僅學(xué)習高等數(shù)學(xué)是不夠的(典型的工科院校一般都開的是高等數(shù)學(xué)),我們應(yīng)該像數(shù)學(xué)系一樣學(xué)一下數(shù)學(xué)分析(清華計算機系開的好像就是數(shù)學(xué)分析,我們學(xué)校計算機學(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)練的角度上要遠遠在我們平均水平之上。當年出現(xiàn)的怪現(xiàn)象是:計算機系學(xué)生的高中數(shù)學(xué)基礎(chǔ)在全校數(shù)一數(shù)二(希望沒有冒犯其它系的同學(xué)),教學(xué)課時數(shù)也僅次于數(shù)學(xué)系,但學(xué)完之后的效果卻不盡如人意。難道都是學(xué)生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發(fā)人深思。
Sir的文章中提到:我個人的淺見是:計算機系的學(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)查,何必費事記呢?再不然直接用Mathematica或是Matlab好了。退一萬步講,即使是學(xué)高等數(shù)學(xué)我想大家看看華羅庚先生的《高等數(shù)學(xué)導(dǎo)論》也是比一般的教材好得多。華羅庚在數(shù)學(xué)上的造詣不用我去多說,但是他這光輝的一生做得我認為對我們來說,最重要的幾件事情:首先是它籌建了中國科學(xué)院計算技術(shù)研究所,這是我們國家計算機科學(xué)的搖籃。在有就是他把很多的高等數(shù)學(xué)理論都交給了做工業(yè)生產(chǎn)的技術(shù)人員,推動了中國工業(yè)的進步。第三件就是他一生寫過很多書,但是對高校師生價值更大的就是他在病期間在病床上和他的愛徒王元寫了《高等數(shù)學(xué)引論》(王元與其說是他的愛徒不如說是他的同事,是中科院數(shù)學(xué)所的老一輩研究員,對歌德巴赫猜想的貢獻全世界僅次于陳景潤)這書在我們的圖書館里居然找得到,說實話,當時那個書上已經(jīng)長了蟲子,別人走到那里都會閃開,但我卻格外感興趣,上下兩冊看了個遍,我的最大收獲并不在于理論的闡述,而是在于他的理論完全的實例化,在生活中去找模型。這也是我為什么比較喜歡具體數(shù)學(xué)的原因,正如我在上文中提到的,理論脫離了實踐就失去了它存在的意義。正因為理論是從實踐當中抽象出來的,所以理論的研究才能夠更好的指導(dǎo)實踐,不用于指導(dǎo)實踐的理論可以說是毫無價值的。
我在系里最愛做的事情就是給學(xué)弟學(xué)妹們推薦參考書。沒有別的想法,只是希望他們少走彎路。中文的數(shù)學(xué)分析書,一般都認為以北大張筑生老師的"數(shù)學(xué)分析新講"為最好。張筑生先生一生寫的書并不太多,但是只要是寫出來的每一本都是本領(lǐng)域內(nèi)的杰作,這本當然更顯突出些。這種老書看起來不僅是在傳授你知識,而是在讓你體會科學(xué)的方法與對事物的認識方法。萬一你的數(shù)學(xué)實在太好,那就去看菲赫金哥爾茨?quot;微積分學(xué)教程"好了--但我認為沒什么必要,畢竟你不想轉(zhuǎn)到數(shù)學(xué)系去。吉米多維奇的"數(shù)學(xué)分析習題集"也基本上是計算型的書籍。書的名氣很大,倒不見得適合我們,還是那句話,重要的是數(shù)學(xué)思想的建立,生活在信息社會里我們求的是高效,計算這玩意還是留給計算機吧。不過現(xiàn)在多用的似乎是復(fù)旦大學(xué)的《數(shù)學(xué)分析》,高等教育出版社的,也是很好的教材。
Sir的文章中提到:中國的所謂高等代數(shù),就等于線性代數(shù)加上一點多項式理論。我以為這有好的一面,因為可以讓學(xué)生較早感覺到代數(shù)是一種結(jié)構(gòu),而非一堆矩陣翻來覆去。這里不得不提南京大學(xué)林成森,盛松柏兩位老師編的"高等代數(shù)",感覺相當舒服。此書相當全面地包含了關(guān)于多項式和線性代數(shù)的基本初等結(jié)果,同時還提供了一些有用的又比較深刻的內(nèi)容,如Sturm序列,Shermon Morrison公式,廣義逆矩陣等等?梢哉f,作為本科生如能吃透此書,就可以算是高手。國內(nèi)較好的高等代數(shù)教材還有清華計算機系用的那本,清華出版社出版,書店里多多,一看就知道。從抽象代數(shù)的觀點來看,高等代數(shù)里的結(jié)果不過是代數(shù)系統(tǒng)性質(zhì)的一些例子而已。莫宗堅先生的《代數(shù)學(xué)》里,對此進行了深刻的討論。然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以后成熟了一些再讀。
正如上面所論述的,計算機系的學(xué)生學(xué)習高等數(shù)學(xué):知其然更要知其所以然。你學(xué)習的目的應(yīng)該是:將抽象的理論再應(yīng)用于實踐,不但要掌握題目的解題方法,更要掌握解題思想,對于定理的學(xué)習:不是簡單的應(yīng)用,而是掌握證明過程即掌握定理的由來,訓(xùn)練自己的推理能力。只有這樣才達到了學(xué)習這門科學(xué)的目的,同時也縮小了我們與數(shù)學(xué)系的同學(xué)之間思維上的差距。
[2]計算數(shù)學(xué)基礎(chǔ)
Sir的文章中提到:概率論與數(shù)理統(tǒng)計這門課很重要,可惜大多數(shù)院校講授這門課都會少些東西。少了的東西現(xiàn)在看至少有隨機過程。到畢業(yè)還沒有聽說過Markov過程,此乃計算機系學(xué)生的恥辱。沒有隨機過程,你怎么分析網(wǎng)絡(luò)和分布式系統(tǒng)?怎么設(shè)計隨機化算法和協(xié)議?據(jù)說清華計算機系開有"隨機數(shù)學(xué)",早就是必修課。另外,離散概率論對計算機系學(xué)生來說有特殊的重要性。而我們國家工程數(shù)學(xué)講的都是連續(xù)概率,F(xiàn)在,美國已經(jīng)有些學(xué)校開設(shè)了單純的"離散概率論"課程,干脆把連續(xù)概率刪去,把離散概率講深些。
我們不一定要這么做,但應(yīng)該更加強調(diào)離散概率是沒有疑問的。這個工作我看還是盡早的做為好。
計算方法學(xué)(有些學(xué)校也稱為數(shù)學(xué)分析學(xué))是最后一門由數(shù)理學(xué)院給我們開的課。一般學(xué)生對這門課的重視程度有限,以為沒什么用。不就是照套公式嘛!其實,做圖形圖像可離不開它,密碼學(xué)搞深了也離不開它。而且,在很多科學(xué)工程中的應(yīng)用計算,都以數(shù)值的為主。
Sir的文章中提到:這門課有兩個極端的講法:一個是古典的"數(shù)值分析",完全講數(shù)學(xué)原理和算法;另一個是現(xiàn)在日趨流行的"科學(xué)與工程計算",干脆教學(xué)生用軟件包編程。
我個人認為,計算機系的學(xué)生一定要認識清楚我們計算機系的學(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)算是比較多的,而個人認為以這本最好,至少程序設(shè)計方面涉及了:任意數(shù)學(xué)函數(shù)的求值,方程求根,線性方程組求
【計算機科學(xué)與技術(shù)學(xué)習心得】相關(guān)文章:
計算機科學(xué)與技術(shù)專業(yè)介紹12-15
計算機科學(xué)與技術(shù)求職信(14篇)02-05