[轉載]電腦科學與技術反思錄

來源:互聯網
上載者:User
 
   電腦科學與技術這一門科學深深的吸引著我們這些同學們,上電腦系已經有近三年了,自己也做了一些思考,我一直認為電腦科學與技術這門專業,在本科階段是不可能切分成電腦科學和電腦技術的,因為電腦科學需要相當多的實踐,而實踐需要技術;每一個人(包括非電腦專業),掌握簡單的電腦技術都很容易(包括程式設計),但電腦專業的優勢就在於,我們掌握許多其他專業並不“深究”的東西,例如,演算法,體繫結構,等等。非電腦專業的人可以很容易地做一個晶片,寫一段程式,但他們做不出電腦專業能夠做出來的大型系統。今天我想專門談一談電腦科學,並將重點放在計算理論上。 

電腦科學與技術反思錄 
   電腦科學與技術這一門科學深深的吸引著我們這些同學們,上電腦系已經有近三年了,自己也做了一些思考,我一直認為電腦科學與技術這門專業,在本科階段是不可能切分成電腦科學和電腦技術的,因為電腦科學需要相當多的實踐,而實踐需要技術;每一個人(包括非電腦專業),掌握簡單的電腦技術都很容易(包括程式設計),但電腦專業的優勢就在於,我們掌握許多其他專業並不“深究”的東西,例如,演算法,體繫結構,等等。非電腦專業的人可以很容易地做一個晶片,寫一段程式,但他們做不出電腦專業能夠做出來的大型系統。今天我想專門談一談電腦科學,並將重點放在計算理論上。 
   
  電腦理論的一個核心問題——從數學談起: 
  記得當年大一入學,每周六課時高等數學,天天作業不斷(那時是六日工作制)。頗有些同學驚呼走錯了門:咱們這到底念的是什麼系?不錯,你沒走錯門,這就是電腦科學與技術系。我國電腦科學系裡的傳統是培養做學術研究,尤其是理論研究的人(方向不見得有問題,但是做得不是那麼盡如人意)。而電腦的理論研究,說到底了,如網路安全,圖形映像學,視頻音頻處理,哪個方向都與數學有著很大的關係,雖然也許是正統數學家眼裡非主流的數學。這裡我還想闡明我的一個觀點:我們都知道,數學是從實際生活當中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在於想用抽象出來的理論去更好的指導實踐,有些數學研究工作者喜歡用一些現存的理論知識去推導若干條推論,殊不知其一:問題考慮不全很可能是個錯誤的推論,其二:他的推論在現實生活中找不到原型,不能指導實踐。嚴格的說,我並不是一個理想主義者,政治課上學的理論聯絡實際一直是指導我學習科學文化知識的航標(至少我認為搞電腦科學與技術的應當本著這個方向)。 
   
  其實我們電腦系學數學光學高等數學是不夠的(典型的工科院校一般都開的是高等數學),我們應該像數學系一樣學一下數學分析(清華電腦系開的好像就是數學分析),數學分析這門科學,咱們學電腦的人對它有很複雜的感情。在於它是偏向於證明型的數學課程,這對我們培養良好的分析能力極有協助。我的軟體工程學導師北工大數理學院的王儀華先生就曾經教導過我們,數學系的學生到軟體企業中大多作軟體設計與分析工作,而電腦系的學生做程式員的居多,原因就在於數學系的學生分析推理能力,從所受訓練的角度上要遠遠在我們之上。當年出現的怪現象是:電腦系學生的高中數學基礎在全校數一數二(希望沒有冒犯其它系的同學),教學課時數也僅次於數學系,但學完之後的效果卻不盡如人意。難道都是學生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發人深思。 
  
  我個人的淺見是:電腦系的學生,對數學的要求固然跟數學系不同,跟物理類差別則更大。通常非數學專業的所謂“高等數學”,無非是把數學分析中較困難的理論部分刪去,強調套用公式計算而已。而對電腦系來說,數學分析裡用處最大的恰恰是被刪去的理論部分。說得難聽一點,對電腦系學生而言,追求算來算去的所謂“工程數學”已經徹底地走進了誤區。記上一堆曲面積分的公式,難道就能算懂了數學?那倒不如現用現查,何必費事記呢?再不然直接用Mathematics或是Matalab好了。 
   我在系裡最愛做的事情就是給學弟學妹們推薦參考書。中文的數學分析書,一般都認為以北大張築生老師的“數學分析新講”為最好。萬一你的數學實在太好,那就去看菲赫金哥爾茨的“微積分學教程”好了--但我認為沒什麼必要,畢竟你不想轉到數學系去。吉米多維奇的“數學分析習題集”也基本上是計算型的東東。書的名氣很大,倒不見得適合我們,還是那句話,重要的是數學思想的建立,生活在資訊社會裡我們求的是高效,計算這玩意還是留給電腦吧。不過現在多用的似乎是複旦大學的《數學分析》也是很好的教材。 
  
  中國的所謂高等代數,就等於線性代數加上一點多項式理論。我以為這有好的一面,因為可以讓學生較早感覺到代數是一種結構,而非一堆矩陣翻來覆去。這裡不得不提南京大學林成森,盛松柏兩位老師編的“高等代數”,感覺相當舒服。此書相當全面地包含了關於多項式和線性代數的基本初等結果,同時還提供了一些有用的又比較深刻的內容,如Sturm序列,Shermon-Morrison公式,廣義逆矩陣等等。可以說,作為本科生如能吃透此書,就可以算高手。國內較好的高等代數教材還有清華電腦系用的那本,清華出版社出版,書店裡多多,一看就知道。從抽象代數的觀點來看,高等代數裡的結果不過是代數系統性質的一些例子而已。莫宗堅先生的《代數學》裡,對此進行了深刻的討論。然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以後成熟了一些再讀。 
   
  正如上面所論述的,電腦系的學生學習高等數學:知其然更要知其所以然。你學習的目的應該是:將抽象的理論再應用於實踐,不但要掌握題目的解題方法,更要掌握解題思想,對於定理的學習:不是簡單的應用,而是掌握證明過程即掌握定理的由來,訓練自己的推理能力。只有這樣才達到了學習這門科學的目的,同時也縮小了我們與數學系的同學之間思維上的差距。 
   
  機率論與數理統計這門課很重要,可惜大多數院校講授這門課都會少些東西。少了的東西現在看至少有隨機過程。到畢業還沒有聽說過Markov過程,此乃電腦系學生的恥辱。沒有隨機過程,你怎麼分析網路和分布式系統?怎麼設計隨機化演算法和協議?據說清華電腦系開有“隨機數學”,早就是必修課。另外,離散機率論對電腦系學生來說有特殊的重要性。而我們國家工程數學講的都是連續機率。現在,美國已經有些學校開設了單純的“離散機率論”課程,乾脆把連續機率刪去,把離散機率講深些。我們不一定要這麼做,但應該更加強調離散機率是沒有疑問的。這個工作我看還是儘早的做為好。 
   
  計算方法學(有些學校也稱為數學分析學)是最後一門由數理學院給我們開的課。一般學生對這門課的重視程度有限,以為沒什麼用。不就是照套公式嘛!其實,做圖形映像可離不開它,密碼學搞深了也離不開它。而且,在很多科學工程中的應用計算,都以數值的為主。這門課有兩個極端的講法:一個是古典的“數值分析”,完全講數學原理和演算法;另一個是現在日趨流行的“科學與工程計算”,乾脆教學生用軟體包編程。我個人認為,電腦系的學生一定要認識清楚我們電腦系的學生為什麼要學這門課,我是很偏向於學好理論後用電腦實現的,最好使用C語言或C++編程實現。向這個方向努力的書籍還是挺多的,這裡推薦大家高等教育出版社(CHEP)和施普林格出版社(Springer)聯合出版的《計算方法(Computational Methods)》,華中理工大學數學系寫的(現華中科技大學),這方面華科大做的工作在國內應算是比較多的,而個人認為以這本最好,至少程式設計方面涉及了:任意數學函數的求值,方程求根,線性方程組求解,插值方法,數值積分,場微分方程數值求解。李慶揚的那本則理論性過強,與實際應用結合得不太緊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.