電腦專業的學生必須掌握的五門課程

來源:互聯網
上載者:User

電腦專業概念有點大。就電腦科學與技術專業而言,以下這些是必修的:

1、電腦群組成原理(包括先修課程“數字邏輯與數字系統”,簡稱“數電”):這是一門硬體基礎課,學完後你能清楚的知道如何從用最簡單的數字元件,像搭積木一樣構成整個電腦系統,那就算及格了。

2、線性代數,機率論和離散數學:要知道,凡是能稱之為“科學”的專業,就必須有一定的數學功底,否則難以稱作“科學”。這三門課我覺得是本科時期最重要的三門數學課,比高等數學重要。如果你想在電腦科學的道路上走遠點,那這三門可是必修的。

3、MIT開設的《Introduction To algorithm》,中文版叫《演算法導論》:我覺得應該學習它而不是國內習慣開設的《資料結構》。資料結構僅僅是演算法的一部分,國內的資料結構課程迴避了很多本質的東西,僅僅是對一些常見的資料結構的羅列,學起來總有些不痛不癢的感覺。《Introduction To algorithm》雖然有些章節夾雜著很多很讓人討厭的“數學”,但卻能從本質上帶你領略這門十分必要而且有趣兒的課。

4、作業系統與編譯原理:作業系統可以說是《演算法導論》的實驗課,最好能在學習期間自己實現一個小型的作業系統,或者作業系統各分系統的Demo。編譯原理可能是普遍本科生覺得難的一門課,但是作為軟體科學家,這是基礎中的基礎,學完之後所有的語言在你看來應該沒有太大的區別,這麼課應該是離散數學+演算法導論的實驗課。最好能在學習期間自己實現一個小型的編譯器,語言最好是自創。

5、掌握一門常用的程式設計語言和編程技術:能瞭解你用過的所有的程式內部大致是怎樣的,能用你熟悉的語言編寫大部分的程式,至少不能是對任何一個程式滿頭霧水。

以上這些不難做到,我覺得是基礎中的基礎,我偏激的以為,不能掌握他們就不應該獲得學位。

簡而言之:

  1. 數學課 (機率,統計,微積分等等)
  2. 語言課(java,c++等)
  3. 資料結構和演算法
  4. 電腦網路
  5. 作業系統和編譯原理

其實只要演算法和數學牛,可以吃遍矽谷大多數的IT公司。

具體書籍
  1. Concrete Mathematics  具體數學,絕對是電腦科學的數學基礎“之一”,國內的電腦科學跟不上國外的一大原因,我始終認為是數學上的差距。
  2. Introduction to Algorithms 演算法導論,所有的程式都需要演算法作為基礎,所以演算法是不得不學的。
  3. Introduction to Computer Science and Programming 整體的介紹了電腦,同時也讓學生瞭解CS能幹嘛,自己該幹嘛。
  4. Operating System Engineering 作業系統的重要性不言而喻,同時也介紹了編譯器。
  5. Network 網路編程,中國 大學的本科生們有多少能熟練於網路編程。當今又有多少程式不需要考慮到網路。

有時候問自己幾個問題:

  • 當你學完各種數學、原理、演算法之後,你能用這些知識解決什麼問題?
  • 你能開發出什麼應用或系統嗎?你具備多強的開發能力?
  • 是更多人對這個專業更感興趣了,還是心生厭倦、恐懼、甚至放棄了?
  • 大學畢業到現在,還有多少知識你還記著?有多少還在用?

其實能解決問題的課程才是最重要的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.