第一章-第五題(你所在的學校有計算機科學專業和軟件工程專業麼?相關專業的教學計劃和畢業出路有什麼不一樣?閱讀有關軟件工程和計算機科學的區別的文章,談談你的見解。)--By 侯偉婷

  我所在的本科學校和研究生學校都有計算機科學專業和軟件工程專業。具體的教學計劃無從獲得,因此此狀況無從對比,可是我從本科教務處網站找到了計算機科學專業和軟件工程專業有關專業方面的課程,現列表以下。算法

             表格1 計算機科學和軟件工程專業與專業相關課程數據庫

計算機科學專業編程

軟件工程專業設計模式

程序設計基礎(C語言)安全

計算機編程引論(C語言)服務器

計算機導論網絡

Java程序設計數據結構

面向對象程序設計(C++)框架

邏輯與數字系統編程語言

數據結構

VB.NET程序設計

電路原理

面向對象程序設計

計算理論

計算機組成原理

彙編語言程序設計

C++程序設計

電子技術

用戶界面設計與評測

算法設計與分析

計算機網絡

可視化程序設計技術基礎(雙語)

HTML與JavaScript技術

接口技術

操做系統

編譯原理

數據結構

計算機網絡

數據庫原理

數字系統設計

數學建模

計算機組成原理

軟件創新方法與實例

Java語言及程序設計

通訊概論

計算機圖形學

Linux操做系統

數字系統設計

移動互聯導論

信息安全基礎

軟件體系結構與設計模式

計算機體系結構

編譯方法

軟件工程

軟件工程

人工智能

主機系統導論

操做系統

算法分析與設計

嵌入式系統及其應用

分佈式系統導論

文本智能處理技術

Java框架與組件技術

軟件建模技術

軟件需求分析與設計

信息安全基礎

分佈式組件與Web服務

計算機體系結構

混沌分形導論

網絡編程技術

COBOL語言程序設計

多媒體技術

語義Web導論

Linux操做系統分析

主機CICS交易系統

智能數據與知識工程

嵌入式軟件開發技術

 

人工智能導論

 

雲計算核心技術

 

分佈式組件與Web服務

 

移動應用開發技術

 

軟件測試技術

 

高性能計算導論

 

企業級服務器系統導論

 

服務工程方法論

 

軟件服務與雲計算案例分析

 

信息檢索

 

新技術講座

 

服務工程方法論

 

電信行業市場營銷管理

 

主機數據庫管理系統

 

圖像與多媒體新技術

 

傳感技術與應用

 

合同法與知識產權法

 

軟件過程改進與項目管理

 

  從表格中能夠看出軟件工程的課程不少,可是因爲具體的教學計劃沒法獲得,因此不能具體說明,可是從我本人瞭解獲得其中涉及到了不少專業選修課程和不少方向性課程,因此不免數量會多出不少。可是比較一下學院給同窗設置的預期選修課程和學院鼓勵同窗走向的專業道路上,仍是能夠看出些許不一樣的。計算機科學專業和軟件工程專業中教學計劃中包含了不少相同的計算機基礎的課程,如操做系統、計算機網絡等。可是也存在不少不一樣,如計算機科學專業設置的課程中有軟件工程專業涉及較少的硬件方面的課程,如電路原理、電子技術等,而後也在不少方面更加註重了「技術」的教學。而從軟件工程專業來講,首先是編程語言和計算機基礎課程的教授,使得學生有必定的編程基礎和能力,可是教學方向側重的確是與「人」、「對象」有關的內容。

  這兩個專業畢業後的出路基本可分爲出國、讀研和工做,可是出國和讀研的話,這兩個專業就可能要針對具體狀況具體來講了,由於和研究方向、導師狀況都有很大的關係。而我瞭解到的有關計算機科學專業的工做方面的內容也不太多,就我身邊軟件工程專業的人來講,畢業以後工做的進入的都是一些軟件公司,如蘑菇街、網易、完美世界等,進行技術部編程或者成爲產品經理等。計算機科學專業的話,可能會相對而言對於算法等的瞭解程度相對較深,程序部門也會十分歡迎此專業的人才,可是因爲他們專業也教授到了硬件課程,因此之後的就業面在硬件和編程相結合的公司應該也會是他們的選擇之一。

 

  提到計算機科學和軟件工程的區別,坦白來講,其實我本身尚未思考過這個問題,在本科的時候以爲可能也就是名字不太同樣,畢業以後應該也都是差很少的程序猿,讀過此篇文章以後,我才瞭解到,原來二者之間仍是有很大區別的,下面講述一下個人見解,極可能會不夠全面,觀點膚淺,還望見諒。

  單單看待名字的話,計算機科學重點是在「科學」,軟件工程重點是在「工程」,正如那篇文章的做者提到的,The field is wonderfully clean, with each concept clearly defined, and each result building on earlier proofs1,計算機科學方面的特色就是乾淨,每個方面都被清楚地定義,每個結果都是創建在早期的證實,是具備很輕的邏輯性和很清楚的因果關係的。然而軟件工程確實一門常常用「一般」、「通常來講」這些不肯定性的字眼來描述內容。

  其次,計算機科學的關注點更多的在算法、複雜程度、以及各類理論性、科學性的問題,而這些問題是不受人爲因素的影響的。軟件工程有不少方面是會考慮到「人」的因素的,如與軟件工程相關的可用性,這個方面並非說有什麼標準,而是依靠用戶的使用結果,用戶認爲可用性不佳,則結果可能就會不理想,可能就須要從新設計。

  這些就是我暫時能想到的有關計算機科學和軟件工程的區別,可是我以爲他們兩個相對於區別來講,相互間的緊密聯繫則是更加劇要的,計算機科學的快速發展能夠知足軟件工程中不少的技術問題,而軟件工程中遇到的困難也爲了計算機科學提供了新的課題,也是計算機科學不斷髮展,不斷進步的動力,二者不斷進步,才能夠爲咱們創造出一個更加便捷溫馨的生活。

 

 

 

  參考文獻:

  1. Software Engineering ≠ Computer Science. http://www.drdobbs.com/architectureand-design/software-engineering-computer-science/217701907
相關文章
相關標籤/搜索