周競文,李莎莎,周海芳
(1.國防科技大學 計算機學院,湖南 長沙 410073;2.復雜系統(tǒng)軟件工程湖南省重點實驗室,湖南 長沙 410073)
數(shù)據(jù)庫技術(shù)是當前數(shù)據(jù)管理的最有效方法,是現(xiàn)代信息基礎(chǔ)設(shè)施的核心技術(shù)之一,在諸多重要領(lǐng)域起著不可替代的作用,因此,成為計算機領(lǐng)域的一個重要分支,也成為計算機專業(yè)及其他相關(guān)專業(yè)人才培養(yǎng)過程中的一個重要環(huán)節(jié),受到各大高校的重視。然而,數(shù)據(jù)庫技術(shù)的特點導致數(shù)據(jù)庫課程,特別是入門課程,在實施過程中面臨一些問題,如數(shù)據(jù)庫技術(shù)既重理論又重實踐,如何平衡理論和實踐課程的問題;數(shù)據(jù)庫技術(shù)涵蓋面廣、部分內(nèi)容難度較大,如何折中課程廣度和深度的問題;在傳統(tǒng)關(guān)系型數(shù)據(jù)庫仍被廣泛使用的同時,數(shù)據(jù)庫新技術(shù)的發(fā)展也日新月異,如何取舍傳統(tǒng)技術(shù)和新技術(shù)的問題等。不同高校對于這些問題的解決有著一些共同的認識,但也存在一些差別。
調(diào)研對象的選取方法如下。
(1)學校:將各高校計算機科學專業(yè)在QS 2018、ARWU 2017、USNEWS 2016的排名相加計算得分,如MIT的計算機專業(yè)在3個排名中均為第1,則得分為3,然后選取得分最小的前8所高校。
(2)課程:選取面向本科生開設(shè)的數(shù)據(jù)庫入門課程,即課程不要求學生預先掌握任何數(shù)據(jù)庫的相關(guān)知識。調(diào)研的8門課程見表1。
(3)學期:在網(wǎng)絡(luò)資料較全面的前提下,選取離當前時間最近的學期。
表1 調(diào)研的課程
調(diào)研課程的基本信息見表2。
從課時安排上看,課時數(shù)最少為15次課(Harvard),最多為29次課(UCB),平均為22.3次課。除課表課時之外,學生還需要在課外花費大量的時間完成課程作業(yè)、閱讀相關(guān)資料、進行討論等。UCB在施教過程中要求學生完成13個普通作業(yè)和5個難度較大的編程作業(yè);Stanford除布置作業(yè)之外,還會布置額外的閱讀材料;MIT每周會安排2~3次教師或教輔答疑討論時間。
表2 課程基本信息
從統(tǒng)計數(shù)據(jù)看,各高校對先導課程的要求不一樣,但一般來說,需要學生熟悉計算機系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、算法等方面的計算機基礎(chǔ)知識,以滿足課程內(nèi)容的需求,如UCLA要求學生熟悉哈希表、樹/圖結(jié)構(gòu)、排序算法、集合論等內(nèi)容。另外,這些課程普遍要求學生具備較好的編程能力,以順利完成課程的相關(guān)作業(yè),如Harvard的作業(yè)之一是編程實現(xiàn)某DBMS的特定功能,故明確要求學生具有“很強的Java編程技巧”。
各課程選用的教材和參考書(標“*”表示推薦的參考書,否則為所用教材)見表3,主要集中為3本:①Database Management Systems(R.Ramakrishnan,J.Gehrke); ②Database Systems:The Complete Book(H.Garcia-Molina,J.D.Ullman,J.Widom);③Database System Concepts(A.Silberschatz,H.F.Korth,S.Sudarshan)。
表3 教材和參考書
除此之外,各課程還會根據(jù)需要選用其他一些相關(guān)書籍,如Harvard使用自編材料、ETHZ使用某德文教材等。另外需指出的是,許多課程在具體施教時方式靈活,不依賴于教材,如UCLA課程網(wǎng)站上指出“雖然本課程教材是學校要求的,但往年很多學生表示不買教材也可以跟上課程”。
各課程在資源發(fā)布、在線交流、提交作業(yè)等方面使用的相關(guān)平臺見表4。
表4 教學平臺
整體上看,國外課程的課程網(wǎng)站做得較好,課程信息、資源、通知等均會在課程網(wǎng)站上發(fā)布,而在在線交流、提交作業(yè)等方面更多的是選用功能成熟的商用平臺,如Piazza、GitHub等。另外,還有些課程會通過平臺發(fā)布課程錄像,如UCB和CMU。通過這些平臺的合理使用,學生能夠及時獲取課程資源,得到相關(guān)反饋,從而保證課程的順利進行。
各課程的成績組成及分值比例見表5。
這些課程的成績一般由普通作業(yè)、編程作業(yè)、期中考試、期末考試等部分組成。編程作業(yè)是指需要學生編程實現(xiàn)的課程項目,如MIT、UCB、Harvard、CMU、Princeton、UCLA 要 求完 成 一 個 DBMS,Stanford、Princeton、UCLA要求實現(xiàn)一個數(shù)據(jù)庫應(yīng)用系統(tǒng)。普通作業(yè)是除編程作業(yè)外的相關(guān)任務(wù),如選擇題、簡答題等。除作業(yè)和考試外,一些課程還包含其他成績,如MIT、Princeton會對學生的課程參與和表現(xiàn)情況進行評分。
從數(shù)據(jù)看,這些課程普遍注重對學生過程性成績的評價,學習過程中的成績(作業(yè)和期中考試)所占分值較大,在67%~80%之間(除ETHZ),而期末考試所占分值較小,僅占20%~33%(除ETHZ),這也反映出這些課程強調(diào)的是對課程內(nèi)容的深入理解和靈活應(yīng)用以及學生能力的培養(yǎng),而不僅僅是知識的傳授。在過程性成績中,各課程對作業(yè)尤為重視,主要反映在6方面。
(1)分值比例大。除ETHZ之外,作業(yè)所占分值均在45%~60%之間。雖然ETHZ的課程成績不包含作業(yè),但是授課教師也會布置大量作業(yè),并在課程網(wǎng)站和課件中多次強調(diào)作業(yè)的重要性,還會對作業(yè)進行答疑和檢查。
表5 成績組成 %
(2)工作量大、難度高。MIT的編程作業(yè)是在給定框架的基礎(chǔ)上實現(xiàn)一個DBMS的數(shù)據(jù)管理、操作符、查詢優(yōu)化、事務(wù)管理、B+樹索引、回滾與恢復等功能,學生需具備良好的編程基礎(chǔ),深入理解課程相關(guān)內(nèi)容,花費大量課余時間才能順利完成。通過這些作業(yè),學生的能力可以得到較大提升,且學生能更好地理解課程內(nèi)容。
(3)覆蓋全面。UCB共有13次普通作業(yè)和5個編程作業(yè),基本每次課的知識點都有課后作業(yè)與之對應(yīng);Princeton的編程作業(yè)包括開發(fā)一個數(shù)據(jù)庫應(yīng)用系統(tǒng),實現(xiàn)一個DBMS的若干功能,研究某些新型數(shù)據(jù)庫技術(shù)等,分別側(cè)重數(shù)據(jù)庫應(yīng)用、底層、新技術(shù)等方面。這些作業(yè)可以促進學生對課上內(nèi)容的理解。
(4)面向?qū)嶋H。許多課程使用的數(shù)據(jù)是來源于實際的真實數(shù)據(jù),且數(shù)據(jù)量較大,從而使學生能更好地將所學內(nèi)容應(yīng)用到實際場景,以便更好地適應(yīng)未來工作,如Stanford要求學生實現(xiàn)一個數(shù)據(jù)庫應(yīng)用系統(tǒng),管理eBay網(wǎng)站上2萬余次拍賣的數(shù)據(jù);UCLA使用的是包含近8萬條記錄的真實電影數(shù)據(jù);CMU使用的一個數(shù)據(jù)集來源于某法庭網(wǎng)站約10年的數(shù)據(jù),涉及200余萬個案件。
(5)評分方式靈活。CMU在規(guī)定作業(yè)之外,還布置了一些拓展作業(yè),供有余力的學生練習,并額外占課程成績的10%;UCB的普通作業(yè)共包括13個小測試,統(tǒng)計得分時會去掉兩個最低分。通過這些措施,可以提高學生對待作業(yè)的積極性和認真程度。
(6)鼓勵討論、禁止抄襲。幾乎所有課程在課程網(wǎng)站上進行聲明,如Harvard的課程網(wǎng)站上專門有一個網(wǎng)頁用于說明該問題,里面列出了所禁止的抄襲行為和相應(yīng)的處罰措施;MIT指出會使用軟件對作業(yè)進行查重。通過這些措施可以培養(yǎng)學生的學術(shù)誠信意識,并使課程成績能真實反映學生水平。
參照文獻[9],將數(shù)據(jù)庫相關(guān)內(nèi)容劃分成基礎(chǔ)知識、關(guān)系操作、數(shù)據(jù)庫設(shè)計、內(nèi)部實現(xiàn)、事務(wù)管理、新技術(shù)6個部分,各部分具體內(nèi)容見表6,各課程教學內(nèi)容的課時分配見表7。
表7中數(shù)據(jù)的格式為“課次數(shù)(約占比)”,如“MIT: 6.814”行、“基礎(chǔ)知識”列的“1(5%)”表示MIT花1次課講授基礎(chǔ)知識,大約占講授課時的5%。
從教學內(nèi)容上看,各課程主要介紹的是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的相關(guān)內(nèi)容,占講授學時60%以上。另外,一些課程也比較關(guān)注數(shù)據(jù)庫新技術(shù),以開闊學生視野,如MIT介紹Spark、Big Table、Kafka等處理平臺;ETHZ介紹授課教師參與的最新研究;UCB邀請Amazon公司的人員介紹企業(yè)界的前沿技術(shù)。
表6 教學內(nèi)容說明
表7 教學內(nèi)容課時分配
在關(guān)系型數(shù)據(jù)庫部分,所占課時最多的部分一般是內(nèi)部實現(xiàn),包括數(shù)據(jù)存儲、索引、查詢處理與優(yōu)化等內(nèi)容,且講授較為深入,反映了這些課程對數(shù)據(jù)庫系統(tǒng)底層實現(xiàn)的重視。UCB花了過半學時(13次課)介紹DBMS的內(nèi)部實現(xiàn),內(nèi)容涉及磁盤、文件、緩沖區(qū)、頁等計算機底層結(jié)構(gòu)(3次課)、B+樹等索引的理論和實現(xiàn)(3次課)、連接等操作的實現(xiàn)方法(3次課)、數(shù)據(jù)查詢的優(yōu)化策略(4次課)等。對于關(guān)系操作、數(shù)據(jù)庫設(shè)計等偏應(yīng)用的內(nèi)容,所占課時一般較少,這部分內(nèi)容更多的是安排課后自學或以作業(yè)形式完成。在事務(wù)管理部分,各課程主要還是集中在經(jīng)典理論和方法上,如ACID特性、封鎖、死鎖、可串行化調(diào)度和沖突可串行化調(diào)度、2PL、封鎖粒度、基于日志的恢復等。
在教學內(nèi)容的取舍和講授順序上,各課程存在一些相同點,如絕大部分課程對關(guān)系演算、高階范式(4NF、5NF)等使用較少的理論不作要求;一般先介紹傳統(tǒng)關(guān)系型數(shù)據(jù)庫技術(shù),最后再介紹新技術(shù);介紹內(nèi)部實現(xiàn)時一般會從最底層的磁盤、文件、索引開始,進而介紹查詢處理和查詢優(yōu)化。另外,各課程也存在許多區(qū)別,如對于數(shù)據(jù)庫新技術(shù),Stanford講授的是NoSQL和分布式數(shù)據(jù)處理,UCB是邀請企業(yè)人士介紹若干商用平臺,而ETHZ會介紹授課教師參與的最新研究。
調(diào)研是依據(jù)數(shù)據(jù)庫課程實施過程中存在的一些問題提出的,通過對若干世界一流大學相關(guān)課程的調(diào)研發(fā)現(xiàn),高校在解決數(shù)據(jù)庫課程實施中的問題時應(yīng)從如下3方面著手。
(1)理論和實踐的平衡。既重理論又重實踐,理論知識放在課上講授,通過課后作業(yè)進行實踐,課后作業(yè)工作量大、難度高、面向?qū)嶋H,能較好地培養(yǎng)實踐能力且能加深學生對理論知識的理解。總體來看,理論知識仍以傳統(tǒng)技術(shù)為主(表6),課后實踐主要分為系統(tǒng)型和應(yīng)用型兩類。前者針對某一具體DBMS進行功能完善,如實現(xiàn)查詢的處理與優(yōu)化、B+樹索引等;后者則是結(jié)合具體場景使用某數(shù)據(jù)庫產(chǎn)品,如進行數(shù)據(jù)查詢、開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)等。大部分課程會同時安排兩類實踐。
(2)廣度和深度的折中。對課程重點關(guān)注的內(nèi)容或難度較大的內(nèi)容,在課上講深講透并配以作業(yè)加深理解;而對于其他內(nèi)容,只簡要介紹并通過課后自學、作業(yè)等形式進行補充。對于深入講解的內(nèi)容,各課程有所不同,總體來看,普遍對內(nèi)部實現(xiàn)較為重視,在事務(wù)管理與新技術(shù)上也會花費較多學時,而對于關(guān)系操作、數(shù)據(jù)庫設(shè)計等內(nèi)容則更多的是以課后實踐的形式實施。
(3)傳統(tǒng)技術(shù)和新技術(shù)的取舍。以傳統(tǒng)關(guān)系型數(shù)據(jù)庫的內(nèi)容為主體,適當引入數(shù)據(jù)庫的新理論、新平臺、前沿研究等內(nèi)容。另外,新技術(shù)的比重有加大之勢,內(nèi)容主要涉及大數(shù)據(jù)管理相關(guān)技術(shù)及平臺,如NoSQL、MapReduce、Hadoop、Spark、Bigtable等。在具體施教時,傳統(tǒng)技術(shù)主要采用課堂講解與課后實踐相結(jié)合的方式進行,而新技術(shù)則綜合采用理論講解、平臺介紹、專家講座、論文閱讀、研討等方式。
數(shù)據(jù)庫課程是計算機專業(yè)及其他相關(guān)專業(yè)培養(yǎng)過程中的一門重要課程,受到各大高校的重視。筆者通過對若干世界一流大學數(shù)據(jù)庫技術(shù)入門課程的實施情況進行調(diào)研,分析得出若干結(jié)論,可為數(shù)據(jù)庫相關(guān)課程的實施和改革提供參考,但是這些結(jié)論知易行難,還需要結(jié)合本校特色進行細化,根據(jù)授課對象的特點動態(tài)調(diào)整,這需要在多輪授課過程中不斷總結(jié)和積累,同時也對授課教師的能力與水平提出較高要求。