計算機學院和軟件學院

現在計算機類專業是現在最熱門的專業,基本都是各學校的最高分。在報考的時候,也有考生會問,計算機科學與技術和軟件工程的區別在哪裏?因爲高校的志願填報中,軟件工程、計算機科學與技術這兩個是分開的。

在教育部的專業目錄裏,除了計算機科學與技術、軟件工程外,還有網絡工程、信息安全等專業。不過,這些專業基本和計算機科學與技術放在同一個計算機學院或者計算機系,只是細分專業。

軟件工程一般在軟件學院。軟件工程本來也屬於計算機類學科,爲什麼要單獨分開呢?主要是因爲有一批院士,比如清華的孫家廣院士等,覺得軟件工程非常重要,而且偏重實踐,教學跟普通的計算機類學科不一樣,所以要單獨安排課程,單獨開設學院。尤其軟件工程需要實踐,培養經費要求多,所以軟件學院的學費要高於計算機學院。本科4年,軟件學院前兩年學費跟其他學院的一樣,到後兩年,學費是計算機學院的2倍以上。在2001年,國家第一批開設了35所示範性的軟件學院。

現在信息安全也是這個趨勢,國家認爲信息安全非常重要,沒有互聯網時代,講的是領空、領海,現在有互聯網的陣地,對於個人和公司來說,信息安全也是人身安全、財產安全的重要組成部分,所以現在高校裏面信息安全單獨開設學院的越來越多,像武大和華科大都有信息安全學院。

前面講的是兩個專業的行政關係,那具體這兩個專業有什麼區別呢?

計算機科學與技術

大家看專業名稱,裏面包含了“科學”、“技術”這兩個詞。在專業名稱中,“科學”一般指理論,“技術”一般指應用實踐。計算機科學與技術就是跟計算機相關的科學理論和應用實踐,包括了計算機的硬件、軟件,其實軟件工程、信息安全等全部包括在計算機科學與技術裏面。

計算機相關的理論有數學、信息論,控制論等。這裏面每個還都可以展開。像數學有數理邏輯、組合數學、概率、圖論、拓撲。現在因爲智能化,連續數學的內容也不少,傅里葉分析、小波分析、泛函等。在信息安全方面,數學要求更高,需要數論知識……

計算機的硬件知識則包括計算機的組成結構、計算機網絡等。軟件包括計算機編譯原理、操作系統、數據結構、數據庫理論、程序設計等等。

一句話,計算機科學與技術就是個大籮筐,所有跟計算機相關的都可以裝在裏面。4年要學這麼多,肯定是不可能,所以本科學習,要麼學得不夠深,要麼挑一個方向學。

具體的課程,我以清華大學計算機系的課程爲例,專業基礎課和專業課有:

高級語言程序設計、離散數學、數據結構、信號處理原理、系統分析與控制、數字邏輯、人工智能導論、微計算機技術、操作系統、彙編語言程序設計、計算機原理、計算機系統結構、編譯原理、計算機網絡等。

軟件工程

軟件工程是計算機科學與技術的一個分支,主要是用工程化的方式來構建、維護軟件。現在的軟件除了少量的軟件以外,大部分都是大型軟件,幾十、幾百甚至上千人來開發一個軟件,除了懂語言、算法之外,大家還需要一定的組織和規範。這個跟幾千人造房子一樣,要分工、協調,還需要質檢。

所以,軟件工程的學習就是要學習軟件開發的整個過程,包括需求分析、設計、實現、測試和維護。軟件工程當然還要熟悉不同的軟件開發語言、不同的開發環境,還有不同類型的軟件。

具體的課程,我還是以清華大學軟件學院的課程爲例,從下面的課程來看,跟計算機系的課程區別很少,也就有一兩門專業課的不同。

程序員

因此,從課程來看,軟件工程比計算機科學與技術稍微多一兩門軟件開發方面的課。但這些課程能讓這兩個專業的學生有本質區別嗎?根本不可能。一般公司也從不區分這兩個專業的學生,只要通過公司的考試,這兩個專業的學生沒任何區別。

不要說是這兩個專業,我認識不少物理專業的學生,也轉行做了程序員,現在已經是資深專家。能否成爲程序員不能單靠學校的這點課程,而是要靠自己不斷學習,不斷去實踐,才能成爲一位好的程序員。

相關文章