我覺得計算機領域的學生應具有以下核心能力:
對計算機科學在技術層面上的理解
畢業生應該對計算機科學有所掌握,具體體現在掌握知識體中的核心部分。
熟悉通用的主題和原則
畢業生需要對一些反復出現的知識點有所理解,如抽象化、復雜性、漸進式改變等,也要對一些通用原則有所掌握,如共享資源、安全性、并發性等。畢業生應該認識到,盡管這些知識點和原則是在介紹某具體知識領域時引入的,但它們在計算機科學領域有著廣泛的應用,并不限于這些具體的知識領域。
對理論與實踐之間的相互作用有所理解
計算機科學的一個基本特點就是要理解理論與實踐的相互作用以及它們之間基本的關聯性。計算機科學專業的畢業生需要了解理論與實踐是如何相互作用的。
系統分層觀點
計算機科學的畢業生需要在多種細節程度、多個抽象層面上思考問題。這種思考方式能夠超脫于各部件實現細節之上,達到對計算機系統整體結構的理解,并理解其組建的過程及分析的過程。他們還需要了解一個計算機系統會在怎樣的環境中運行,會怎樣與人類用戶、物理世界進行交互。
解決問題的能力
畢業生要了解如何運用自己學到的知識來解決實際問題,而不僅僅是編寫代碼或搬動比特位。他們應該能夠對一個系統的功能、實用性、性能等方面做出定量和定性的評估,并能設計和改善此系統。他們應該認識到,對一個給定的問題可能有多種解決方案,做出合理的選擇并不是一個純粹的技術問題,因為這些解決方案將對人們的生活產生真正的影響。畢業生也應該能夠把自己的解決方案向別人做清晰的表述,解釋一個解決方案為什么能解決給定的問題、是怎樣解決了這個問題以及是在什么假設下解決這個問題的。
項目經驗
為確保畢業生能夠成功地應用他們所學到的知識,所有的計算機科學專業畢業生都應該參與過至少一個重要的項目。在大多數的情況下,這個項目可以是一個軟件開發項目,但在特殊情況下,其他方面的項目也是適宜的。這些項目應以激勵學生發揮綜合性能力為主,要求學生對潛在的解決方案進行評估,其規模應大于一般課程下的項目規模。作為項目經驗的一部分,學生應該抓住機會開發和訓練人際交往的溝通能力。
致力于終身學習
畢業生應該認識到,計算機領域的進步速度可以用迅猛來形容,畢業生必須擁有一個堅實的基礎,使得他們能夠而且樂于在領域進步時跟上步伐,保持相關的技能。編程語言和技術平臺會隨時間而改變,因此,畢業生需要認識到在他們的整個職業生涯中,必須不斷地學習和調整他們的技能。要獲得這種能力,學生們應該接觸多種編程語言、工具、范式和技術,并在受教育的全過程中,始終堅持對底層基本原理的學習。此外,與前輩們不同,當代畢業生們需要管理他們自己的職業發展和提升。在尋求職業發展時,畢業生需常常參與專業活動,如獲取認證證書、參加管理培訓及獲得其它領域的知識等。
承擔職業責任
畢業生應該認識到計算學科內含有的社會、法律、倫理和文化問題,他們也必須認識到,不同的國家有不同的社會、法律和道德標準。他們應該熟知,倫理問題、技術問題、審美價值的相互交織,在開發計算系統時將會起到非常重要的作用。從業人員必須了解他們個人和集體所承擔的責任及系統故障可能導致的嚴重后果,但他們也必須了解自己的局限性,以及他們所使用工具的局限性。
溝通和組織能力
畢業生應有能力向各類聽眾解釋清楚技術問題及其解決方案,這可能涉及面對面的、書面的及電子的通信方式。他們應準備好作為團隊的一員進行有效的工作,并能夠管理好自己的學習和發展過程,包括對時間的管理、重點任務的安排及進度的管理等。
對計算廣泛適用性的認識
計算平臺的范圍很廣,小可以到嵌入式微型傳感器,大可以到高性能集群和分布式云計算中心。計算機應用幾乎影響到現代生活的所有方面,畢業生應了解計算技術所有可能的應用方向。
對特定領域知識的鑒賞
畢業生應理解計算技術會與許多不同的領域接觸,很多特定領域內問題的解決同時需要計算技能和特定領域知識。因此,畢業生在其職業生涯里,要能夠與來自不同領域的專家進行交流,并向其學習。