摘要:計算機科學與技術專業學生既要掌握基礎知識,還要掌握當下主流技術。許多大學把大數據和云計算技術納入到計算機科學與技術本科專業的軟件課程體系中,而軟件課程體系是計算機科學與技術本科專業的三大專業課程體系之一,且居于核心位置。對軟件課程體系內容進行了探索性整合,尋求它們內在的統一性,為軟件課程的創新改革提供方法上的指導和依據,促進教學效果的改進,以提高學生專業能力。
關鍵詞:軟件課程體系;教學改革;計算機科學與技術專業;大數據;云計算
DOIDOI:10.11907/rjdk.172675
中圖分類號:G433
文獻標識碼:A 文章編號:1672-7800(2017)012-0235-03
Abstract:Computer science and technology undergraduate students should master basic knowledge and mainstream technology.Many universities have big data and cloud computing technology into the undergraduate curriculum system of software of the computer science and technology, and software course system is computer science and technology one of the three professional undergraduate course system, and the core position.For exploratory software on the curriculum content integration, to seek the unity of their inherent for innovation of software course reform provide methodological guidance and basis, to improve teaching effect, ultimately achieve the improvement of students' professional ability.
Key Words:software course system; teaching reform; computer science and technology; big data; cloud computing
0 引言
大數據和云計算技術正深刻地改變我們社會、經濟方方面面[1]。大數據和云計算是計算機軟件體系的數據與計算兩大核心內容。計算機科學與技術專業、軟件工程專業均設置了軟件課程體系,軟件課程體系的改革與創新包括課程設置、課程內容、課程特點以及課程教學改革。增加大數據、云計算及相關具有特色的融合性課程,以適應計算機技術的發展和社會經濟需求。根據專業培養的目的和能力要求,結合當下主流技術,統一融入軟件課程體系,確立各門課程的地位和作用,以培養學生的計算思維能力。
1 軟件及課程體系解析
軟件技術已經發展到大數據和云計算,但基礎技術仍是數據與計算,兩者彼此獨立,相互交融。在計算機科學中,數據(data)指所有能輸入到計算機并被計算機程序處理的符號的介質總稱,為具有一定意義的數字、字母、符號和模擬量等。算法(Algorithm)指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,用系統的方法描述解決問題的策略機制。計算機經典公式為:程序=數據結構+算法[2],將該公式擴展為:軟件=數據+加工處理,可以把所有軟件層次抽象為統一形式,即數據(實體)與加工處理。不同層面的數據實體對應不同的加工處理規則,就如同現實的物理界一樣,微觀世界、中觀世界與宏觀世界的實體不一樣,運動的規則也不一樣。這里數據是廣義上的數據。數據包括數據項、數據結構、數據庫、大數據。數據本身具有自含的加工處理,如數據類的基本運算、對象數據的操作、數據結構的基本操作、數據庫基于模型的標準操作、大數據的Map-Reduce計算模型,這些自含的加工處理也稱為基本運算。廣義的加工處理包含數據的基本運算和外部加工,狹義的加工處理只是數據的外部加工。數據加工分為內存數據直接加工和外存數據間接加工。
“軟件=數據+加工處理”將課程體系劃分為軟件代碼世界、軟件模型世界與軟件系統世界,如圖1所示。
1.1 軟件代碼世界
代碼程序以語言、偽語言、框圖語言等方式展現,這個層次中的數據主要是各種基本類型數據、數據結構、對象數據,以內存形式表現。程序設計課程的核心內容是以常量、變量為主要形式的內存數據,以及加工處理這些數據的結構化過程或函數。程序就是加工處理和數據的有機組合體[3]。面向對象程序設計課程一方面把對象作為內容的數據;另一方面以方法、繼承、多態、消息傳遞、關系等方式處理加工這些對象數據[4]。編譯課程內容是把加工處理由計算機高級語言處理方式轉換成計算機低級語言處理方式。
1.2 軟件模型世界
把軟件系統需求映射到軟件代碼的過渡和中間層次稱為軟件模型世界,以圖、表、數學符號等形式表達這種中間層面實體[5]。
1.3 軟件系統課程
數據庫課程內容:以關系型為主的數據庫原理以及自含sql語言查詢應用[6]。軟件工程課程是以業務需求、階段、方法等方式處理加工外部數據[7]。大數據課程圍繞大數據的分布式數據文件以及數據處理模式展開。云計算課程:圍繞基于互聯網的相關服務,提供動態易擴展且經常是虛擬化的資源。
“軟件=數據+加工處理”使整個軟件課程體系整體上統一,且該統一性基于軟件及課程體系的不同層次,使不同的軟件課程有著高度的一致性和關聯性[8]。endprint
2 軟件課程改革指導思想
根據對軟件及課程體系解析,筆者認為所有課程均應圍繞數據和加工處理兩條主線來展開內容。不同的課程中,針對其所處軟件世界的不同層次和側重,數據與加工處理不同,其相互關聯、相互作用的方式也不相同[9]。
2.1 程序設計課程
程序設計課程內容處于軟件底層,按“軟件=數據+加工處理”的公式具體化為“程序=數據+算法”展開該課程內容[1]。
首先,展開數據主線,對常數、常量、變量、數據類型、數組、指針等內存數據,圍繞表達式、數據說明語句以及程序,分析程序中的數據部分。內存變量一定要重點強調內存特點及運算特性。例如int x 語句,首先分析x變量,就是分析變量x對存儲單元的指示,從軟件角度掌握內部存儲單元。存儲單元是根據地址標識實施存儲單元內容的操作;存儲單元具有讀與寫兩種基本操作,讀取后其內容不變,寫入則其內容以新抵舊;再分析int x 語句中 除了定義x是一個變量,int也是一個類型:確定存儲單元的長度;類型確定了有哪些基本運算。其次,展開算法主線,以語言中的操作語句及算法來分析數據的加工處理過程。例如:該循環結構是通過語句的操作對語句中的數據進行加工,該循環結構〔表達式〕就是控制語句部分的前提條件。操作類語句有兩個作用:加工數據語句。該類語句把數據與對數據的操作融入統一的整體;控制過程語句:該類語句控制語句方向和過程。最后,明確程序設計就是用算法來加工處理數據,以完成任務。把上述兩條主線分析清楚后,程序也就是兩條主線按任務的有機融合。
2.2 軟件工程課程
軟件工程課程處于軟件世界中的頂層即軟件系統層次。
首先,展開數據主線,該數據主線以外部數據(或是文件或是數據庫)作為內容數據。以需求階段為例,分析數據流、數據字典等,從動與靜、整體與局部來全面描述系統所需數據。
其次,以業務需求、階段、方法等處理加工方式,對這些外部數據進行加工處理。以需求階段為例,分析業務系統的各種功能需求、性能需求、安全需求等。
最后,明確軟件工程就是用業務系統加工處理外部數據,達到軟件系統目標。以需求階段為例,數據需求與業務系統需求相互聯系、相互作用,共同構成需求階段的全部內容。
2.3 數據背景與加工處理背景
有些課程內容雖然表面只歸屬于“軟件=數據+加工處理”中的一個方面,但實質上卻有另一方面的內容。例如,建模課程,其內容是把軟件系統需求映射到軟件代碼的中間層次,處于軟件模型世界層次中,以圖、表、數學符號等形式表達這種面向功能的中間層面實體。盡管沒有涉及到數據,但在其背景數據下理解建模的意義和應用會更深刻和全面。數據庫課程狹義上包含sql語言的加工處理,廣義上包含業務系統的加工處理[10]。
3 結語
當前計算機新技術不斷涌現,大學教育也要與時俱進,以創新視角去思考。從軟件及課程體系特點去劃分內容,統一共性,學生既能在整體上掌握軟件及課程體系的本質,又能在此基礎上把握各門課程特點和內在聯系,從而實現專業培養目標。
參考文獻:
[1] ANAND RAJARAMAN,JEFFREY DAVID ULLMAN.互聯網大規模數據挖掘與分布處理[M].王斌,譯.北京:人民郵電出版社,2012:1-7.
[2] 殷人昆.數據結構(C語言描述)[M].北京:機械工業出版社,2013:5-21.
[3] 蘇小紅,王宇穎.C語言程序設計[M].第3版.北京:高等教育出版社,2017: 5-8.
[4] 鄭宇軍 .C#面向對象程序設計[M].第2版.北京:人民郵電出版社,2015:2-4.
[5] 牛麗平.ULM面向對象程序設計與分析基礎教程[M].北京:清華大學出版社,2016:5-15.
[6] 薩師煊,王珊.數據庫系統概論[M].北京:高等教育出版社,2010:45-78.
[7] 張海藩.軟件工程導論[M].北京:清華大學出版社,2000:5-21.
[8] 楊正武.基于閱讀分析程序的程序設計教學方法[J].軟件導刊,2013(10):176-178.
[9] 連玉明.大數據[M].北京:團結出版社,2017:20-25.
[10] 湯庸,葉小平.高級數據庫技術與應用[M].北京:高等教育出版社,2011.
(責任編輯:杜能鋼)endprint