馬竹根
摘 要: 探討了數(shù)據(jù)庫(kù)原理與應(yīng)用課程教學(xué)中培養(yǎng)學(xué)生計(jì)算思維的問(wèn)題,分析了數(shù)據(jù)庫(kù)原理與應(yīng)用課程中所體現(xiàn)的計(jì)算思維。在課程教學(xué)過(guò)程中,將計(jì)算思維培養(yǎng)滲透到教學(xué)內(nèi)容中,通過(guò)使用CDIO工程教學(xué)方法進(jìn)行課程實(shí)踐教學(xué),強(qiáng)化對(duì)學(xué)生的計(jì)算思維能力的培養(yǎng)。
關(guān)鍵詞: 計(jì)算思維; CDIO; 數(shù)據(jù)庫(kù)原理; 教學(xué)方法
中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2016)01-91-03
Teaching of database principle and application course based on
CDIO and computational thinking
Ma Zhugen
(School of computer science and engineering, Huaihua University, Huaihua, Hunan 418008, China)
Abstract: Cultivation of computational thinking ability in teaching of database principle and application course is discussed; the computational thinking embodied in the course is analyzed in this paper. In the process of teaching, the training of computational thinking is seeped into the teaching content, and the cultivation of student's computational thinking ability is strengthened by using the CDIO engineering teaching method.
Key words: computational thinking; CDIO; database principle; teaching method
0 引言
在計(jì)算機(jī)科學(xué)中,數(shù)據(jù)庫(kù)技術(shù)是十分重要且發(fā)展迅速的一個(gè)分支,在應(yīng)用上遍及各個(gè)行業(yè)?!皵?shù)據(jù)庫(kù)原理與應(yīng)用”課程的重要性也日益顯現(xiàn),課程要求學(xué)生掌握數(shù)據(jù)庫(kù)的基本原理和數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)與維護(hù)。計(jì)算思維是學(xué)生應(yīng)該具備的一種核心能力,作為控制、管理、認(rèn)知活動(dòng)的基礎(chǔ),能夠幫助學(xué)生提高在各個(gè)學(xué)科領(lǐng)域解決問(wèn)題的能力[1]。陳國(guó)良院士指出:“在大學(xué)中,計(jì)算思維不僅能振興大學(xué)計(jì)算教育,而且會(huì)令科學(xué)與工程領(lǐng)域創(chuàng)造出革命性的研究成果”[2]。計(jì)算思維是培養(yǎng)學(xué)生創(chuàng)新能力的一個(gè)重要方面,有助于正確理解計(jì)算和計(jì)算機(jī)。在數(shù)據(jù)庫(kù)原理與應(yīng)用課程教學(xué)中引入計(jì)算思維的理念,探索培養(yǎng)計(jì)算思維能力的教學(xué)模式,對(duì)提高教學(xué)質(zhì)量,培養(yǎng)出時(shí)代發(fā)展所需要的創(chuàng)新性人才具有重要的意義。
1 計(jì)算思維與CDIO工程教育模式
計(jì)算思維的概念是美國(guó)卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)系主任周以真教授于2006年首次提出的,計(jì)算思維定義為:運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)和人類(lèi)行為理解等廣泛涵蓋計(jì)算機(jī)科學(xué)的一系列思維活動(dòng),其本質(zhì)是抽象和自動(dòng)化;如同所有人都具備“讀、寫(xiě)、算”能力一樣,計(jì)算思維也是所有人都必須具備的一種思維能力[3]。周以真教授指出,計(jì)算思維的核心概念可用外延的形式給出,如約簡(jiǎn)、嵌入、轉(zhuǎn)化、仿真、遞歸、并行、抽象、分解、建模、預(yù)防、保護(hù)、恢復(fù)、冗余、容錯(cuò)、糾錯(cuò)、啟發(fā)式推理、規(guī)劃、學(xué)習(xí)、調(diào)度等[4]。
為了在數(shù)據(jù)庫(kù)教學(xué)中融入計(jì)算思維教學(xué),我們主要從課堂教學(xué)和實(shí)踐教學(xué)兩個(gè)方面探討。在教學(xué)過(guò)程中,貫穿抽象和自動(dòng)化的思想,從計(jì)算思維層面對(duì)課程內(nèi)容中蘊(yùn)含的計(jì)算思維方法進(jìn)行分析和梳理,根據(jù)講授的具體知識(shí)點(diǎn)適時(shí)引入計(jì)算思維中的抽象、自動(dòng)化、分解、規(guī)約、冗余、約簡(jiǎn)、關(guān)注點(diǎn)分離、折中、嵌入、 轉(zhuǎn)化、 保護(hù)、容錯(cuò)、糾錯(cuò)和恢復(fù)等基本概念和思維方法,引導(dǎo)學(xué)生領(lǐng)會(huì)計(jì)算思維的方法。計(jì)算思維是以設(shè)計(jì)和構(gòu)造為特征,因此在實(shí)踐環(huán)節(jié)中,應(yīng)結(jié)合CDIO工程教學(xué)方法,即構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)行(Operate)[5],讓學(xué)生開(kāi)發(fā)一個(gè)小型的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。實(shí)踐環(huán)節(jié)中,學(xué)生通過(guò)獨(dú)立或者小組協(xié)作的方式運(yùn)用計(jì)算思維的系列方法解決實(shí)際問(wèn)題,從中探索解決問(wèn)題的方法,發(fā)現(xiàn)問(wèn)題的本質(zhì),提高其獨(dú)立思考問(wèn)題和解決問(wèn)題的能力,最終培養(yǎng)學(xué)生的計(jì)算思維能力和創(chuàng)新思維能力。
2 課堂教學(xué)中引入計(jì)算思維
“數(shù)據(jù)庫(kù)原理與應(yīng)用”是一門(mén)討論如何設(shè)計(jì)和構(gòu)造數(shù)據(jù)庫(kù)系統(tǒng)的課程,課程教學(xué)內(nèi)容主要包括關(guān)系數(shù)據(jù)庫(kù)、SQL基礎(chǔ)、數(shù)據(jù)庫(kù)的安全性和完整性、關(guān)系數(shù)據(jù)理論、數(shù)據(jù)庫(kù)編程、數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)和并發(fā)控制等[6],其中很多知識(shí)點(diǎn)都蘊(yùn)含計(jì)算思維方法。課堂教學(xué)中要將有關(guān)計(jì)算思維的思維特征和方法分解到一個(gè)個(gè)具體的知識(shí)點(diǎn)中,在教學(xué)中表述出各知識(shí)點(diǎn)對(duì)應(yīng)的計(jì)算思維核心概念,讓學(xué)生在學(xué)習(xí)知識(shí)的同時(shí),逐步理解和掌握計(jì)算思維,通過(guò)滲透和強(qiáng)化這些核心概念,讓學(xué)生將這些核心概念內(nèi)化成自己的知識(shí)。下面主要從抽象、自動(dòng)化、遞歸、分解、規(guī)約、冗余、約簡(jiǎn)、關(guān)注點(diǎn)分離、折中、預(yù)防、保護(hù)、容錯(cuò)、糾錯(cuò)和恢復(fù)等方面分析數(shù)據(jù)庫(kù)原理課程中蘊(yùn)含的計(jì)算思維。
2.1 抽象和自動(dòng)化
計(jì)算思維的本質(zhì)是抽象和自動(dòng)化[7]。建立關(guān)系數(shù)據(jù)模型是一個(gè)抽象的過(guò)程,而將關(guān)系模式實(shí)現(xiàn)為基本表并運(yùn)用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)查詢(xún)、修改、刪除和數(shù)據(jù)完整性控制的過(guò)程就是一個(gè)自動(dòng)化的過(guò)程,因此在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中貫穿了計(jì)算思維。另外,數(shù)據(jù)庫(kù)管理系統(tǒng)提供的一些管理工具,如表設(shè)計(jì)器、視圖設(shè)計(jì)器等,使得用戶(hù)不用編寫(xiě)復(fù)雜的程序語(yǔ)句就能創(chuàng)建表和視圖,也體現(xiàn)了計(jì)算思維中自動(dòng)化的思想。
數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)過(guò)程分為需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)行與維護(hù)等幾個(gè)階段,不同階段包含了不同層次的抽象。需求分析階段收集用戶(hù)的需求信息,用數(shù)據(jù)流圖和數(shù)據(jù)字典描述用戶(hù)需求,就是對(duì)現(xiàn)實(shí)世界的抽象。概念模型設(shè)計(jì)階段,在需求分析的基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行“分類(lèi)”、“聚集”和“概括”等抽象處理,用實(shí)體聯(lián)系圖描述概念模型。邏輯設(shè)計(jì)階段,用關(guān)系模式表示實(shí)體,用關(guān)系模型表示數(shù)據(jù)庫(kù)的數(shù)據(jù)模型。實(shí)現(xiàn)階段,在定義表時(shí),表中字段數(shù)據(jù)類(lèi)型是對(duì)實(shí)際數(shù)據(jù)的抽象,字段的有效規(guī)則是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)約束的抽象。
在教學(xué)過(guò)程中不僅要講述數(shù)據(jù)庫(kù)設(shè)計(jì)相關(guān)知識(shí),還要引導(dǎo)學(xué)生領(lǐng)悟計(jì)算思維中抽象的思想和方法,體會(huì)抽象的方法在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的作用。
2.2 分解、遞歸、規(guī)約、冗余和約簡(jiǎn)
在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),將整個(gè)設(shè)計(jì)任務(wù)按步驟分為:分析、設(shè)計(jì)、實(shí)施和維護(hù)等幾個(gè)不同階段,每個(gè)階段完成相關(guān)任務(wù),將復(fù)雜的設(shè)計(jì)任務(wù)分解成容易實(shí)現(xiàn)的子任務(wù),這就是計(jì)算思維中“分解”思想的應(yīng)用。關(guān)系規(guī)范化理論中通過(guò)分解關(guān)系模式由低級(jí)范式向高級(jí)范式進(jìn)行轉(zhuǎn)換,也體現(xiàn)了計(jì)算思維中“分解”的思想。當(dāng)一個(gè)復(fù)雜問(wèn)題的每一個(gè)局部與全局高度相似時(shí),就容易設(shè)計(jì)出遞歸算法,從而實(shí)現(xiàn)求解方法的自動(dòng)化,這是計(jì)算思維中的“遞歸”邏輯。例如關(guān)系數(shù)據(jù)理論中把一個(gè)關(guān)系模式分解為BC范式集合的問(wèn)題就是一個(gè)遞歸問(wèn)題。
數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)的過(guò)程中需求分析有兩種策略:自上而下和自下而上的方法。其中,自上而下的方法從整體出發(fā),先定義全局結(jié)構(gòu),然后逐步細(xì)化。由于系統(tǒng)是由相互聯(lián)系的部分組成的,可根據(jù)用戶(hù)需求,采用“抽象”、“分解”、“規(guī)約”和“冗余”等思維方法對(duì)其進(jìn)行構(gòu)造。自下而上的方法,先定義各局部結(jié)構(gòu),然后將它們集成起來(lái),得到全局的概念結(jié)構(gòu),采用的是“聚類(lèi)”、“約簡(jiǎn)”、“冗余”等思維方法。
2.3 關(guān)注點(diǎn)分離和折中
數(shù)據(jù)庫(kù)管理系統(tǒng)中三級(jí)模式和二級(jí)映像保證數(shù)據(jù)的邏輯獨(dú)立性和物理獨(dú)立性,使得應(yīng)用程序與數(shù)據(jù)相互獨(dú)立,體現(xiàn)了計(jì)算思維“關(guān)注點(diǎn)分離”的思想。
設(shè)計(jì)關(guān)系模型時(shí),考慮數(shù)據(jù)的存儲(chǔ)和訪(fǎng)問(wèn)效率,為避免因訪(fǎng)問(wèn)多個(gè)表而使效率降低,允許表中部分?jǐn)?shù)據(jù)冗余,體現(xiàn)了一種折中的思想。對(duì)數(shù)據(jù)表創(chuàng)建索引,有助于快速查找和排序記錄,但是過(guò)多的索引又會(huì)降低速度,而且創(chuàng)建索引會(huì)占用一定的物理存儲(chǔ)空間。因此,創(chuàng)建索引時(shí)就需要權(quán)衡時(shí)間效率和存儲(chǔ)空間占用問(wèn)題,這就體現(xiàn)了計(jì)算思維中的“折中”思想。
2.4 預(yù)防、保護(hù)、容錯(cuò)、糾錯(cuò)和恢復(fù)
在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)管理系統(tǒng)提供了良好的安全措施、備份和恢復(fù)技術(shù)。數(shù)據(jù)庫(kù)管理系統(tǒng)能夠?qū)κ聞?wù)、系統(tǒng)故障和介質(zhì)故障進(jìn)行恢復(fù)。通過(guò)身份認(rèn)證和授權(quán)保護(hù)數(shù)據(jù)不被非法使用;提供實(shí)體完整性、參照完整性和用戶(hù)自定義完整性三類(lèi)完整性約束來(lái)保證數(shù)據(jù)的完整性和一致性,在用戶(hù)更新、刪除和添加數(shù)據(jù)時(shí),防止不合法的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)。
通過(guò)這些知識(shí)點(diǎn)的教學(xué),結(jié)合一些日常生活中的實(shí)例,引導(dǎo)學(xué)生認(rèn)識(shí)這些計(jì)算思維方法的重要性,在掌握數(shù)據(jù)庫(kù)知識(shí)的同時(shí),掌握基本的計(jì)算思維方法,能夠自覺(jué)地運(yùn)用計(jì)算思維方法解決實(shí)際問(wèn)題。
3 實(shí)踐教學(xué)中引入CDIO工程教育方法
計(jì)算思維是以設(shè)計(jì)和構(gòu)造為特征,在實(shí)踐教學(xué)環(huán)節(jié)中,結(jié)合CDIO工程方法,以計(jì)算思維為核心,以項(xiàng)目為主線(xiàn)組織實(shí)踐教學(xué),引導(dǎo)學(xué)生學(xué)習(xí)運(yùn)用“計(jì)算機(jī)系統(tǒng)的思維方法”設(shè)計(jì)和構(gòu)造一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),運(yùn)用計(jì)算思維方法獨(dú)立或協(xié)作的分析問(wèn)題和解決問(wèn)題,發(fā)現(xiàn)問(wèn)題的本質(zhì),促使學(xué)生深刻理解計(jì)算思維的基本方法,達(dá)到鞏固知識(shí)和內(nèi)化知識(shí)的目的。
在實(shí)驗(yàn)教學(xué)過(guò)程中將數(shù)據(jù)庫(kù)項(xiàng)目的構(gòu)思、設(shè)計(jì)、實(shí)施和運(yùn)用貫穿于實(shí)踐教學(xué),讓學(xué)生從解決問(wèn)題出發(fā),培養(yǎng)和訓(xùn)練計(jì)算思維,掌握解決問(wèn)題的途徑。實(shí)驗(yàn)教學(xué)以開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)為目標(biāo),以數(shù)據(jù)庫(kù)項(xiàng)目分析→設(shè)計(jì)數(shù)據(jù)庫(kù)→建立數(shù)據(jù)庫(kù)→管理數(shù)據(jù)庫(kù)→項(xiàng)目編程為主線(xiàn),將一個(gè)完整的系統(tǒng)開(kāi)發(fā)任務(wù)分解成幾個(gè)前后銜接的實(shí)驗(yàn)任務(wù),這本身也是計(jì)算思維“分解”思想的應(yīng)用。按照CDIO模式將數(shù)據(jù)庫(kù)實(shí)驗(yàn)分為七個(gè)實(shí)驗(yàn),將這七個(gè)實(shí)驗(yàn)融合在一個(gè)具體的項(xiàng)目中,按照時(shí)間的先后順序?qū)嵤?shí)驗(yàn)項(xiàng)目設(shè)計(jì)如圖1所示。
基于項(xiàng)目的構(gòu)思、設(shè)計(jì)、實(shí)施與操作的各個(gè)階段實(shí)施內(nèi)容如下。
⑴ 構(gòu)思階段。在構(gòu)思階段教師引導(dǎo)學(xué)生在分配的項(xiàng)目中發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,提供相似的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)教學(xué)案例幫助學(xué)生建立分析問(wèn)題的思路,并且培養(yǎng)學(xué)生的團(tuán)隊(duì)合作及溝通能力。
⑵ 設(shè)計(jì)階段?;陧?xiàng)目的構(gòu)思結(jié)果,進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)的概念模型設(shè)計(jì),利用數(shù)據(jù)庫(kù)建模工具完成E-R模型和數(shù)據(jù)庫(kù)邏輯設(shè)計(jì),引入規(guī)范化理論去除不良函數(shù)依賴(lài),同時(shí)進(jìn)行數(shù)據(jù)庫(kù)完整性設(shè)計(jì)及物理設(shè)計(jì)。
⑶ 實(shí)施階段?;陧?xiàng)目的設(shè)計(jì)結(jié)果,將數(shù)據(jù)庫(kù)物理設(shè)計(jì)的成果轉(zhuǎn)換成SQL數(shù)據(jù)定義語(yǔ)言,如創(chuàng)建表、視圖、索引等對(duì)象。在基表上運(yùn)行插入、刪除、更改等SQL命令,并進(jìn)行各種查詢(xún)功能測(cè)試。此外,對(duì)需要統(tǒng)計(jì)或復(fù)雜計(jì)算的數(shù)據(jù)處理,設(shè)計(jì)存儲(chǔ)過(guò)程和函數(shù);采用觸發(fā)器維護(hù)自定義規(guī)則、完整性控制等功能;掌握權(quán)限、角色、用戶(hù)管理以及數(shù)據(jù)庫(kù)備份與恢復(fù)的技術(shù)。
⑷ 操作階段?;谇傲螌?shí)驗(yàn)的成果,結(jié)合程序設(shè)計(jì)語(yǔ)言(java、C#),設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用界面,編寫(xiě)相應(yīng)的程序項(xiàng)目進(jìn)行驗(yàn)證與測(cè)試,記錄下出現(xiàn)問(wèn)題并分析原因,進(jìn)行小組討論、改進(jìn)、反饋和交流。
在基于CDIO的實(shí)踐環(huán)節(jié)中,學(xué)生在設(shè)計(jì)和構(gòu)造系統(tǒng)的過(guò)程中了解計(jì)算機(jī)能做什么,不能做什么,學(xué)會(huì)選取合適的模型反映求解的問(wèn)題,掌握如何將一個(gè)復(fù)雜的問(wèn)題分解成簡(jiǎn)單問(wèn)題的思維方法,并從中體會(huì)到計(jì)算思維的功用。
4 結(jié)束語(yǔ)
本文探討了將計(jì)算思維與CDIO工程教育模式相結(jié)合,在課堂教學(xué)中引入計(jì)算思維,實(shí)踐教學(xué)中采用CDIO工程教育模式,訓(xùn)練和培養(yǎng)學(xué)生的計(jì)算思維能力,提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力和創(chuàng)新能力。實(shí)踐教學(xué)表明,在數(shù)據(jù)庫(kù)課程中引入計(jì)算思維和工程教育模式,教學(xué)效果明顯提高。從所培養(yǎng)的畢業(yè)生來(lái)看,計(jì)算機(jī)專(zhuān)業(yè)的畢業(yè)生受到用人單位好評(píng), 普遍反映學(xué)生基礎(chǔ)扎實(shí)、能力強(qiáng)、專(zhuān)業(yè)素質(zhì)高,社會(huì)對(duì)我們培養(yǎng)的畢業(yè)生非常認(rèn)可。隨著計(jì)算思維和工程教育模式的深入研究,以此為改革方向的數(shù)據(jù)庫(kù)原理課程教學(xué),將在培養(yǎng)計(jì)算機(jī)專(zhuān)業(yè)創(chuàng)新人才進(jìn)程中取得更大的成效。
參考文獻(xiàn)(References):
[1] Wing J M. Computational thinking[J]. Communications of
the ACM,2006.49(3):33-35
[2] 陳國(guó)良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國(guó)大
學(xué)教學(xué),2011.1:7-11,32
[3] 周煒.計(jì)算思維與“數(shù)據(jù)庫(kù)原理及應(yīng)用”課程[J].計(jì)算機(jī)工程
與科學(xué),2014.36(A1):110-113
[4] 周以真.計(jì)算思維[J].中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2007.3(11):
83-85
[5] 顧佩華,沈民奮,陸小華.重新認(rèn)識(shí)工程教育:國(guó)際CDIO培養(yǎng)
模式與方法[M].高等教育出版社,2010.
[6] 王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].高等教育出版社,2006.
[7] 董榮勝.計(jì)算思維與計(jì)算機(jī)導(dǎo)論[J].計(jì)算機(jī)科學(xué),2009.36(4):
50-52