如果你是一個電腦相關專業大學低年級學生,那麼這篇文章就是為你寫的。
我之前曾經發過一篇博文《大學電腦專業那些課》來談論大學中各門課程的意義和重要性。那是針對更寬泛的範圍來說的,這篇文章則更加精要和簡約。因為這裡研究的僅僅是核心電腦課程,更重要的是,這裡要說的是這些課程之間的關係,以及它到底講得是些什麼東西。我想這些課程最終是要組成一個體系的。
請注意我這裡所說的是通常情況下的核心課程,每個學校在課程設定是可能是存在差異的,但總體上架構應該是不變的。
最開始的第一門課應該是“C語言程式設計”,這基本上屬於你日後一切學習的開始,簡單說這門課程的主要目的和內容就是介紹一種電腦語言的文法內容,至於怎麼學好它,之前的文章都談過了,這裡就不羅嗦了。
之後的課程會分為三條線,第一條線的第一門課程是“資料結構與演算法”。這很簡單,一些有了語言基礎之後,為了更好的使用語言去解決問題,就必須學習結構知識和演算法。至於怎麼學好它,之前的文章也談過了——請注意,如何學都不是本文的重點。本文的重點在於告訴你你將來都會學些什麼以及該學些什麼。
“資料結構與演算法”的後續課程是什嗎?答案應該是《編譯原理》。很奇怪吧?課程就是這樣設計的,其實這個路線也不是我發明的,國外大學的CS Course的體系也是這麼設計的。編譯原理說白了就是介紹編譯器如何工作的,是讓電腦理解電腦語言的一種方法和理論。這個工作過程之中蘊含了大量的演算法,而且是非常複雜的演算法,很多人甚至認為編譯原理是電腦專業本科階段最難的一門課程。主要就是因為這裡面的演算法太複雜,當然也會用到很多結構,樹可能是用得最多的。當然,這就是相當於是資料結構與演算法課程的一個後續性課程,類似一道附加題。最近聽一個學生說有些學校本科已經取消這門課了,我想應該是較少一部分學校的做法吧。不過,中國的學習並不太重視這門課倒是真的。一般課程設定就是一個學期左右的課時。但是一般的國外學校這門課都要學上1年,甚至兩年之久。這條線路到編譯這裡就應該是終點了。下面我們再來介紹剩下的兩條線路。
未完,待續...
歡迎參加新作《代碼揭秘》的有獎書評徵集活動,讀書有感,即可獲贈博文視點精品圖書一套,詳情請至http://www.broadview.com.cn/zhuanti/daimajiemi/introduction.html