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