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